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
- 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. 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')