Анализ ценности Шепли

Метод ценности Шепли – это алгоритм, который назначает ценность разным рекламным каналам и точкам взаимодействия с учетом их смоделированного влияния на конверсию. Этот метод позволяет моделировать степень влияния определенного канала на конверсию.

В Ads Data Hub используется упрощенный метод ценности Шепли. Его подробное объяснение приводится в документе Методы ценности Шепли для моделирования атрибуции в интернет-рекламе (на английском языке).

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

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

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

Как рассчитываются значения ценности Шепли

  1. Создайте таблицы точек взаимодействия и доли ценности пользователей:
    1. touchpoint_temp_table;
    2. user_credit_temp_table.
  2. Вызовите функцию ADH.TOUCHPOINT_ANALYSIS, возвращающую табличное значение, задав в качестве аргументов указанные выше временные таблицы.

Как создать таблицы точек взаимодействия и доли ценности пользователей

Как создать таблицу точек взаимодействия

В таблице точек взаимодействия определяются события пользователей, связанные с этими точками. Например, там могут содержаться такие данные, как campaign_id, creative_id, placement_id, site_id и др.

Таблица должна содержать следующие столбцы:

Название столбца Тип
touchpoint string
Произвольное название точки взаимодействия (не может быть пустым или содержать запятые).
user_id string
Идентификатор пользователя, посетившего точку взаимодействия (не может быть пустым или равняться 0).
event_time int
Время посещения точки взаимодействия (не должно быть пустым).

Пример кода для создания таблицы:

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
Идентификатор пользователя, посетившего точку взаимодействия (не может быть пустым или равняться 0).
event_time int
Время события-конверсии (не должно быть пустым).
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
Должна иметь значение SHAPLEY_VALUES.

Таблица результатов

Таблица результатов будет содержать следующие данные:

Название столбца Тип
touchpoint string
Название точки взаимодействия.
score integer
Рассчитанное значение ценности Шепли для этой точки.

Пример кода для использования функции, возвращающей табличное значение

SELECT *
FROM ADH.TOUCHPOINT_ANALYSIS(
  TABLE tmp.touchpoint_temp_table,
  TABLE tmp.user_credit_temp_table,
  'SHAPLEY_VALUES')