Analisi della catena di Markov

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

  1. Crea le tabelle dei touchpoint e del merito:
    1. touchpoint_temp_table.
    2. user_credit_temp_table.
  2. 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')