A função estatística da cadeia de Markov usa métodos probabilísticos para atribuir crédito entre pontos de contato de publicidade com base na estimativa de contribuição para a conversão feita por alguém. Ela ajuda a atribuir crédito a canais de publicidade, campanhas ou outros pontos de contato com base nessa contribuição.
Como funciona
Esse recurso usa dados de publicidade para criar uma cadeia de Markov em que cada vértice no gráfico ordenado representa um ponto de contato e cada borda mostra a probabilidade de prosseguimento para o próximo ponto, desde que se esteja no primeiro contato. Para isso, é considerado que apenas o ponto de contato atual afeta a probabilidade de transição. Depois, para estabelecer a contribuição dos pontos de contato, eles são removidos do gráfico, um de cada vez, e a probabilidade de a conversão acontecer é calculada sem o ponto que foi removido.
Restrições de privacidade
Os pontos de contato precisam ter 50 ou mais usuários com e sem conversões (ou seja, no mínimo 100) para que não sejam removidos por filtros de privacidade. Usuários outliers, que contribuem com crédito de forma desproporcional para um ponto de contato, também são filtrados. Desse modo, o resultado do modelo de cadeia de Markov às vezes não inclui alguns pontos de contato que estão na tabela de entrada.As mensagens de privacidade aparecem após cada iteração do modelo da cadeia de Markov e mostram informações sobre usuários e pontos de contato filtrados.
Perspectiva geral da computação de valores da cadeia de Markov
- Criar as tabelas de pontos de contato e créditos:
touchpoint_temp_table
.user_credit_temp_table
.
- Chamar a função com valor de tabela
ADH.TOUCHPOINT_ANALYSIS
usando as tabelas temporárias acima como argumentos.
Criar as tabelas de pontos de contato e créditos
Criar a tabela de pontos de contato
Nessa tabela, os eventos dos usuários relacionados aos pontos de contato são definidos. Os dados de exemplo incluem, entre outros: campaign_id
, creative_id
, placement_id
ou site_id
.
A tabela precisa conter as seguintes colunas:
Nome da coluna | Tipo |
---|---|
touchpoint |
string Nome do ponto de contato arbitrário. Não pode ser NULL nem conter vírgulas. |
user_id |
string O ID de um usuário que visita o ponto de contato. Não pode ser NULL nem 0. |
event_time |
int O horário em que o usuário visitou o ponto de contato. Não pode ser nulo. |
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)
);
Criar a tabela de créditos do usuário
Os eventos de conversão são definidos nessa tabela. Tudo o que ocorre após uma conversão é considerado como um evento sem conversão.
A tabela precisa conter as seguintes colunas:
Nome da coluna | Tipo |
---|---|
user_id |
string O ID de um usuário que visita o ponto de contato. Não pode ser NULL nem 0. |
event_time |
int O horário em que o evento de contribuição aconteceu. Não pode ser nulo. |
credit |
integer A contribuição de crédito do usuário. Pode ser qualquer valor que você queira analisar, por exemplo, valor ou quantidade das conversões etc, e precisa estar 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
);
Função com valor de tabela
Retorna uma tabela como resultado e permite que você consulte como faria com uma 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 de ponto de contato temporária que o cliente criou. A tabela precisa ter as colunas touchpoint , user_id e event_time . |
credits_tmp_table_name |
O nome da tabela de créditos temporários do usuário criada pelo cliente. A tabela precisa ter as colunas user_id , credit e conversion_time . |
model |
string Precisa ser MARKOV_CHAINS. |
Tabela de saída
Vai mostrar o seguinte esquema:
Nome da coluna | Tipo |
---|---|
touchpoint |
string Nome do ponto de contato. |
score |
integer Pontuação da cadeia de Markov calculada para este ponto de contato. |
Exemplo de código para usar a função com valor de tabela
SELECT *
FROM ADH.TOUCHPOINT_ANALYSIS(
TABLE tmp.touchpoint_temp_table,
TABLE tmp.user_credit_temp_table,
'MARKOV_CHAINS')