GA 360 Suite

Google Analytics 360: BigQueryを使ってアトリビューション分析で91日以上のルックバック期間を実現

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

今回は、GoogleAnalytics360とBigQueryを使ってアトリビューション分析における91日以上のルックバック期間を実現する方法についてです。

Google Analyticsのアトリビューション分析では、最大で90日間のルックバック期間を設定出来ます。
デフォルトは30日ですね。

アトリビューション分析のルックバック期間

アトリビューション分析を使えば、レポート期間中にコンバージョンしたユーザーがコンバージョンに至るまでにどのようなエンゲージをしたか分析出来ます。

しかし、ユーザーがCVするまでにもっと時間がかかる様なロングテールな商材を扱ってるサイトだともっと長いルックバック期間を設定したい事があります。

こんな時はGA360+BigQueryです。
SQLでササっとデータを抽出できます。

例. コンバージョンまでの日数

では例として「コンバージョンまでの日数」を下記の条件で抽出します。

  • レポート期間: 2017/07/01 から 2017/07/31 までの1ヶ月
  • ルックバック期間: 180日
  • コンバージョン: トランザクションIDが存在するヒットをCVとみなす

書いたSQLはこちら↓
BigQueryパブリックデータセットのbigquery-public-data.google_analytics_sample.ga_sessions を使ってます。

  -- ベースになるデータを取得 7ヶ月分 = 180日 + 1ヶ月
WITH
  base AS (
  SELECT
    fullVisitorId,
    TIMESTAMP_SECONDS(visitStartTime + CAST((hits.time / 1000) AS int64)) AS hit_timestamp,
    DATE(TIMESTAMP_SECONDS(visitStartTime + CAST((hits.time / 1000) AS int64)), 'Asia/Tokyo') AS hit_timedate,
    hits.TRANSACTION.transactionId AS hit_transactionId,
    hits.isInteraction as hit_isInteraction,
    totals.visits,
  FROM
    `bigquery-public-data.google_analytics_sample.ga_sessions_*`,
    UNNEST(hits) AS hits
  WHERE
    _TABLE_SUFFIX BETWEEN "20170101" AND "20170731" )
  -- 先月CVしたユーザーのIDと日付
  ,user_cv_flag_1 AS (
  SELECT
    fullVisitorId,
    ROW_NUMBER() OVER (PARTITION BY fullVisitorId ORDER BY hit_timestamp) AS num,
    FIRST_VALUE(hit_timedate) OVER (PARTITION BY fullVisitorId ORDER BY hit_timestamp) AS date
  FROM
    base
  WHERE
    hit_transactionId IS NOT NULL
    AND hit_timedate BETWEEN '2017-07-01' AND '2017-07-31'
  )
  -- 複数行返ってくるので一番最初の行だけに絞る
  ,user_cv_flag AS (
    SELECT fullVisitorId,
    DATE
    FROM user_cv_flag_1
    WHERE num = 1
  )
  -- CVしたユーザーの最初の訪問日 ルックバック180日
  ,user_session_1 AS (
  SELECT
    base.fullVisitorId AS vid,
    ROW_NUMBER() OVER (PARTITION BY base.fullVisitorId ORDER BY base.hit_timestamp) AS num,
    FIRST_VALUE(base.hit_timedate) OVER(PARTITION BY base.fullVisitorId ORDER BY base.hit_timestamp) AS base_date,
    user_cv_flag.date AS cv_date,
    DATE_DIFF(user_cv_flag.date, base.hit_timedate, day) AS lookback_day
  FROM
    base
  INNER JOIN
    user_cv_flag
  ON
    base.fullVisitorId = user_cv_flag.fullVisitorId
  WHERE
    DATE_DIFF(user_cv_flag.date, base.hit_timedate, day) BETWEEN 0 AND 180
    AND base.visits = 1
    AND base.hit_isInteraction = true
  )
  -- 複数行返ってくるので一番最初の行だけに絞る
  ,user_session AS (
  SELECT
    vid,
    base_date,
    cv_date,
    lookback_day
  FROM
    user_session_1
  WHERE
    num = 1
  )
  -- 最後にまとめる
SELECT
  lookback_day,
  COUNT(1) AS cv,
FROM
  user_session
GROUP BY 1
ORDER BY 1

簡単ですね。
先月CVしたユーザーのIDと、そのユーザーが過去180日間の間で一番最初にやって来た日とCVした日までの経過日数を取り出して最後に日数別に集計してます。

結果はこうなります。

ルックバック180日による「CVまでの日数」

ちょっと長ったらしい書き方なので、「サブクエリ使えよ」とか「WITH句使いすぎワロス」と思った方はご自身でキレイなクエリを書きましょう。

というわけで、GA360ならBigQueryを使ってUI上の制限に影響されないデータを抽出する事が出来ます。

TL;DR

GA360とBigQueryを連携すればGAの機能よりも長いルックバック期間を設定した分析が可能になります。
というかルックバック無視してBigQueryにデータが入ってる全期間の分析が出来ます。

弊社ではGoogleAnalytics/AdobeAnalyticsなどの各Martechツールの導入実装コンサルティングサービスや、GCP/AWSなどのパブリッククラウドを使ったデータ分析基盤構築コンサルティングサービスを提供しております。
お問い合わせはこちらからどうぞ

ピックアップ記事

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

関連記事

  1. Adobe Analytics

    Adobe Analytics: DatafeedをGoogle BigQueryにロード(2019…

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

  2. Adobe Analytics

    Metabase: カスタムマップで日本地図を追加する

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

  3. Firebase Analytics

    Firebase Analyticsの新しいBigQueryスキーマを試す

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

  4. Adobe Analytics

    【超わかる】WEB解析の全貌

    はじめにこんにちは!インターン生の與那覇(ヨナハ)です今回は時代の…

  5. Google Analytics

    Google Analytics 4 + BigQueryでよく使う基本的なSQL例

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

  6. GA 360 Suite

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

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

最近の記事

  1. 【GA4/GTM】dataLayerを使ってカスタムイベント…
  2. KARTE を使ってサイト外でも接客を
  3. 【GA4/GTM】dataLayerを活用しよう
  4. ジャーニーマップをデジタルマーケティングの視点で
  5. ChatGPT ProからClaude3 Proへ移行した話…
  1. ヒートマップ

    【Tips】ヒートマップ機能について②~ムーブメント、アテンション編~
  2. IT用語集

    サマリー(Summary)って何?
  3. ヒートマップ

    ユーザビリティの検証で気を付けたいこと、やってはいけないこと①
  4. Mouseflow

    Mouseflowのセッションリプレイのしくみ
  5. DBエンジニアが学ぶSnowflake

    【DBエンジニアが学ぶSnowflake】①Snowflakeを語りたい!
PAGE TOP