Adobe Analytics

Adobe Analyticsに入り切らないデータをBigQueryに投入する

こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。

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のビーコン

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やその他のデータソースを統合する分析基盤の構築支援を行っております。
お問い合わせはこちらからどうぞ。

ブログへの記事リクエストはこちらまで

関連記事

  1. Adobe Analytics

    Adobe Analytics:セグメントの落とし穴:滞在時間がおかしくなる

    Adobe Analyticsの持つ機能の中でも特に強力で便利な機能の…

  2. Adobe Analytics

    BigQuery: Adobe Datafeed: event_listカラムの手軽な扱い方

    こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。…

  3. GA 360 Suite

    GoogleDataStudio:複数のデータソースにフィルターを適用する

    こんにちは。エクスチュアの渡部です。今回はDataStudio(デ…

  4. Adobe Analytics

    Azure DatabricksでAdobe AnalyticsのDatafeedを分析する

    こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。…

  5. Adobe Analytics

    Adobe Analytics: レガシーs_code.jsのリミッターを解除してeVar76以上を…

    こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。…

  6. Adobe Analytics

    Adobe AEP SDK: リバースプロキシを使ったアプリ計測検証方法

    こんにちは、エクスチュアの權泳東(コン・ヨンドン)です。Ado…

最近の記事

  1. YOTTAA:ECサイトで見るべき8つのサイトパフォーマンス…
  2. 【初心者向け】AWSを学ぶ前に確認したい用語
  3. サーバーサイドGTM: ウェブコンテナを使って1stパーティ…
  4. BigQuery: テーブルに格納されたURL文字列をKey…
  5. AdobeAnalytics: Adobe I/OのAPIを…
  1. Adobe Analytics

    Adobe Analytics: カスタムリンク計測を1行で書く
  2. Adobe Analytics

    Adobe Analytics:マーケティングチャネルの設定方法 全流入経路を1…
  3. Adobe Analytics

    AdobeAnalytics: スマホのスワイプにカスタムリンクを実装する
  4. Google Analytics

    Google Analytics StandardのデータをBigQueryで分…
  5. Tableau

    Tableau : IF文の「集計」「非集計」の混在を解決
PAGE TOP