Análisis de valores de Shapley

El método de valor de Shapley es un algoritmo que asigna crédito a numerosos canales publicitarios y puntos de contacto en función de su contribución modelada a la conversión. Con el método del valor de Shapley, puedes modelar la contribución que tiene un canal en particular en la conversión.

El Centro de Datos de Anuncios utiliza el "Método simplificado de valor de Shapley", que se explica en detalle en el artículo Métodos de valor de Shapley para el modelado de atribución en la publicidad en línea.

Restricciones de privacidad

Los filtros de privacidad quitarán los puntos de contacto con menos de 50 usuarios y los usuarios atípicos que contribuyen con una cantidad desproporcionada de crédito a un punto de contacto. Por lo tanto, es posible que a la salida del modelo de valor de Shapley le falten algunos puntos de contacto que se encuentran en la tabla de puntos de contacto de entrada.

Los mensajes de privacidad se muestran después de cada iteración del modelo de valor de Shapley. Estos mensajes incluyen información sobre los usuarios y los puntos de contacto que se filtraron.

Descripción general del cálculo de los valores de Shapley

  1. Crea las tablas de puntos de contacto y crédito:
    1. touchpoint_temp_table.
    2. user_credit_temp_table.
  2. Llama a la función con valor de tabla ADH.TOUCHPOINT_ANALYSIS con las tablas temporales anteriores como argumentos.

Crea las tablas de puntos de contacto y crédito

Crea la tabla de puntos de contacto

En la tabla de puntos de contacto, se definen los eventos del usuario relacionados con los puntos de contacto. Los datos de ejemplo pueden incluir, sin limitaciones , campaign_id, creative_id, placement_id o site_id.

La tabla debe contener las siguientes columnas:

Nombre de la columna Tipo
touchpoint string
Nombre arbitrario del punto de contacto. (No debe ser NULO ni contener comas).
user_id string
El ID de un usuario que visita el punto de contacto. (No debe ser NULO ni 0).
event_time int
Es la hora en que el usuario visitó el punto de contacto. (No debe ser NULL).

Código de muestra para crear la tabla:

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)
);

Crea la tabla de crédito del usuario

En la tabla de crédito del usuario, se definen los eventos de conversión. Para cada usuario, solo se consideran los eventos con una marca de tiempo anterior a la conversión.

La tabla debe contener las siguientes columnas:

Nombre de la columna Tipo
user_id string
El ID de un usuario que visita el punto de contacto. (No debe ser NULO ni 0).
event_time int
Es la hora en la que ocurrió el evento de contribución. (No debe ser NULL).
credit integer
Es el crédito que aportó el usuario. Puede ser cualquier crédito que se quiera analizar. Por ejemplo, el valor de conversión, la cantidad de conversiones, etcétera. Debe estar entre 1 y 100.

Código de muestra para crear la tabla:


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
);

La función con valor de tabla

La función con valor de tabla es una función que muestra una tabla como resultado. Por lo tanto, puedes consultar la función con valor de tabla como lo harías con una tabla normal.

Sintaxis

ADH.TOUCHPOINT_ANALYSIS(TABLE touchpoints_tmp_table_name, TABLE credits_tmp_table_name, STRING model_name)

Argumentos

Nombre
touchpoints_tmp_table_name Es el nombre de la tabla de puntos de contacto temporal que creó el cliente. La tabla debe tener un esquema que contenga las columnas touchpoint, user_id y event_time.
credits_tmp_table_name Es el nombre de la tabla de crédito de usuario temporal que creó el cliente. La tabla debe tener un esquema que contenga las columnas user_id, credit y conversion_time.
model string
Debe ser SHAPLEY_VALUES.

Tabla de resultados

La tabla de salida contendrá el siguiente esquema:

Nombre de la columna Tipo
touchpoint string
Nombre del punto de contacto.
score integer
Puntuación del valor de Shapley calculada para este punto de contacto.

Código de muestra para usar la función con valor de tabla

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