BigQuery: creazione di un’audience per remarketing specifica

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:

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.

Cosa ne direste di creare una campagna Google ADS specificatamente per quelle persone che hanno aggiunto un prodotto a carrello, hanno visitato la pagina dei resi ma non hanno completato l’acquisto?

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:

tipologia join sql bigquery

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:

esempio bigquery marketing
Per creare la nostra audience useremo l’identificativo della colonna “user_pseudo_id”, mentre con la colonna event_date potremo creare un grafico sull’andamento di questi utenti.
 
Siamo arrivati alla fine di questo breve tutorial. Se hai consigli o richieste, commenta pure nel box che vedi qui sotto 👍

Lascia un commento