こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。
Adobe Analyticsはリスト変数(s.list)が3個まで使えます。
しかし、サイト内検索の詳細検索条件などの選択項目を全て計測しようとするとあっという間にs.list変数は枯渇してしまい、悲しい気持ちになる事が度々あります。
ヘタな設計をするとs.eVar変数でさえ枯渇することもありますがw
そんな時は、GCPで補助用の計測環境を作ってしまいましょう。
Adobeに入り切らないデータは、BigQueryに直接投入してしまいます。
というわけで、
s.eVar変数にヒットIDを記録した上で、ヒットID+リスト変数データをBigQueryにストリーミングインサートして記録する
という事をやります。
今回やる事は以下のとおりです。お馴染みのアイコンでチャートを書くとこうなります。
では作ります。
1. Pub/Subのトピックを作成
計測データがWebページから連続的に送られてくるので、Pub/Subでバッファさせます。
今回は my_stats という名前でトピックを作成しました。
2. AppEngineでビーコンサーバーを作成
ビーコンを受け取るためのサーバーをGAEで作ります。
今回はGAE Standard環境のNode.jsでやります。
ソースコードはここに置いておきます。
テキトーに解説すると、ビーコンパラメータのi(ヒットID)とv(リスト変数データ)を受け取って、タイムスタンプ+日付とともにPub/SubにJSONで渡すだけの事しかやってません。
3. BigQueryにテーブルを作成
データを格納するテーブルを作成します。
日付カラムを使って日付分割パーティションテーブルとして作成しておきます。
4. Dataflowでパイプラインを作成
Pub/SubでバッファしたデータをBigQueryに投入するためのパイプラインをDataflowで作成します。
Dataflowを使うにあたって、tmpデータ書き込み用のGCSが必要です。
GCSでバケットを作るか、または既存のバケットにフォルダを作成して、それをtmpデータ用にします。
そして今回はDataflowのデフォルトテンプレートである[Pub/Sub to BigQuery]テンプレートを使います。
Dataflowの作成からテンプレートを選んで、上記で作成してPub/Subのトピックと、BigQueryテーブル、GCSバケットを入力するだけでパイプラインを作成出来ます。
5. ビーコン送信用のJSを作成
そして最後にデータを送信するためのJSを作成します。
s_code.jsに追記しても良いですし、別JSにしてもOKです。
もちろんAdobeのDynamic Tag ManagerやLauchなどのタグマネージャーでも可能です。
で、JSのソースコードもgithubに置いておきます。
これまたテキトーに解説すると、タイムスタンプと乱数でヒットIDを生成して、その値をeVarに入れます。
そして、そのeVarと同じヒットIDと、GAEに渡したいデータ(今回はカンマ区切りのリストデータ)をビーコンURLにパラメータとして付与してGAEに送る、というだけの事をしてます。
Webサイトに実装すると、このようなデータがAdobeAnalyticsとGAEに送信されるようになりました。
AAのv21パラメータ(s.eVar21)と、GAEのiパラメータにヒットIDがセットされてます。
これがGAE > Pub/Sub > Dataflow を通って、BigQueryのテーブルに挿入されます。
リスト変数のデータが全部同じなのはスルーしてください。
6. Adobeのデータフィードと補助計測環境のデータを結合する
最後に、今回のアーキテクチャで計測したデータと、Adobe Analyticsのデータフィードのデータを結合してみましょう。
補助計測環境のリストデータに対してevent1が発生した回数を抽出します。
SQLもgithubに置いときます。
※AdobeデータフィードそのものをBigQueryにインポートする方法は過去にブログで書いたのでご参考ください。
で、クエリ結果です。
111、222、333にそれぞれevent1が2件ずつ紐付きました。
まとめ
Adobe Analyticsでリスト変数や他の変数が足りない場合、入り切らないデータはBigQueryに直接投入すればOKです。
そうすれば別途データフィード、またはAdobeからダウンロードしたCSVデータとクエリで結合するだけで分析が可能です。
つまり、擬似的にs.list変数やs.eVar変数などのディメンションを1,000個でも2,000個でも使えるという意味です。
弊社では、Adobe認定エキスパート資格とGoogleCloud認定データエンジニア資格を持ったエンジニアが、Google Cloud Platformを使ってAdobe Analyticsやその他のデータソースを統合する分析基盤の構築支援を行っております。
お問い合わせはこちらからどうぞ。
ブログへの記事リクエストはこちらまで