Tasso di Conversione per Categoria di Prodotto: Analisi e Insights con BigQuery
Un altro insight cruciale per l’e-commerce è l’Analisi del Tasso di Conversione per Categoria di Prodotto. Questo insight aiuta a comprendere quale categoria di prodotti ha il maggior successo in termini di conversione delle vendite, permettendoti di ottimizzare l’assortimento del tuo inventario e le strategie di marketing specifiche per categoria.
Perché è utile questa analisi?
L’obiettivo è determinare il tasso di conversione delle vendite per ciascuna categoria di prodotto, per identificare quali categorie performano meglio e quali richiedono miglioramenti.
Questa analisi può aiutarti a:
- Migliorare le Strategie di Advertising: puoi sviluppare campagne marketing mirate per aumentare le conversioni nelle categorie con tassi più bassi. Viceversa puoi ottimizzare il budget allocandolo sulle categorie best seller. Pensa ad esempio alle campagne Pmax su Google Shopping: una segmentazione per categorie con più alti tassi di conversione potrebbe consentirti di ottimizzarle con un budget maggiore e dedicato.
- Migliorare la visibilità organica della categorie: puoi pensare di ottimizzare la SEO delle categorie più strategiche in modo da dare più visibilità sul canale Google / Organico.
- Ottimizzare l’Inventario: puoi concentrati sul rifornimento di prodotti con i tassi di conversione più alti ed evitare criticità sulle scorte di magazzino.
- Analizzare le stagionalità: puoi ottenere intuizioni preziose sul comportamento di acquisto dei clienti e ottimizzare le strategie di inventario, marketing e vendite in base ai periodi di picco e di calma. Questo aspetto verrà approfondito più avanti con una query specifica.
A quali domande vogliamo rispondere?
Ecco le domande strategiche basate sull’analisi che svilupperemo:
- Quali categorie di prodotti hanno il tasso di conversione più alto negli ultimi X giorni? Questo può aiutare a identificare quali categorie stanno performando meglio in termini di conversione dei visitatori in acquirenti.
- Ci sono categorie di prodotti con un alto numero di visitatori unici ma bassi acquisti? Questo può indicare una potenziale disconnessione tra l’interesse del consumatore e la decisione finale di acquisto.
- Come variano i tassi di conversione tra le diverse categorie di prodotti? Questo può rivelare quali categorie richiedono maggiore attenzione o risorse per migliorare le prestazioni.
- Quali categorie di prodotti mostrano i tassi di conversione più alti in determinati periodi dell’anno? Questo può indicare stagionalità o tendenze di mercato che influenzano le decisioni di acquisto.
- Ci sono categorie di prodotti che mostrano un declino costante nel tasso di conversione nel tempo? Identificare potenziali problemi o cambiamenti nel comportamento dei consumatori che potrebbero necessitare di azioni correttive.
Query per analisi performance per categoria
Ti mostro ora la query per ottenere questi insights preziosi:
WITH product_views AS (
SELECT
(SELECT value.string_value FROM UNNEST(items.item_params) WHERE key = 'item_category_4') AS category,
COUNT(DISTINCT user_pseudo_id) AS unique_visitors
FROM
`your_project.your_dataset.events_*`,
UNNEST(items) AS items
WHERE
event_name = 'view_item'
AND
_TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 60 DAY)) AND FORMAT_DATE('%Y%m%d', CURRENT_DATE())
GROUP BY
category
),
product_purchases AS (
SELECT
(SELECT value.string_value FROM UNNEST(items.item_params) WHERE key = 'item_category_4') AS category,
COUNT(DISTINCT user_pseudo_id) AS total_purchases
FROM
`your_project.your_dataset.events_*`,
UNNEST(items) AS items
WHERE
event_name = 'purchase'
AND
_TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 60 DAY)) AND FORMAT_DATE('%Y%m%d', CURRENT_DATE())
GROUP BY
category
),
conversion_rate AS (
SELECT
pv.category,
pv.unique_visitors,
pp.total_purchases,
ROUND(SAFE_DIVIDE(pp.total_purchases, pv.unique_visitors) * 100, 2) AS conversion_rate
FROM
product_views pv
LEFT JOIN
product_purchases pp ON pv.category = pp.category
)
SELECT
category,
unique_visitors,
total_purchases,
ROUND(SAFE_DIVIDE(total_purchases, unique_visitors) * 100, 2) AS conversion_rate
FROM
conversion_rate
PS. Ricorda di sostituire your_project
, your_dataset
e your_table
con i tuoi identificativi di progetto, dataset e tabella effettivi. Queste query sono solo punti di partenza e potrebbero necessitare di personalizzazioni per adattarsi alle tue esigenze specifiche e alla struttura dei tuoi dati.
Nella query, ad esempio, stiamo ipotizzando che la categoria venga valorizzata da GA4 nell’array items.item_params e venga estratta con chiave item_category_4. Adeguala al tuo caso specifico.
La query genererà il seguente report:
Andiamo a esaminare passo per passo il processo della query con esempi pratici.
Spiegazione della Query e Esempio Pratico
1. CTE product_views
Obiettivo: Calcolare il numero di visitatori unici per ogni categoria di prodotto basato sugli eventi di visualizzazione del prodotto.
Processo:
- Per ogni record negli eventi, la query estrae la categoria del prodotto (
item_category_4
) dagliitem_params
di ogni elemento dell’arrayitems
. - Conta i
user_pseudo_id
distinti per ogni categoria, rappresentando il numero di visitatori unici che hanno visualizzato articoli in quella categoria.
Esempio pratico:
Supponiamo che ci siano stati 150 visitatori unici che hanno visualizzato prodotti nella categoria “Lavatrici”. Questo risultato verrà salvato come ‘Lavatrici’, 150.
2. CTE product_purchases
Obiettivo: Calcolare il numero totale di acquisti distinti per utente per ogni categoria di prodotto.
Processo:
- Similmente alla CTE
product_views
, questa parte della query estrae la categoria di ogni prodotto acquistato. - Conta i
user_pseudo_id
distinti che hanno completato un acquisto per ogni categoria.
Esempio pratico:
Immaginiamo che 40 utenti unici abbiano acquistato prodotti nella categoria “Lavatrici”. Questo risultato sarà registrato come ‘Lavatrici’, 40.
3. CTE conversion_rate
Obiettivo: Combinare i dati di visualizzazioni e acquisti per calcolare il tasso di conversione per ciascuna categoria.
Processo:
- La query effettua una
LEFT JOIN
traproduct_views
eproduct_purchases
basata sulla categoria. - Calcola il tasso di conversione dividendo il numero totale di acquisti (
total_purchases
) per il numero di visitatori unici (unique_visitors
) per ogni categoria.
Esempio pratico:
Se la categoria “Lavatrici” ha avuto 150 visitatori unici e 40 acquisti, il tasso di conversione sarà (40 / 150) * 100 = 26.67%. Questo significa che, in media, il 26.67% dei visitatori unici che hanno visualizzato prodotti nella categoria “Lavatrici” hanno effettuato un acquisto.
4. SELECT Finale
Obiettivo: Presentare i dati aggregati – categoria, visitatori unici, acquisti totali e tasso di conversione.
Processo:
- Seleziona direttamente i campi dalla CTE
conversion_rate
. - Può anche calcolare nuovamente il tasso di conversione, ma questo passaggio è ridondante dato che è già stato calcolato nella CTE
conversion_rate
. Idealmente, dovresti semplicemente selezionare i campi senza ricalcolare il tasso di conversione.
Esempio pratico:
La tabella finale mostrerà righe come ‘Lavatrici’, 150 visitatori unici, 40 acquisti, 26.67% tasso di conversione. Ogni riga fornisce una panoramica chiara dell’efficacia di ciascuna categoria di prodotto nel convertire i visitatori in acquirenti.
Analisi della stagionalità per categoria
Analizzare la stagionalità nelle categorie di prodotto può offrire intuizioni preziose sul comportamento di acquisto dei clienti e aiutarti a ottimizzare le strategie di inventario, marketing e vendite in base ai periodi di picco e di calma. Ecco come puoi approfondire questo insight utilizzando la base della query esistente.
Questa analisi consente di rispondere, ad esempio, a queste domande:
- Quali categorie di prodotti mostrano i tassi di conversione più alti in determinati periodi dell’anno? Questo può indicare stagionalità o tendenze di mercato che influenzano le decisioni di acquisto.
- Ci sono categorie di prodotti che mostrano un declino costante nel tasso di conversione nel tempo? Identificare potenziali problemi o cambiamenti nel comportamento dei consumatori che potrebbero necessitare di azioni correttive.
1. Estendere la Query per Analizzare la Stagionalità
Per questa analisi, è necessario modificare la query per analizzare le visualizzazioni di prodotti e gli acquisti nel tempo, per esempio, suddividendo i dati per mese o per settimana.
Modifica della Query: Aggiungi una colonna temporale (ad esempio, YEAR_MONTH
) alle CTE product_views
e product_purchases
per raggruppare le visualizzazioni e gli acquisti non solo per categoria, ma anche per periodo. Applica poi la stessa logica alla CTE product_purchases
.
WITH product_views AS (
SELECT
FORMAT_DATE('%Y%m', PARSE_DATE('%Y%m%d', event_date)) AS year_month,
(SELECT value.string_value FROM UNNEST(items.item_params) WHERE key = 'item_category_4') AS category,
COUNT(DISTINCT user_pseudo_id) AS unique_visitors
FROM
`your_project.your_dataset.events_*`,
UNNEST(items) AS items
WHERE
event_name = 'view_item'
AND
_TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 1 YEAR)) AND FORMAT_DATE('%Y%m%d', CURRENT_DATE())
GROUP BY
year_month, category
),
product_purchases AS (
SELECT
FORMAT_DATE('%Y%m', PARSE_DATE('%Y%m%d', event_date)) AS year_month,
(SELECT value.string_value FROM UNNEST(items.item_params) WHERE key = 'item_category_4') AS category,
COUNT(DISTINCT user_pseudo_id) AS total_purchases
FROM
`your_project.your_dataset.events_*`,
UNNEST(items) AS items
WHERE
event_name = 'purchase'
AND
_TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 1 YEAR)) AND FORMAT_DATE('%Y%m%d', CURRENT_DATE())
-- AND (SELECT value.string_value FROM UNNEST(items.item_params) WHERE key = 'item_category_4') IS NOT NULL
GROUP BY
year_month, category
),
conversion_rate AS (
SELECT
pv.year_month,
pv.category,
pv.unique_visitors,
pp.total_purchases,
ROUND(SAFE_DIVIDE(pp.total_purchases, pv.unique_visitors) * 100, 2) AS conversion_rate
FROM
product_views pv
LEFT JOIN
product_purchases pp
ON pv.category = pp.category AND pv.year_month = pp.year_month
)
SELECT
year_month,
category,
unique_visitors,
total_purchases,
ROUND(SAFE_DIVIDE(total_purchases, unique_visitors) * 100, 2) AS conversion_rate
FROM
conversion_rate
WHERE
category IS NOT NULL
ORDER BY
category,year_month
2. Analizzare i Pattern Temporali
Obiettivo: Identificare i mesi o le settimane in cui ogni categoria ha il maggior numero di visualizzazioni e acquisti.
Processo:
- Esegui la query modificata per ottenere i dati di visualizzazioni e acquisti suddivisi per mese e categoria.
- Confronta i volumi di visualizzazioni e acquisti tra i diversi mesi per ogni categoria.
Esempio pratico: Potresti scoprire che la categoria “Lavatrici” ha significativi picchi di visualizzazioni e acquisti in marzo e aprile (forse a causa della primavera e del desiderio di pulizie di stagione) e in novembre (in concomitanza con eventi come il Black Friday).
3. Interpretazione dei Dati
Obiettivo: Comprendere la stagionalità delle diverse categorie di prodotti.
Processo:
- Utilizza i dati mensili per identificare tendenze e pattern stagionali.
- Confronta l’andamento delle diverse categorie per individuare quelle con maggiore variazione stagionale.
Esempio pratico: Se “Lavatrici” mostra picchi in specifici mesi, mentre “Grandi Elettrodomestici” ha vendite più uniformi durante l’anno, puoi dedurre che “Lavatrici” è una categoria ad alta stagionalità.
Vediamo un esempio di report ottenuto da questa query in cui viene mostrato come le “asciugatrici hanno un picco tra novembre e dicembre:
In conclusione, tutti gli insights analizzati ti permettono di comprendere meglio dove concentrare i tuoi sforzi di marketing e come ottimizzare il tuo catalogo per massimizzare le vendite.
Data Scientist
Sono un Data Scientist con esperienza nell’applicazione di tecniche avanzate di Machine Learning per l’analisi di complessi set di dati nel campo del marketing digitale. Specializzato nell’uso di Python, sviluppo modelli predittivi e di analisi dei dati che permettono di identificare e risolvere criticità nei progetti.