本記事では、カスタマー分析データをどのように実装したかをご紹介させていただきます。あくまで一例となりますが、具体的なカスタマー分析データの処理実装時のヒントになれば幸いです。カスタマー分析を始める際に、ユーザーの属性(性別・年代など)によって、分析の傾向に差があるケースを考慮する必要があります。
例えば、2回目の購入に繋がる/つながらないユーザーの分析(リピーター)、サブスクリプションサービスの解約率、ロイヤリティなどいろいろ指標がありますが、カスタマー分析をする上で全体の分析結果をもとに、ある特定の属性に応じて傾向が出てしまう場合、その傾向をクラスタリングし、クラスタ内でさらに分析する方がより深いインサイトを得られることが多いですので、是非試してみてください。
ポイント
- 全体分析
- ユーザー属性に応じてクラスタリング
- クラスタリング内でのカスタマー分析(深掘り)
処理の概要
カスタマー分析では利用するデータは大きく分けて、「会員情報」「購買ログ」「各種マスタ」の3つになります。以下の手順で、この3つのデータを変換・集計・結合し分析用マスタを作成していきます。
- 分析に必要な要素・属性を洗い出し、トランザクションを作成する
・購買ログに会員情報を付加し、非正規化されたトランザクションテーブルを作成する
・必要に応じてカテゴライズや変換を実施する - 要素ごとに集計しマスタを作成する
・要素ごとにマスタ化することで、集計単位が異なる要素も一意にすることができる
・要素の追加が発生した場合、追加でマスタを作成するため、既存のマスタへ影響がなくデグレの心配がない
・要素の深掘りが発生した場合、関連するマスタと購買履歴情報を組み合わせて深掘り用マスタを簡単に追加できる - それぞれの要素をまとめる
・2で作成した各マスタを1つのマスタに結合する
・BIツール側でも結合ができるものはあるが、複雑化したり大量データの場合エラーが発生する可能性がある。また、BIツールを利用する都度、結合処理が実行され負荷がかかるため、TD側で結合し負荷を軽減する
処理の詳細
では、上記の内容を踏まえ、サンプルデータを使ってより具体的な内容を説明します。※手順は概要と同じです。
このサンプルでは、デモグラと購買傾向(利用カテゴリ、利用時間帯)を使ってクラスタを作成し、そのクラスタ内で利用回数、合計金額をもとにロイヤリティを定義していくためのデータを作成します。
- 分析に必要な項目・要素を洗い出し、トランザクションを作成する
・生年月日のままでは使いにくいので、年齢・年齢層を算出することで使いやすくする
・購買ログの時間など粒度が細かすぎる項目については、時間帯(09-12,12-15など)のようにカテゴライズし、傾向の違いをより明確にする
・マスタと結合し、店舗名ではなく業種やメーカー・ブランド等のカテゴリ情報を取得し傾向の違いをより明確にする - 要素ごとに集約しマスタを作成する
・1次集計として購買履歴情報から業種や時間帯で集約し、会員番号毎に利用回数でランク付けをする
・1次集計の結果を会員番号で集約し、データを縦持ちから横持ちに変換しマスタ化する - それぞれの要素をまとめる
・会員番号をキーに2で作成した各マスタを結合し、1つの分析用マスタを作成する
最後に
ここまでで、分析用のデータ作成は完了です。この先はこのデータを使ってクラスタを作成し、クラスタごとにリピーターや解約率、ロイヤリティの分析を行いますが、その際にはBIツールを使うことをお勧めします。Treasure Data CDP内でSQLを使ってクラスタの作成、分析を行うことも可能ですが、文字や数字の羅列ではなく、BIツールを使ってビジュアル化することによって、直感的にデータを把握し答えを導き出すまでの時間が早くなります。