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. Google Cloud Platform

    LookerStudioを知る。

    LookerStudioを知る。 -エクスチュアのツール紹介-Goog…

  2. Adobe Analytics

    Adobe Analyticsを学ぶ

    Adobe Analyticsを学ぶ -エクスチュアのツール紹介-Ad…

  3. Google Analytics

    Server-side GTMのGAビーコンログをBigQueryにエクスポートして分解する

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

  4. Adobe Analytics

    DataWarehouseについて

    はじめまして、インターン生の丸山です。Adobe Analytics…

  5. Adobe Analytics

    リファラーとは-Adobe Analyticsの指標説明

    今回はリファラーについて説明したいと思います。リファラーとはユーザ…

  6. Adobe Analytics

    イベント前の時間とは-Adobe Analyticsの指標説明

    こんにちは。インターン生の市川です。今回はイベント前の時間を説明いた…

最近の記事

  1. 【GA4/GTM】dataLayerを使ってカスタムイベント…
  2. 【GA4/GTM】dataLayerを活用しよう
  3. ジャーニーマップをデジタルマーケティングの視点で
  4. ChatGPT ProからClaude3 Proへ移行した話…
  5. その分析、やり方あってる?記述統計と推測統計の違い
  1. Tableau

    Tableauの「WEB編集」機能について理解する
  2. Tableau

    Tableau ServerとTableau Onlineの違い【管理者向け】
  3. 未分類

    ThoughtSpotとSnowflakeを使ってセルフBIの世界を体験してみた…
  4. 本棚

    統計関連の本
  5. Mouseflow

    ページ分析ツールの強み
PAGE TOP