*_paths
テーブルでは、ディスプレイ&ビデオ 360 およびキャンペーン マネージャー 360 で管理しているメディアに対して発生したユーザー インタラクションについてのインサイトが得られます。こういったインタラクション(タッチポイントとも呼ばれます)を繋ぎ合わせたイベント経路には、コンバージョン ファネル内を進んでいくユーザーのジャーニーが再現されています。*_paths
テーブルで使用されているデータは、Data Transfer を介して参照できるデータと同じものですが、あらかじめ経路として構築されている点が異なります。イベント経路は、コンバージョン達成済みのユーザーについてもコンバージョン未達成のユーザーについても参照可能で、複数のコンバージョンを含むこともあります。
Ads Data Hub のすべてのユーザーデータの場合と同様に、*_paths
テーブル経由のデータには集計要件が適用されます。
詳細な技術情報
paths
の各行は、過去 30 日間に記録されたカスタマー ジャーニー 1 件に対応します。このデータは毎日更新され、常に直近 30 日間の情報が反映されています。イベントバスの構築は Cookie によって行われるため、捕捉できるのは 1 個のデバイスについての情報です。特定の状況下、たとえばユーザーが広告のパーソナライズからオプトアウトした場合などでは、ユーザー ID が 0 に設定されます。通常、こういったユーザーのデータは個々の行に分かれたままであり、同じユーザー ID「0」に紐付けられていても、別個のコンバージョン経路は別個の行になります。ただし、一部の分析(たとえば user_id = 0
によるグループ化)では、複数のコンバージョン経路が 1 つに統合され、データに相違が生じることがあります。詳細: ゼロに設定されたユーザー ID について
*_paths.events
列の各行には構造体(STRUCT)の配列が含まれており、各構造体がユーザーの経路内の個々のイベントに対応します。経路を形成する構造体はタイムスタンプ順に並んでおり、配列の最初にあるイベントが最も古いイベントです。
サンプルクエリ
以下の各クエリは、特定のユーザー セグメントのコンバージョンにプレースメントが及ぼした影響を測定するものです。各クエリでは、3 種類のアトリビューション モデルを使って貢献度(クレジット)の評価を行います。
- ファースト タッチ(最初のタッチポイントだけが貢献したものと見なす)
- ラストタッチ(最後のタッチポイントだけが貢献したものと見なす)
- 線形(たどったタッチポイントが等しく貢献したものと見なす)
サンプルデータ
行 | user_id |
*_paths.events.event_time |
*_paths.events.event_type |
*_paths.events.placement_id |
---|---|---|---|---|
1 | 1 | 1563384139 | FLOODLIGHT |
null |
1563384129 | CLICK |
11 | ||
1563384119 | VIEW |
22 | ||
2 | 2 | 1563384139 | FLOODLIGHT |
null |
1563384129 | VIEW |
11 | ||
1563384119 | FLOODLIGHT |
null | ||
1563384109 | VIEW |
11 |
サンプルクエリ
ファースト タッチ
/* Substitute *_paths for the specific paths table that you want to query. */
SELECT
(
SELECT
attributed_event_metadata.placement_id
FROM (
SELECT
AS STRUCT attributed_event.placement_id,
ROW_NUMBER() OVER(ORDER BY attributed_event.event_time ASC) AS rank
FROM
UNNEST(t.*_paths.events) AS attributed_event
WHERE
attributed_event.event_type != "FLOODLIGHT"
AND attributed_event.event_time < conversion_event.event_time
AND attributed_event.event_time > (
SELECT
IFNULL( (
SELECT
MAX(prev_conversion_event.event_time) AS event_time
FROM
UNNEST(t.*_paths.events) AS prev_conversion_event
WHERE
prev_conversion_event.event_type = "FLOODLIGHT"
AND prev_conversion_event.event_time < conversion_event.event_time),
0)) ) AS attributed_event_metadata
WHERE
attributed_event_metadata.rank = 1) AS placement_id,
COUNT(*) AS credit
FROM
adh.*_paths AS t,
UNNEST(*_paths.events) AS conversion_event
WHERE
conversion_event.event_type = "FLOODLIGHT"
GROUP BY
placement_id
HAVING
placement_id IS NOT NULL
ORDER BY
credit DESC
ラストタッチ
/* Substitute *_paths for the specific paths table that you want to query. */
SELECT
(
SELECT
attributed_event_metadata.placement_id
FROM (
SELECT
AS STRUCT attributed_event.placement_id,
ROW_NUMBER() OVER(ORDER BY attributed_event.event_time DESC) AS rank
FROM
UNNEST(t.*_paths.events) AS attributed_event
WHERE
attributed_event.event_type != "FLOODLIGHT"
AND attributed_event.event_time < conversion_event.event_time
AND attributed_event.event_time > (
SELECT
IFNULL( (
SELECT
MAX(prev_conversion_event.event_time) AS event_time
FROM
UNNEST(t.*_paths.events) AS prev_conversion_event
WHERE
prev_conversion_event.event_type = "FLOODLIGHT"
AND prev_conversion_event.event_time < conversion_event.event_time),
0)) ) AS attributed_event_metadata
WHERE
attributed_event_metadata.rank = 1) AS placement_id,
COUNT(*) AS credit
FROM
adh.*_paths AS t,
UNNEST(*_paths.events) AS conversion_event
WHERE
conversion_event.event_type = "FLOODLIGHT"
GROUP BY
placement_id
HAVING
placement_id IS NOT NULL
ORDER BY
credit DESC
線形
/* Substitute *_paths for the specific paths table that you want to query. */
SELECT
attributed_event_metadata.placement_id AS placement_id,
/* Give equal credit to all attributed events */
SUM(SAFE_DIVIDE(1, ARRAY_LENGTH(attributed_events_metadata)))
FROM (
SELECT
ARRAY(
SELECT
AS STRUCT attributed_event.placement_id,
ROW_NUMBER() OVER(ORDER BY attributed_event.event_time DESC) AS rank
FROM
UNNEST(t.*_paths.events) AS attributed_event
WHERE
attributed_event.event_type!="FLOODLIGHT"
AND attributed_event.event_time < conversion_event.event_time
AND attributed_event.event_time > (
SELECT
MAX(prev_conversion_event.event_time) AS event_time
FROM
UNNEST(t.*_paths.events) AS prev_conversion_event
WHERE
prev_conversion_event.event_type="FLOODLIGHT"
AND prev_conversion_event.event_time < conversion_event.event_time)) AS attributed_events_metadata
FROM
adh.*_paths AS t,
UNNEST(*_paths.events) AS conversion_event
WHERE
conversion_event.event_type="FLOODLIGHT" ),
UNNEST(attributed_events_metadata) AS attributed_event_metadata
GROUP BY
1
HAVING
placement_id IS NOT NULL
ORDER BY
2 DESC
結果
このクエリをサンプルデータに対して実行すると、次の結果が得られるはずです。
ファースト タッチ
行 | placement_id |
貢献度(クレジット) |
---|---|---|
1 | 11 | 2 |
2 | 22 | 1 |
ラストタッチ
行 | placement_id |
貢献度(クレジット) |
---|---|---|
1 | 11 | 3 |
線形
行 | placement_id |
貢献度(クレジット) |
---|---|---|
1 | 11 | 2.5 |
2 | 22 | 0.5 |