Анализ цепи Маркова

Статистическая функция цепи Маркова использует вероятностные методы для присвоения ценности точкам взаимодействия с рекламой на основе их смоделированного вклада в вероятность конверсии пользователя. Результаты этой экспериментальной функции могут быть полезны для присвоения ценности определенному рекламному каналу, кампании или другой точке взаимодействия на основе их смоделированного вклада в события конверсии.

Как это работает

Статистическая функция цепи Маркова использует ваши рекламные данные для создания цепи Маркова, где каждая вершина упорядоченного графа представляет собой точку взаимодействия, а каждое ребро дает вероятность перехода к следующей точке взаимодействия при условии, что вы находитесь в этой текущей точке взаимодействия. Предполагается, что только текущая точка контакта влияет на вероятность перехода. Затем вычисляется вклад каждой точки взаимодействия путем удаления точки взаимодействия с графика и расчета смоделированной вероятности конверсии теперь, когда точка взаимодействия удалена.

Ограничения конфиденциальности

Точки взаимодействия должны включать 50 или более пользователей, совершивших конверсию, и 50 или более пользователей, не совершивших конверсию, чтобы их нельзя было удалить фильтрами конфиденциальности. Кроме того, могут быть отфильтрованы посторонние пользователи, которые вносят непропорционально большую сумму кредита в точку взаимодействия. Таким образом, в выходных данных модели цепи Маркова могут отсутствовать некоторые точки соприкосновения, которые есть во входной таблице точек соприкосновения.

Сообщения о конфиденциальности отображаются после каждой итерации модели цепи Маркова. Эти сообщения включают информацию о пользователях и точках взаимодействия, которые были отфильтрованы.

Обзор расчета значений цепи Маркова

  1. Создайте таблицы Touchpoint и Credit:
    1. touchpoint_temp_table .
    2. user_credit_temp_table .
  2. Вызовите табличную функцию 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')