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. 最速で理解したい人のためのIT用語集

関連記事

  1. GA 360 Suite

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

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

  2. KARTE

    CXツール「KARTE」ってどんなツール?主な機能や魅力をざっくり紹介!

    こんにちは!エクスチュアインターン生の上園…

  3. Adobe Analytics

    リアルタイムとは-Adobe Analyticsの指標説明

    今回はリアルタイムについて説明いたします。リアルタイムとはタイムラ…

  4. Adobe Analytics

    Adobe Analytics 原理①

    近年、Web解析の必要性が広く認知されるようになり多くのWebサイト…

  5. Adobe Analytics

    ページとは-Adobe Analyticsの指標説明

    今回はページについて説明いたします。ページとはサイト内の各ページに…

  6. Google BigQuery

    GCP: 今月のGCP課金額をslackに自動的に書き込む

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

最近の記事

  1. 回帰分析はかく語りき Part3 ロジスティック回帰
  2. GCSへのSnowflake Open Catalogによる…
  3. VPC Service Controlsで「NO_MATCH…
  4. モダンデータスタックなワークフローオーケストレーションツール…
  5. Streamlit in Snowflakeによるダッシュボ…
  1. IT用語集

    パス、絶対パス、相対パス、ルートパスって何?
  2. Adobe Analytics

    Adobe Analytics 指標について
  3. IT用語集

    メモリ(Memory)、仮想メモリ(Virtual Memory)って何?
  4. IT用語集

    GA(Google Analytics)とAA(Adobe Analytics)…
  5. Google Cloud Platform

    Google Compute Engine のLinuxVMにVNC接続する
PAGE TOP