A função estatística das cadeias de Markov usa métodos probabilísticos para atribuir crédito a vários pontos de contacto de publicidade com base na respetiva contribuição modelada para a probabilidade de um utilizador fazer uma conversão. O resultado desta função experimental pode ser útil ao atribuir crédito a um determinado canal de publicidade, campanha ou outro ponto de contacto, com base na respetiva contribuição modelada para eventos de conversão
Como funciona
A função estatística das cadeias de Markov usa os seus dados de publicidade para criar uma cadeia de Markov, em que cada vértice no gráfico pedido representa um ponto de contacto e cada margem apresenta a probabilidade de se mover para esse ponto de contacto seguinte, sob a condição de estar nesse ponto de contacto atual. Parte do princípio de que apenas o ponto de contacto atual afeta a probabilidade de transição. Em seguida, calcula-se a contribuição de cada ponto de contacto: remove-se o ponto de contacto do gráfico e calcula-se a probabilidade modelada de uma conversão depois de o ponto de contacto ser removido.
Restrições de privacidade
Os pontos de contacto têm de incluir 50 ou mais utilizadores com conversão e 50 ou mais utilizadores sem conversão para não serem removidos pelos filtros de privacidade. Além disso, os utilizadores atípicos que contribuem com um valor desproporcional de crédito para um ponto de contacto podem ser filtrados. Assim, o resultado do modelo de cadeias de Markov pode ter alguns pontos de contacto em falta que se encontram na tabela de pontos de contacto de entrada.As mensagens de privacidade são apresentadas após cada iteração do modelo de cadeias de Markov. Estas mensagens incluem informações sobre os utilizadores e os pontos de contacto filtrados.
Vista geral do cálculo dos valores das cadeias de Markov
- Crie as tabelas de pontos de contacto e crédito:
touchpoint_temp_table
.user_credit_temp_table
.
- Chame a função de valor de tabela
ADH.TOUCHPOINT_ANALYSIS
ao usar as tabelas temporárias acima como argumentos.
Crie as tabelas de pontos de contacto e crédito
Crie a tabela de pontos de contacto
A tabela de pontos de contacto é onde são definidos os eventos do utilizador relacionados com os pontos de contacto. Os dados de exemplo podem incluir, entre outros: campaign_id
, creative_id
, placement_id
ou site_id
.
A tabela tem de conter as seguintes colunas:
Nome da coluna | Tipo |
---|---|
touchpoint |
string Nome do ponto de contacto arbitrário. (Não pode ser NULL nem conter vírgulas.) |
user_id |
string O ID de um utilizador que visita o ponto de contacto. (Não pode ser NULL nem 0.) |
event_time |
int A hora a que o utilizador visitou o ponto de contacto. (Não pode ser NULL.) |
Exemplo de código para criar a tabela:
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)
);
Crie a tabela de crédito do utilizador
A tabela de crédito do utilizador é onde são definidos os eventos de conversão. Os eventos que se seguem a conversões são considerados eventos sem conversão.
A tabela tem de conter as seguintes colunas:
Nome da coluna | Tipo |
---|---|
user_id |
string O ID de um utilizador que visita o ponto de contacto. (Não pode ser NULL nem 0.) |
event_time |
int A hora a que ocorreu o evento de contribuição. (Não pode ser NULL.) |
credit |
integer O crédito contribuído pelo utilizador. Pode ser qualquer crédito que queira analisar. Por exemplo, o valor de conversão, o número de conversões, etc. Tem de ser entre 1 e 100. |
Exemplo de código para criar a tabela:
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
);
A função de valor de tabela
A função de valor de tabela é uma função que devolve uma tabela como resultado. Como tal, pode consultar a função de valor de tabela como faria numa tabela normal.
Sintaxe
ADH.TOUCHPOINT_ANALYSIS(TABLE touchpoints_tmp_table_name, TABLE credits_tmp_table_name, STRING model_name)
Argumentos
Nome | |
---|---|
touchpoints_tmp_table_name |
O nome da tabela temporária de pontos de contacto criada pelo cliente. A tabela tem de ter um esquema que contenha as colunas touchpoint , user_id e event_time . |
credits_tmp_table_name |
O nome da tabela temporária de crédito do utilizador criada pelo cliente. A tabela tem de ter um esquema que contenha as colunas user_id , credit e conversion_time . |
model |
string Tem de ser MARKOV_CHAINS. |
Tabela de saída
A tabela de saída irá conter o seguinte esquema:
Nome da coluna | Tipo |
---|---|
touchpoint |
string Nome do ponto de contacto. |
score |
integer Pontuação calculada das cadeias de Markov para este ponto de contacto. |
Exemplo de código para usar a função de valor de tabela
SELECT *
FROM ADH.TOUCHPOINT_ANALYSIS(
TABLE tmp.touchpoint_temp_table,
TABLE tmp.user_credit_temp_table,
'MARKOV_CHAINS')