Analisi del valore di Shapley

Il metodo del valore di Shapley è un algoritmo che assegna il merito a numerosi canali pubblicitari e touchpoint in base al loro contributo modellato alla conversione. Utilizzando il metodo del valore di Shapley, puoi modellare il contributo di un determinato canale alla conversione.

Ads Data Hub utilizza il "metodo del valore di Shapley semplificato", descritto in dettaglio nel documento Shapley Value Methods for Attribution Modeling in Online Advertising (Metodi del valore di Shapley per la definizione del modello di attribuzione nella pubblicità online).

Restrizioni sulla privacy

I filtri per la privacy rimuoveranno i touchpoint con meno di 50 utenti e gli utenti anomali che contribuiscono con merito sproporzionato a un touchpoint. Pertanto, nell'output del modello di valore di Shapley potrebbero mancare alcuni touchpoint presenti nella tabella dei touchpoint di input.

I messaggi sulla privacy vengono visualizzati dopo ogni iterazione del modello di valore di Shapley. Questi messaggi includono informazioni su utenti e touchpoint filtrati.

Panoramica del calcolo dei valori del valore di Shapley

  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. Per ogni utente vengono presi in considerazione solo gli eventi con un timestamp precedente alla 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 SHAPLEY_VALUES.

Tabella di output

La tabella di output conterrà il seguente schema:

Nome colonna Tipo
touchpoint string
Nome del touchpoint.
score integer
Punteggio del valore di Shapley 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,
  'SHAPLEY_VALUES')