Таблица *_paths
позволяет анализировать взаимодействия пользователей с рекламой, которой вы управляете через Дисплей и Видео 360 и Менеджер кампаний 360. Эти взаимодействия, также известные как точки взаимодействия, соединяются в пути событий, которые показывают, как группа пользователей движется по воронке конверсии. В таблицах *_paths
содержатся те же сведения, которые доступны с помощью передачи данных, но уже собранные в пути. Пути событий доступны для пользователей., совершивших и не совершивших конверсию, и могут включать несколько конверсий.
Как и все пользовательские данные в Ads Data Hub, данные в таблицах *_paths
должны соответствовать требованиям к агрегированию.
Техническая информация
Каждая строка таблицы paths
содержит один путь к покупке за период в 30 дней. Данные обновляются ежедневно и всегда охватывают этот период. Поскольку пути событий строятся с использованием файлов cookie, они включают только одно устройство. В некоторых случаях (например, когда пользователь отказался от персонализации рекламы) значение идентификатора пользователя будет равно 0. Обычно таки пользователи заносятся в разные строки, то есть два разных пути конверсии, связанные с идентификатором пользователя 0, будут приведены в отдельных строках. Однако в некоторых случаях, например при группировке по user_id = 0
, несколько путей конверсии могут объединяться в один, что может привести к расхождениям в данных. Подробнее об идентификаторах пользователей, равных 0…
Каждая строка столбца *_paths.events
содержит массив структур, где каждая структура – отдельное событие на пути пользователя. Структуры, входящие в путь, упорядочены по временным меткам. Первом в массиве будет самое давнее событие.
Примеры запросов
Ниже приводятся запросы, которые позволяют оценить влияние места размещения на вероятность конверсии определенного сегмента пользователей. Для распределения доли ценности используются три модели атрибуции.
- По первому взаимодействию: вся ценность присваивается первой точке взаимодействия.
- По последнему взаимодействию: вся ценность присваивается последней точке взаимодействия.
- Линейная: ценность равномерно распределяется между точками взаимодействия.
Пример данных
Строка | 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 |