こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。
今回はBigQueryでAdobeAnalyticsのパーティシペーション指標を集計するSQLについてです。
Adobe Analyticsにおけるパーティシペーション(貢献度)指標とは、コンバージョンに至るまでに通過したページや、途中で発生したeVar値の履歴に対して、貢献度を割り当てるための指標です。
これで関節効果・アシスト効果が見えてくる訳です。
では、AdobeAnalyticsのDatafeedをBigQueryに入れて分析する際に、パーティシペーションはどうやって集計すれば良いのか?
例えば各ページ別にpurchaseイベント(Datafeed上のEventID:1)のパーティシペーションを出すなら、こう書きます。
WITH t1 AS (
SELECT
CONCAT(post_visid_high, post_visid_low, CAST(visit_num AS string)) AS session,
hit_time_gmt,
post_pagename AS pagename,
SIGN(SUM(CASE WHEN CONCAT(',', post_event_list, ',') LIKE '%,1,%' THEN 1 ELSE 0 END)
OVER(PARTITION BY CONCAT(post_visid_high, post_visid_low, CAST(visit_num AS string))
ORDER BY hit_time_gmt DESC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)) AS cvflag
FROM `exture.hit_data`
WHERE
DATE(hit_time_gmt, 'Asia/Tokyo') >= '2019-09-01'
AND DATE(hit_time_gmt, 'Asia/Tokyo') < '2019-10-01'
AND post_pagename IS NOT NULL
AND exclude_hit = 0
AND duplicate_purchase = 0
),
t2 AS (
SELECT
session,
hit_time_gmt,
pagename,
ROW_NUMBER() OVER(PARTITION BY session, pagename ORDER BY hit_time_gmt) AS rownum,
cvflag
FROM t1
WHERE cvflag = 1
)
SELECT
pagename,
SUM(cvflag) AS participations
FROM t2
WHERE
rownum = 1
AND pagename NOT LIKE '%thanks%'
AND pagename NOT LIKE '%contact%'
GROUP BY 1
ORDER BY 2 DESC
結果はこうなりました。
Adobe Workspacesの数値と比べます。完全に一致です。
解説
まず最初のCTE(WITH句) t1では、同一セッションにおいて各ページを通過したあとにコンバージョンが発生したかどうかをチェックしてます。
post_visid_high, post_visid_low, visit_num の3つを組み合わせてセッションIDを作ってます。
→ もし訪問者レベルのパーティシペーションを分析したい場合はpost_visid_highとpost_visid_lowだけ使えばOKです。
次のCTE t2では、セッション内で同じページを複数回通過した場合に重複を除去するために「セッション+ページ別」にROW_NUMBER関数で番号を振ってます。
この番号が1のページだけを使えば同じページをセッション内に何度通過しても「1」だけカウントします。
そして最後のクエリで、ページ別にパーティシペーション数を出すのですが、フォーム近辺のページは当然のように数値が大きくなるので除外します。
以上で、AdobeのUIを使わなくてもパーティシペーション分析がBigQueryで出来るようになりました。
BigQueryが大好きなMartech系データエンジニアはこれで益々仕事が楽しくなります。(当社比)
なお、注意点がありまして、BigQueryでeVar変数のパーティシペーション分析をする場合は、post列ではなくpre列で行うと良いです。
→ eVar配分設定が「元の値」になってる場合にpost列だと最初の値しか入らないので、パーティシペーション分析出来ない。
今回はBigQueryを使ってAdobeAnalyticsのパーティシペーション指標を再現するためのSQLについて紹介しました。
これを応用すれば、AdobeAnalyticsではなくてGoogleAnalytis360 / Firebase / GA App+WebプロパティのBQスキーマに対してもパーティシペーション分析が出来ますね。
弊社では、Google Cloud認定データエンジニア資格とAdobe認定エキスパート資格を保持した技術者達によるデータ分析基盤構築業務を承っております。
お問い合わせはこちらからどうぞ。












