El método de valor de Shapley es un algoritmo que asigna crédito a varios canales de publicidad y puntos de contacto según su contribución modelada a la conversión. Con el método de valores de Shapley, puedes modelar la contribución que tiene un canal específico en la conversión.
El Centro de Datos de Anuncios utiliza el "Método de valor de Shapley simplificado", que se explica en detalle en el artículo Métodos de valor de Shapley para el modelado de atribución en Documento sobre 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 contribuyan con una cantidad desproporcionada de crédito a un punto de contacto. Por lo tanto, es posible que al resultado 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 valores 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 valor de Shapley
- Crea las tablas de puntos de contacto y créditos:
touchpoint_temp_table
.user_credit_temp_table
.
- Llama a la función con valor de tabla
ADH.TOUCHPOINT_ANALYSIS
usando las tablas temporales anteriores como argumentos.
Crea las tablas de puntos de contacto y créditos
Crea la tabla de puntos de contacto
La tabla de puntos de contacto es donde se definen los eventos de usuarios relacionados con los puntos de contacto. Los datos de ejemplo pueden incluir, entre otros , los siguientes: campaign_id
, creative_id
, placement_id
o site_id
.
La tabla debe contener las siguientes columnas:
Nombre de la columna | Tipo |
---|---|
touchpoint |
string Nombre del punto de contacto arbitrario. (no debe ser NULO ni contener comas). |
user_id |
string El ID de un usuario que visita el punto de contacto. (no debe ser NULL ni 0). |
event_time |
int La hora a la 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éditos de usuarios
La tabla de créditos de usuarios es donde 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 NULL ni 0). |
event_time |
int La hora a la que se produjo el evento de contribución. (no debe ser NULL). |
credit |
integer El crédito que aportó el usuario. Puede ser cualquier crédito que se desee analizar. Por ejemplo, el valor de conversión, la cantidad de conversiones, etc. 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 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 |
El nombre de la tabla de punto de contacto temporal creada por el cliente. La tabla debe tener un esquema que contenga las columnas de touchpoint , user_id y event_time . |
credits_tmp_table_name |
El nombre de la tabla de créditos de usuarios temporales creada por 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 resultados contendrá el siguiente esquema:
Nombre de la columna | Tipo |
---|---|
touchpoint |
string Nombre del punto de contacto. |
score |
integer Se calcula la puntuación del valor de Shapley 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')