こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。
今回は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認定エキスパート資格を保持した技術者達によるデータ分析基盤構築業務を承っております。
お問い合わせはこちらからどうぞ。