Статистическая функция цепи Маркова использует вероятностные методы для присвоения ценности точкам взаимодействия с рекламой на основе их смоделированного вклада в вероятность конверсии пользователя. Результаты этой экспериментальной функции могут быть полезны для присвоения ценности определенному рекламному каналу, кампании или другой точке взаимодействия на основе их смоделированного вклада в события конверсии.
Как это работает
Статистическая функция цепи Маркова использует ваши рекламные данные для создания цепи Маркова, где каждая вершина упорядоченного графа представляет собой точку взаимодействия, а каждое ребро дает вероятность перехода к следующей точке взаимодействия при условии, что вы находитесь в этой текущей точке взаимодействия. Предполагается, что только текущая точка контакта влияет на вероятность перехода. Затем вычисляется вклад каждой точки взаимодействия путем удаления точки взаимодействия с графика и расчета смоделированной вероятности конверсии теперь, когда точка взаимодействия удалена.
Ограничения конфиденциальности
Точки взаимодействия должны включать 50 или более пользователей, совершивших конверсию, и 50 или более пользователей, не совершивших конверсию, чтобы их нельзя было удалить фильтрами конфиденциальности. Кроме того, могут быть отфильтрованы посторонние пользователи, которые вносят непропорционально большую сумму кредита в точку взаимодействия. Таким образом, в выходных данных модели цепи Маркова могут отсутствовать некоторые точки соприкосновения, которые есть во входной таблице точек соприкосновения.Сообщения о конфиденциальности отображаются после каждой итерации модели цепи Маркова. Эти сообщения включают информацию о пользователях и точках взаимодействия, которые были отфильтрованы.
Обзор расчета значений цепи Маркова
- Создайте таблицы Touchpoint и Credit:
-
touchpoint_temp_table
. -
user_credit_temp_table
.
-
- Вызовите табличную функцию
ADH.TOUCHPOINT_ANALYSIS
, используя приведенные выше временные таблицы в качестве аргументов.
Создайте таблицы Touchpoint и Credit Tables.
Создайте таблицу точек взаимодействия
В таблице точек взаимодействия определяются пользовательские события, связанные с точками взаимодействия. Примеры данных могут включать, помимо прочего, campaign_id
, creative_id
, placement_id
или site_id
.
Таблица должна содержать следующие столбцы:
Имя столбца | Тип |
---|---|
touchpoint | string Произвольное имя точки взаимодействия. (Не должно быть NULL или содержать запятые.) |
user_id | string Идентификатор пользователя, который посещает точку взаимодействия. (Не должно быть NULL или 0.) |
event_time | int Время, когда пользователь посетил точку взаимодействия. (Не должно быть NULL.) |
Пример кода для создания таблицы:
CREATE TABLE touchpoint_temp_table
AS (
SELECT user_id, event.event_time, CAST(event.site_id AS STRING) AS touchpoint
FROM adh.cm_dt_impressions
WHERE
event.event_type IN ('VIEW')
AND user_id <> '0'
AND event.campaign_id IN UNNEST(@campaign_ids)
UNION ALL
SELECT
user_id, event.event_time, CAST(event.site_id AS STRING) AS touchpoint
FROM adh.cm_dt_clicks
WHERE
event.event_type IN ('CLICK')
AND user_id <> '0'
AND event.campaign_id IN UNNEST(@campaign_ids)
);
Создайте кредитную таблицу пользователя
В таблице кредитоспособности пользователя определяются события конверсии. События, которые следуют за конверсиями, считаются событиями, не связанными с конверсиями.
Таблица должна содержать следующие столбцы:
Имя столбца | Тип |
---|---|
user_id | string Идентификатор пользователя, который посещает точку взаимодействия. (Не должно быть NULL или 0.) |
event_time | int Время, когда произошло событие вклада. (Не должно быть NULL.) |
credit | integer Кредит, внесенный пользователем. Это может быть любой кредит, который хотелось бы проанализировать. Например, ценность конверсии, количество конверсий и т. д. Оно должно находиться в диапазоне от 1 до 100. |
Пример кода для создания таблицы:
CREATE TABLE user_credit_temp_table AS (
SELECT
user_id,
MAX(event.event_time) AS event_time,
1 AS credit
FROM adh.cm_dt_activities_attributed
WHERE user_id <> '0'
AND event.campaign_id IN UNNEST(@campaign_ids)
AND DATE(TIMESTAMP_MICROS(event.event_time)) BETWEEN @start_date AND @end_date
AND event.activity_id IN UNNEST (@activity_ids)
GROUP BY user_id
);
Табличная функция
Функция с табличным значением — это функция, которая в результате возвращает таблицу. Таким образом, вы можете запросить функцию, возвращающую табличное значение, как и обычную таблицу.
Синтаксис
ADH.TOUCHPOINT_ANALYSIS(TABLE touchpoints_tmp_table_name, TABLE credits_tmp_table_name, STRING model_name)
Аргументы
Имя | |
---|---|
touchpoints_tmp_table_name | Имя созданной клиентом таблицы временных точек взаимодействия. Таблица должна иметь схему, содержащую столбцы touchpoint , user_id и event_time . |
credits_tmp_table_name | Имя таблицы кредитов временных пользователей, созданной клиентом. Таблица должна иметь схему, содержащую столбцы user_id , credit и conversion_time . |
model | string Должно быть MARKOV_CHAINS. |
Выходная таблица
Выходная таблица будет содержать следующую схему:
Имя столбца | Тип |
---|---|
touchpoint | string Имя точки контакта. |
score | integer Рассчитана оценка цепи Маркова для этой точки взаимодействия. |
Пример кода для использования табличной функции
SELECT *
FROM ADH.TOUCHPOINT_ANALYSIS(
TABLE tmp.touchpoint_temp_table,
TABLE tmp.user_credit_temp_table,
'MARKOV_CHAINS')