Adobe Analytics

Adobe Analytics: BigQueryでパーティシペーション指標を集計するSQL

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

今回は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

結果はこうなりました。

BigQueryでパーティシペーションを算出

Adobe Workspacesの数値と比べます。完全に一致です。

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認定エキスパート資格を保持した技術者達によるデータ分析基盤構築業務を承っております。
お問い合わせはこちらからどうぞ

ピックアップ記事

  1. 最速で理解したい人のためのIT用語集

関連記事

  1. Adobe Analytics

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

    今回はページの深さの指標について説明します。ページの深さとはそのペ…

  2. Adobe Analytics

    Adobe Analyticsを学ぶ

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

  3. Adobe Analytics

    PV(ページビュー)とは-Adobe Analyticsの指標説明

    今回はPV(ページビュー)について説明いたします。PV (ページビュ…

  4. Google BigQuery

    OWOX BI: GoogleSheetsアドオンでBigQueryをお手軽ビジュアライズ

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

  5. Adobe Analytics

    カスタムイベントとは-Adobe Analyticsの指標説明

    今回はカスタムイベントの指標について説明します。カスタムイベントとは…

  6. Google BigQuery

    BigQuery BI Engine解説

    こんにちは、エクスチュア渡部です。2019/4/9-4/11に行わ…

最近の記事

  1. LangChainのソースコードから実装を見てみる(Chat…
  2. Tableau×Teams連携
  3. AIを使ったマーケティングゲームを作ってみた
  4. Snowflakeや最新データ基盤が広義のマーケティングにも…
  5. 回帰分析はかく語りき Part3 ロジスティック回帰
  1. Tableau

    Tableau:2つの値の比較に便利な「ダンベルチャート」を作る
  2. Spread Sheets / GAS / GDS

    GDS(グーグルデータスタジオ)で「年ごと/月ごと/週ごと」の集計をする
  3. Tableau

    Tableauのヘックスタイルマップでヒートマップを地図上に粗く表現する
  4. Tableau

    【TC19ブログ】セッション紹介:DataRobot×TableauでAIを民主…
  5. IT用語集

    ドキュメント(Document)って何?
PAGE TOP