
Perché creare uno strumento di attribuzione personalizzato? Perché con strumenti pronti all'uso, sei limitato dalla loro funzionalità, trasformazioni di dati, modelli ed euristica.
Con i dati non elaborati, puoi creare qualsiasi modello di attribuzione più adatto alla tua attività e area di dominio. Mentre poche piccole aziende raccolgono dati grezzi, la maggior parte delle grandi aziende li porta in un data warehouse e li visualizza utilizzando strumenti di BI come Google Data Studio, Tableau, Microsoft Power BI, Looker, ecc.
Google BigQuery è uno dei data warehouse più popolari. È estremamente potente, veloce e facile da usare. In effetti, puoi utilizzare Google BigQuery non solo per analisi di marketing end-to-end, ma anche per formare modelli di apprendimento automatico per l'attribuzione basata sul comportamento.
In breve, il processo è simile al seguente:
- Raccogliere dati da piattaforme pubblicitarie (ad es., Facebook Ads, Google Ads, Microsoft Ads, ecc.);
- Raccogliere dati dal tuo sito Web: visualizzazioni di pagina, eventi, parametri UTM, contesto (ad es. Browser, regione, ecc.) E conversioni;
- Raccogliere dati dal CRM su ordini finali / stati dei lead;
- Cuci tutto insieme per sessione per capire il costo di ogni sessione;
- Applica modelli di attribuzione per comprendere il valore di ogni sessione.
Di seguito, condivido come liberare tutto il potenziale dei dati grezzi e iniziare a utilizzare Google BigQuery ML domani per creare attribuzioni sofisticate con solo un po 'di SQL, senza la conoscenza di Python, R o di qualsiasi altro linguaggio di programmazione necessario.
La sfida dell'attribuzione
Per la maggior parte delle aziende, è improbabile che un utente comprerà qualcosa con il primo clic. Gli utenti in genere visitano il tuo sito alcune volte da diverse fonti prima di effettuare un acquisto.
Tali fonti potrebbero essere:
- Ricerca organica;
- Social media;
- Link di riferimento e affiliati;
- Annunci banner e annunci di retargeting.
Puoi visualizzare tutte le fonti nei rapporti come Percorsi di conversione principali in Google Analytics:

Nel tempo, accumuli una moltitudine di tipi e catene di fonti. Ciò rende difficile confrontare le prestazioni del canale. Per questo motivo, utilizziamo regole speciali per valutare le entrate provenienti da ciascuna fonte. Tali regole sono comunemente chiamate regole di attribuzione.
L'attribuzione è l'identificazione di un insieme di azioni dell'utente che contribuiscono al risultato desiderato, seguito dall'assegnazione di valore a ciascuno di questi eventi.
Ce ne sono di due tipi:
- Canale singolo;
- Multicanale.
I tipi a canale singolo assegnano il 100% del valore a uno fonte. Un modello di attribuzione multicanale distribuisce i valori di conversione su più fonti, usando una certa proporzione. Per quest'ultimo, l'esatta proporzione della distribuzione del valore è determinata dalle regole di attribuzione.
L'attribuzione a canale singolo non riflette la realtà dei percorsi dei clienti moderni ed è estremamente distorta. Allo stesso tempo, l'attribuzione multicanale ha le sue sfide:
- La maggior parte dei modelli di attribuzione multicanale sono pieni di euristica, decisioni prese da persone (esperte). Ad esempio, con un modello di attribuzione lineare, viene assegnato lo stesso valore per ciascun canale; in un modello a forma di U, la maggior parte del valore va al primo e all'ultimo canale, con il resto diviso tra gli altri canali. Questi modelli di attribuzione si basano su algoritmi inventati dalle persone per riflettere la realtà, ma la realtà è molto più complessa.
- Anche l'attribuzione basata sui dati non tollera le frodi perché, nella maggior parte dei casi, tiene conto solo delle visualizzazioni di pagina e dei parametri UTM; il comportamento effettivo non viene analizzato.
- Tutti i modelli di attribuzione sono retrospettivi. Ci dicono alcune statistiche del passato mentre vogliamo sapere cosa fare in futuro.
Ad esempio, diamo un'occhiata alle seguenti figure, che riflettono le statistiche di due campagne pubblicitarie di novembre:
"Offerta di novembre 1" ha prestazioni due volte migliori in termini di rapporto costi-ricavi (CRR) rispetto a "Offerta di novembre 2". Se lo avessimo saputo in anticipo, avremmo potuto assegnare più budget all'Offerta 1 riducendo al contempo il budget dell'Offerta 2. Tuttavia, è impossibile cambiare il passato.
A dicembre avremo nuovi annunci, quindi non saremo in grado di riutilizzare le statistiche di novembre e le conoscenze raccolte.
Non vogliamo trascorrere un altro mese investendo in una campagna di marketing inefficiente. È qui che entra in gioco l'apprendimento automatico e l'analisi predittiva.
Cosa cambia l'apprendimento automatico
L'apprendimento automatico ci consente di trasformare il nostro approccio all'attribuzione e all'analisi da algoritmico (cioè Dati + Regole = Risultato) ad apprendimento supervisionato (cioè Dati + Risultato desiderato = Regole).
In realtà, la definizione stessa di attribuzione (a sinistra) si adatta all'approccio di apprendimento automatico (a destra):
Di conseguenza, i modelli di apprendimento automatico presentano numerosi vantaggi potenziali:
- Tolleranza alle frodi;
- In grado di riutilizzare le conoscenze acquisite;
- In grado di ridistribuire il valore tra più canali (senza algoritmi manuali e coefficienti predefiniti);
- Prendi in considerazione non solo le visualizzazioni di pagina e i parametri UTM, ma il comportamento effettivo dell'utente.
Di seguito, descrivo come abbiamo realizzato un modello del genere, utilizzando Google BigQuery ML per eseguire lavori pesanti.
Quattro passaggi per creare un modello di attribuzione con Google BigQuery ML
Passaggio 1: funzionalità di mining
È impossibile addestrare qualsiasi modello di apprendimento automatico senza un adeguato mining delle funzionalità. Abbiamo deciso di raccogliere tutte le possibili funzionalità dei seguenti tipi:
- Caratteristiche di recency. Quanto tempo fa è accaduto un evento o una micro-conversione in un determinato periodo di tempo;
- Funzionalità di frequenza. Con quale frequenza si è verificato un evento o una micro-conversione in un determinato periodo di tempo;
- Funzionalità monetarie. Il valore monetario di eventi o micro-conversioni avvenute in un determinato periodo di tempo;
- Funzionalità contestuali Informazioni sul dispositivo dell'utente, regione, risoluzione dello schermo, ecc .;
- Permutazioni di funzionalità. Permutazioni di tutte le funzioni sopra per prevedere correlazioni non lineari.
Quando si confrontano modelli di attribuzione semplici e algoritmici, è importante raccogliere e analizzare centinaia e migliaia di eventi diversi. Di seguito, ad esempio, ci sono diverse micro conversioni che potrebbero essere raccolte su una pagina di prodotti di e-commerce per un sito Web di moda:
- Impressioni di immagini;
- Clic sull'immagine;
- Verifica delle dimensioni;
- Selezione della taglia;
- Leggere più dettagli;
- Mappa dimensioni visualizzate;
- Aggiunta alla lista dei desideri;
- Aggiunta al carrello, ecc.
Alcune micro conversioni hanno un potere predittivo maggiore di quanto ci si possa aspettare. Ad esempio, dopo aver creato il nostro modello, abbiamo scoperto che la visualizzazione tutti le immagini sulla pagina di un prodotto hanno un enorme potere predittivo per gli acquisti futuri.
Nelle canalizzazioni di e-commerce standard, analisi delle visualizzazioni di pagina dei prodotti con uno l'immagine visualizzata è la stessa delle visualizzazioni di pagina del prodotto con tutti immagini visualizzate. Un'analisi completa delle micro-conversioni è molto diversa.
Usiamo SegmentStream JavaScript SDK, parte della nostra piattaforma, per raccogliere tutte le possibili interazioni e micro-conversioni e archiviarle direttamente in Google BigQuery. Ma puoi fare lo stesso se esporti i dati a livello di hit in Google BigQuery tramite l'API di Google Analytics o se disponi di Google Analytics 360, che ha un'esportazione integrata in BigQuery.
Una volta raccolti, i dati non elaborati devono essere trasformati in attributi, in cui ogni sessione ha una serie di funzionalità (ad es. Tipo di dispositivo) e un'etichetta (ad es. Un acquisto nei prossimi 7 giorni):
Questo set di dati può ora essere utilizzato per addestrare un modello che prevede la probabilità di effettuare un acquisto nei prossimi 7 giorni.
Passaggio 2: formazione di un modello
Nei giorni precedenti all'apprendimento automatico di Google BigQuery, la formazione di un modello era un'attività complessa di ingegneria dei dati, soprattutto se si voleva riqualificare il modello su base giornaliera.
Dovevi spostare i dati avanti e indietro dal data warehouse su un notebook Tensorflow o Jupiter, scrivere del codice Python o R, quindi caricare il modello e le previsioni nel database:
Con Google BigQuery ML, non è più così. Ora puoi raccogliere dati, estrarre funzionalità, formare modelli e fare previsioni, tutto all'interno del data warehouse di Google BigQuery. Non è necessario spostare i dati ovunque:
E tutte queste cose possono essere implementate usando un semplice codice SQL.
Ad esempio, per creare un modello che prevede la probabilità di acquistare nei prossimi 7 giorni in base a una serie di funzionalità comportamentali, è sufficiente eseguire una query SQL come questa*:
CREAZIONE O SOSTITUZIONE DEL MODELLO
`projectId.segmentstream.mlModel`
OPZIONE
S(model_type = 'logistic_reg')
COME SELEZIONARE
Caratteristiche.*
labels.buyDuring7Days AS label
A PARTIRE DAL
`projectId.segmentstream.mlLearningSet`
DOVE data TRA 'AAAA-MM-GG' E 'AAAA-MM-GG'
*Inserisci il tuo ID progetto Google Cloud anziché ProjectID
, il tuo nome del set di dati anziché segmentstream
e il nome del tuo modello anziché mlModel
; mlLearningSet
è il nome della tabella con le caratteristiche e le etichette e labels.buyDuring7Days
è solo un esempio.
Questo è tutto! In 30–60 secondi, hai un modello addestrato con tutte le possibili permutazioni non lineari, divisioni di set di apprendimento e validazione, ecc. E la cosa più sorprendente è che questo modello può essere riqualificato quotidianamente senza alcuno sforzo.
Passaggio 3: valutazione del modello
Google BigQuery ML ha tutti gli strumenti integrati per la valutazione del modello. E puoi valutare il tuo modello con una semplice query (sostituendo i valori dei segnaposto con i tuoi):
SELEZIONA * DA ML.EVALUATE (MODELLO `projectId.segmentstream.mlModel`, (SELEZIONA funzioni. *, Labels.buyDuring7Days come etichetta DA` projectId.segmentstream.mlTrainingSet` WHERE date> 'YYYY-MM-DD'), STRUCT (0.5 Soglia AS))
Questo visualizzerà tutte le caratteristiche del modello:
- Curva di richiamo di precisione;
- Precisione e richiamo vs. soglia;
- Curva ROC.
Passaggio 4: creazione di un modello di attribuzione
Una volta che hai un modello che prevede la probabilità di acquistare nei prossimi sette giorni per ciascun utente, come lo applichi all'attribuzione?
Un modello di attribuzione basato sul comportamento:
- Alloca valore a ciascuna fonte di traffico;
- Prevede la probabilità di acquistare all'inizio e alla fine della sessione;
- Calcola il "delta" tra i due.
Consideriamo l'esempio sopra:
- Un utente è venuto sul sito Web per la prima volta. La probabilità prevista di un acquisto per questo utente è stata del 10%. (Perché non zero? Perché non è mai zero. Anche in base a funzionalità contestuali come regione, browser, dispositivo e risoluzione dello schermo, l'utente avrà alcuni probabilità diversa da zero di effettuare un acquisto.)
- Durante la sessione, l'utente ha fatto clic sui prodotti, ne ha aggiunto alcuni al carrello, ha visualizzato la pagina dei contatti, quindi ha lasciato il sito Web senza un acquisto. La probabilità calcolata di un acquisto alla fine della sessione era del 25%.
- Ciò significa che la sessione avviata da Facebook ha spinto la probabilità dell'utente di effettuare un acquisto dal 10% al 25%. Ecco perché il 15% è assegnato a Facebook.
- Quindi, due giorni dopo, l'utente è tornato sul sito facendo clic su un annuncio di retargeting di Criteo. Durante la sessione, la probabilità dell'utente non è cambiata molto. Secondo il modello, la probabilità di effettuare un acquisto è cambiata solo del 2%, quindi il 2% è assegnato a Criteo.
- E così via…
Nel nostro database Google BigQuery, abbiamo la seguente tabella per ogni sessione utente:
Dove:
- session_start_p è la probabilità prevista di acquisto all'inizio della sessione.
- session_end_p è la probabilità prevista di acquisto al termine della sessione.
- attributed_delta è il valore assegnato alla sessione.
Alla fine, abbiamo valori per tutti i canali / campagne in base al modo in cui incidono sulla probabilità degli utenti di acquistare nei prossimi 7 giorni durante la sessione:
Per quanto ordinato possa essere quel grafico, tutto viene fornito con pro e contro.
Pro e contro dell'attribuzione basata sul comportamento
Professionisti
- Elabora centinaia di funzioni invece di approcci algoritmici.
- Gli esperti di marketing e gli analisti hanno la possibilità di selezionare funzionalità specifiche del dominio.
- Le previsioni sono estremamente accurate (fino al 95% di ROC-AUC).
- I modelli vengono riqualificati ogni giorno per adattarsi alla stagionalità e ai cambiamenti della UX.
- Possibilità di scegliere qualsiasi etichetta (LTV previsto, probabilità di acquisto in X giorni, probabilità di acquisto nella sessione corrente).
- Nessuna impostazione manuale.
Contro
- È necessario impostare il monitoraggio avanzato sul sito Web o sull'app mobile.
- Sono necessarie 4-8 settimane di dati storici.
- Non applicabile per progetti con meno di 50.000 utenti al mese.
- Costi aggiuntivi per la riqualificazione del modello.
- Non è possibile analizzare post-view in assenza di visite al sito Web.
Conclusione
L'apprendimento automatico dipende ancora dalle capacità analitiche del cervello umano. Sebbene ineguagliabile nelle sue capacità di elaborazione dei dati, Google BigQuery ML valuta i fattori che l'utente seleziona, quelli ritenuti fondamentali per la propria attività in base all'esperienza precedente.
Gli algoritmi dimostrano o confutano l'ipotesi del marketer e consentono loro di adattare le caratteristiche del modello per spostare le previsioni nella direzione necessaria. Google BigQuery ML può rendere questo processo molto più efficiente.