La funzione statistica della catena di Markov utilizza metodi probabilistici per assegnare il merito ai touchpoint pubblicitari in base al loro contributo modellato alla probabilità di conversione di un utente. L'output di questa funzione sperimentale può essere utile per assegnare il merito a un canale pubblicitario, a una campagna o a un altro touchpoint in base al suo contributo modellato agli eventi di conversione.
Come funziona
La funzione statistica della catena di Markov utilizza i tuoi dati pubblicitari per creare una catena di Markov in cui ogni vertice del grafico ordinato rappresenta un touchpoint e ogni bordo indica la probabilità di passare al touchpoint successivo, a condizione di trovarsi nel touchpoint corrente. La funzione presuppone che solo il touchpoint corrente influisca sulla probabilità di transizione. Il contributo di ogni touchpoint viene quindi calcolato rimuovendo il touchpoint dal grafico e calcolando la probabilità modellata di una conversione dopo la rimozione.
Restrizioni sulla privacy
Per non essere rimossi dai filtri per la privacy, i touchpoint devono includere almeno 50 utenti che effettuano conversioni e almeno 50 che non le effettuano. Inoltre, gli utenti anomali, ovvero quelli che contribuiscono con merito sproporzionato a un touchpoint, possono essere filtrati. Pertanto, nell'output del modello della catena di Markov potrebbero mancare alcuni touchpoint presenti nella tabella dei touchpoint di input.I messaggi sulla privacy vengono visualizzati dopo ogni iterazione del modello della catena di Markov. Questi messaggi includono informazioni su utenti e touchpoint filtrati.
Panoramica del calcolo dei valori della catena di Markov
- Crea le tabelle dei touchpoint e del merito:
touchpoint_temp_table
.user_credit_temp_table
.
- Richiama la funzione con valori di tabella
ADH.TOUCHPOINT_ANALYSIS
utilizzando le tabelle temporanee sopra riportate come argomenti.
Creare le tabelle dei touchpoint e del merito
Creare la tabella dei touchpoint
Nella tabella dei touchpoint vengono definiti gli eventi utente relativi ai touchpoint. I dati di esempio possono includere, a titolo esemplificativo, campaign_id
, creative_id
, placement_id
o site_id
.
La tabella deve contenere le seguenti colonne:
Nome colonna | Tipo |
---|---|
touchpoint |
string Nome del touchpoint arbitrario (non deve essere NULL o contenere virgole). |
user_id |
string ID di un utente che visita il touchpoint (non deve essere NULL o 0). |
event_time |
int Ora in cui l'utente ha visitato il touchpoint (non deve essere NULL). |
Codice campione per la creazione della tabella:
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)
);
Creare la tabella del merito utente
Nella tabella del merito utente vengono definiti gli eventi di conversione. Gli eventi successivi alle conversioni sono considerati come eventi non di conversione.
La tabella deve contenere le seguenti colonne:
Nome colonna | Tipo |
---|---|
user_id |
string ID di un utente che visita il touchpoint (non deve essere NULL o 0). |
event_time |
int Ora in cui si è verificato l'evento di contributo (non deve essere NULL). |
credit |
integer Merito a cui l'utente ha contribuito. Può trattarsi di qualsiasi merito che si intende analizzare, ad esempio il valore di conversione, il numero di conversioni e così via. Deve essere compreso tra 1 e 100. |
Codice campione per la creazione della tabella:
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 funzione con valori di tabella
È una funzione che restituisce una tabella come risultato. Pertanto, puoi eseguire query sulla funzione con valori di tabella come faresti con una tabella normale.
Sintassi
ADH.TOUCHPOINT_ANALYSIS(TABLE touchpoints_tmp_table_name, TABLE credits_tmp_table_name, STRING model_name)
Argomenti
Nome | |
---|---|
touchpoints_tmp_table_name |
Nome della tabella temporanea dei touchpoint creata dal client. La tabella deve avere uno schema contenente le colonne touchpoint , user_id e event_time . |
credits_tmp_table_name |
Nome della tabella temporanea del merito utente creata dal client. La tabella deve avere uno schema contenente le colonne user_id , credit e conversion_time . |
model |
string Deve essere MARKOV_CHAINS. |
Tabella di output
La tabella di output conterrà il seguente schema:
Nome colonna | Tipo |
---|---|
touchpoint |
string Nome del touchpoint. |
score |
integer Punteggio della catena di Markov calcolato per questo touchpoint. |
Codice campione per l'utilizzo della funzione con valori di tabella
SELECT *
FROM ADH.TOUCHPOINT_ANALYSIS(
TABLE tmp.touchpoint_temp_table,
TABLE tmp.user_credit_temp_table,
'MARKOV_CHAINS')