La función estadística de cadena de Markov utiliza métodos probabilísticos para asignar crédito a los puntos de contacto publicitarios en función de su contribución modelada a la probabilidad de que un usuario genere una conversión. El resultado de esta función experimental puede ser útil para asignar crédito a un canal de publicidad, una campaña o cualquier otro punto de contacto determinado, según su contribución modelada a los eventos de conversión.
Cómo funciona
La función estadística de cadena de Markov usa tus datos de publicidad para crear una cadena de Markov, en la que cada vértice del grafo ordenado representa un punto de contacto y cada borde proporciona la probabilidad de pasar al siguiente punto de contacto, siempre y cuando se encuentre en el punto de contacto actual. Se supone que solo el punto de contacto actual afecta la probabilidad de transición. Luego, se calcula la contribución de cada punto de contacto quitándolo del gráfico y calculando la probabilidad modelada de una conversión ahora que se quitó el punto de contacto.
Restricciones de privacidad
Los puntos de contacto deben incluir 50 o más usuarios que generaron conversiones y 50 o más usuarios que no generaron conversiones para que los filtros de privacidad no los quiten. Además, es posible que se filtren los usuarios atípicos que contribuyen con una cantidad desproporcionada de crédito a un punto de contacto. Por lo tanto, es posible que al resultado del modelo de cadena de Markov 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 cadena de Markov. Estos mensajes incluyen información sobre los usuarios y los puntos de contacto que se filtraron.
Descripción general del procesamiento de valores de cadenas de Markov
- Crea las tablas de puntos de contacto y crédito:
touchpoint_temp_table
.user_credit_temp_table
.
- 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. Los eventos que siguen a las conversiones se consideran eventos sin 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 MARKOV_CHAINS. |
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 calculada de la cadena de Markov 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,
'MARKOV_CHAINS')