Il senso del remarketing è quello di mostrare un messaggio ben preciso ad un pubblico ben targettizzato. In Google ADS le campagne smart display funzionano molto bene perché si ricordano quali prodotti ha visualizzato un utente e glieli ripropone quando naviga in altri siti.Ma se volessimo combinare più variabili per la creazione del nostro pubblico personalizzato? Ad esempio eventi di diversa natura?
Vantaggi:
- Remarketing più mirato, su qualsiasi metrica che vi possa interessare
- Possibilità di esportare quest’audience su strumenti di terze parti
Dati:
- Dataset Google Analytics 4 del Google Merchandise Store, per gentile concessione di Google https://developers.google.com/analytics/bigquery/web-ecommerce-demo-dataset
BigQuery: Remarketing sulla pagina Informazioni Resi
Un vantaggio che Zalando ed Amazon hanno in confronto ad altri competitor è la facilità del reso. Zalando addirittura inserisce tutto ciò che serve (sia informazioni che etichette) all’interno di ogni pacco.
Immaginiamo quindi di avere un piccolo ecommerce. La nostra pagina dei resi potrebbe non essere così chiara o i nostri clienti non conoscono ancora le nostre modalità di gestione dei resi.
Ecco quindi che perdiamo preziosi clienti perché non siamo riusciti a dare informazioni chiare e semplici all’interno del nostro sito.
Ecco che ci viene in aiuto BigQuery. Possiamo infatti creare audience su praticamente qualsiasi variabile ci interessi.
Selezionare utenti che hanno aggiunto al carrello un prodotto
Vediamo si seguito il codice per trovare tutti gli utenti che hanno inserito almeno un prodotto all’interno del proprio carrello:
Codice
adders as (
select distinct
user_pseudo_id,
event_date,
event_name
FROM
`analyticstraining-358318.ga4_obfuscated_sample_ecommerce_copy.events_2021013*`,
unnest (event_params) as event_params
where
event_name = "add_to_cart"
)
Dal nostro dataset selezioniamo:
- User_pseudo_id à valore usato per identificare l’utente
- Event_date à il giorno in cui l’evento di è triggerato
- Event_name à il nome dell’evento triggerato (in questo caso sarà sempre add_to_cart)
Abbiamo usato in questo caso un select distinct. Questo ci permette di selezionare solo valori univoci per la triade “user_pseudo_id, event_date, event_name” e di non appesantire inutilmente l’analisi.
Siamo interessati però solo a quegli utenti che hanno inserito un prodotto a carrello, perciò usiamo il comando where: qui indichiamo a BigQuery di selezionarci solo gli utenti che hanno triggerato l’evento “add_to_cart”.
Selezionare utenti che hanno visualizzato la pagina resi
Vediamo di seguito il codice per trovare gli utenti che hanno visualizzato la pagina di aiuto, che nel caso del dataset usato è “%frequently-asked-questions%”.
Codice
viewers as (
select distinct
user_pseudo_id,
event_date,
event_name
FROM
`analyticstraining-358318.ga4_obfuscated_sample_ecommerce_copy.events_2021013*`,
unnest (event_params) as event_params
where
event_name = "page_view" and
event_params.value.string_value like "%frequently-asked-questions%"
)
Anche in questo caso usiamo il comando select distinct indicando le stesse 3 variabili:
- User_pseudo_id
- Event_date
- Event_name
Restringiamo poi il cerchio a solo le persone che hanno visualizzato la pagina delle informazioni.
Per fare questo utilizziamo il comando where:
- Event_name = “page_view” à qui indichiamo a BigQuery di selezionarci solamente le righe relative agli eventi “page_view”. Sarebbe inutile e dispendioso controllare ogni volta qualsiasi evento anche se non ci interessa (come “start_video”, “remove_from_cart” ecc).
- event_params.value.string_value like “%frequently-asked-questions%” à di tutti gli eventi page_view che abbiamo selezionato sopra, dobbiamo tenere solo quelli che si riferiscono ad un URL che contiene al suo interno “frequently-asked-questions”. Le due percentuali stanno a significare “qualsiasi carattere ci sia prima e qualsiasi carattere ci sia dopo”.
- AND à è un operatore logico. Significa che BigQuery ci fornirà ciascuna riga della tabella che soddisferà ENTRAMBE le condizioni
Ed ecco che abbiamo la tabella con tutti gli utenti che hanno visualizzato la pagina dei resi.
Utenti che hanno acquistato un prodotto
Ecco infine l’ultima tabella che ci serve: gli utenti che hanno completato l’acquisto.
with buyers as (
select distinct
user_pseudo_id,
event_date,
event_name
FROM
`analyticstraining-358318.ga4_obfuscated_sample_ecommerce_copy.events_2021013*`
where
event_name = "purchase"
)
Le metriche che andiamo a selezionare sono sempre le stesse:
- user_pseudo_id
- event_date
- event_name
Questa volta il parametro where è più semplice. Abbiamo una sola condizione, cioè che l’utente deve aver acquistato qualcosa. Usiamo quindi event_name = “purchase”.
Query finale: mettiamo tutto assieme
Piccolo recap: stiamo cercando gli utenti che hanno inserito qualcosa a carrello E hanno visitato la pagina resi MA NON hanno completato l’acquisto.
Ciò significa che dobbiamo prima unire i primi 2 gruppi, per poi sottrarre il terzo.
Vediamo di seguito la query con tutto ciò che ci serve. Ho usato le tre query mostrate in precedenza e aggiunto la parte finale.
Codice
with buyers as (
select distinct
user_pseudo_id,
event_date,
event_name
FROM
`analyticstraining-358318.ga4_obfuscated_sample_ecommerce_copy.events_2021013*`
where
event_name = "purchase"
),
viewers as (
select distinct
user_pseudo_id,
event_date,
event_name
FROM
`analyticstraining-358318.ga4_obfuscated_sample_ecommerce_copy.events_2021013*`,
unnest (event_params) as event_params
where
event_name = "page_view" and
event_params.value.string_value like "%frequently-asked-questions%"
),
adders as (
select distinct
user_pseudo_id,
event_date,
event_name
FROM
`analyticstraining-358318.ga4_obfuscated_sample_ecommerce_copy.events_2021013*`,
unnest (event_params) as event_params
where
event_name = "add_to_cart"
)
select
*
from
adders inner join viewers on adders.user_pseudo_id = viewers.user_pseudo_id
left join buyers on adders.user_pseudo_id = buyers.user_pseudo_id
where
buyers.user_pseudo_id is null
Notate qualcosa di nuovo?
BigQuery. Usiamo dei JOIN
Per ottenere solo gli utenti che ci interessano, dobbiamo usare due JOIN, un INNER JOIN e un LEFT JOIN.
Avete presente i diagrammi di Euler Venn studiati alle scuole medie? Ora diventano utili:
La foto che vedete qui spiega visivamente cosa stiamo facendo.
La prima operazione è quella di trovare gli utenti che hanno aggiunto un prodotto a carrello MA ANCHE visualizzato la pagina dei resi. Usiamo quindi l’INNER JOIN, quello al centro della figura.
Dalla tabella risultante che otteniamo, dobbiamo togliere gli utenti che hanno poi effettuato l’acquisto. Usiamo quindi un LEFT JOIN, il secondo a sinistra.
Ed ecco infatti che scriviamo:
Codice
from
adders inner join viewers on adders.user_pseudo_id = viewers.user_pseudo_id
left join buyers on adders.user_pseudo_id = buyers.user_pseudo_id
where
buyers.user_pseudo_id is null
Il risultato sarà come segue: