I tuoi clienti tendono a fare più acquisti solo nei periodi di promozione o… sono sempre fedeli?

Altro insight prezioso per l’e-commerce è rappresentato dall’Analisi Avanzata della Frequenza di Acquisto. Questo insight aiuta a capire se i tuoi clienti tornano spesso per effettuare nuovi acquisti sul tuo e-commerce, oppure sono solo procacciatori di affari nei giorni di promozioni o eventi. Analizzeremo 2 metriche frequency_per_day e frequency_per_active_day utili per avere indicazioni sulla fedeltà del cliente e sull’efficacia delle tue strategie di retention.

Obiettivo dell’analisi

L’obiettivo di questa analisi è determinare la frequenza media di acquisto dei clienti in un determinato periodo, per identificare pattern di ritorno e valutare l’efficacia delle iniziative di fidelizzazione.

Essa offre insight critici riguardanti quanto spesso i clienti effettuano acquisti:

  • Valutazione della Fedeltà del Cliente: Una frequenza di acquisto elevata può indicare un alto livello di fedeltà del cliente e una soddisfazione generale con il tuo e-commerce.
  • Miglioramento delle Strategie di Retention: Identificare i clienti con bassa frequenza di acquisto può aiutare a sviluppare strategie mirate per aumentare la retention, come email di riacquisto o offerte speciali.
  • Personalizzazione delle Offerte: Utilizza i dati sulla frequenza di acquisto per personalizzare le comunicazioni e le offerte per diversi segmenti di clienti, ottimizzando così le tue campagne di marketing.

Query per l’Analisi della Frequenza di Acquisto

WITH customer_activity AS (
  SELECT
    user_pseudo_id,
    COUNT(DISTINCT PARSE_DATE('%Y%m%d', event_date)) AS total_purchase_days,
    DATE_DIFF(MAX(PARSE_DATE('%Y%m%d', event_date)), MIN(PARSE_DATE('%Y%m%d', event_date)), DAY) AS days_active,
    COUNT(*) AS total_purchases
  FROM
    `your_project.your_dataset.events_*`
  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
    user_pseudo_id
),

purchase_frequency AS (
  SELECT
    user_pseudo_id,
    total_purchase_days,
    days_active,
    total_purchases,
    IF(days_active > 0, ROUND(total_purchases / days_active, 2), 0) AS frequency_per_day,
    IF(total_purchase_days > 0, ROUND(total_purchases / total_purchase_days, 2), 0) AS frequency_per_active_day
  FROM
    customer_activity
)

SELECT
  ROUND(AVG(frequency_per_day),2) AS avg_frequency_per_day,
  ROUND(AVG(frequency_per_active_day),2) AS avg_frequency_per_active_day
FROM
  purchase_frequency

PS. Ricorda di sostituire your_projectyour_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.

La query genererà il seguente report:

Esaminiamo più in dettaglio la differenza tra frequency_per_day e frequency_per_active_day nella nostra analisi della frequenza di acquisto:

frequency_per_day

  • Definizione: Questo valore rappresenta la media di acquisti per giorno calcolata su tutto il periodo di attività del cliente, dal suo primo all’ultimo acquisto.
  • Calcolo: Si ottiene dividendo il numero totale di acquisti (total_purchases) per il numero totale di giorni tra il primo e l’ultimo acquisto (days_active).
  • Interpretazione: Indica quanto spesso, in media, un cliente fa un acquisto, considerando tutti i giorni dal suo primo al suo ultimo acquisto. Questo include tutti i giorni nel periodo, indipendentemente dal fatto che il cliente abbia effettivamente fatto acquisti in quei giorni o meno. Se un cliente ha fatto acquisti solo in alcuni giorni specifici ma il lasso di tempo dall’inizio alla fine è ampio, questo abbasserà la frequency_per_day poiché stiamo diluendo il numero totale di acquisti su un periodo più esteso.

frequency_per_active_day

  • Definizione: Questo valore rappresenta la media di acquisti per giorno, ma solo nei giorni in cui il cliente ha effettivamente effettuato un acquisto.
  • Calcolo: Si ottiene dividendo il numero totale di acquisti (total_purchases) per il numero di giorni in cui il cliente ha effettivamente effettuato almeno un acquisto (total_purchase_days).
  • Interpretazione: Mostra quanto spesso, in media, un cliente fa acquisti nei giorni in cui è attivamente impegnato a comprare. Questa metrica fornisce un’idea di quanto sia intensa l’attività del cliente nei giorni in cui sceglie di fare acquisti, ignorando i giorni in cui non è attivo.

Esempio per Distinguere le Due Metriche

Immagina un cliente che ha fatto acquisti in tre giorni distinti nel corso di un anno (365 giorni):

  • Ha effettuato un totale di 9 acquisti.
  • I giorni in cui ha effettuato gli acquisti sono stati distribuiti durante l’anno.

Per frequency_per_day:

  • Calcoliamo 9 acquisti diviso 365 giorni = 0.025 acquisti al giorno.
    Questo numero è relativamente basso perché considera tutti i giorni dell’anno, anche quelli in cui il cliente non ha fatto acquisti.

Per frequency_per_active_day:

  • Calcoliamo 9 acquisti diviso 3 giorni (i giorni in cui ha effettuato acquisti) = 3 acquisti per giorno attivo.
    Questo numero è più alto perché consideriamo solo i giorni in cui il cliente è stato attivamente impegnato in acquisti.

In sintesi, frequency_per_day dà un senso della frequenza di acquisto diluita su tutto il periodo considerato, mentre frequency_per_active_day fornisce una misura della frequenza di acquisto nei giorni in cui il cliente è effettivamente attivo. Quest’ultima può essere particolarmente utile per capire l’intensità di acquisto quando un cliente decide di interagire con il tuo e-commerce.

Esaminiamo nel dettaglio la spiegazione della query per l’analisi della frequenza di acquisto, inclusa un’esemplificazione pratica.

Spiegazione della Query

La query è divisa in diverse sezioni per calcolare come i clienti interagiscono col tempo con il tuo e-commerce in termini di acquisti:

customer_activity CTE (Common Table Expression):

  • Obiettivo: Raccogliere informazioni sulle attività di acquisto di ciascun cliente.
  • Calcoli:
    • total_purchase_days: Conta il numero di giorni unici in cui ogni cliente ha effettuato almeno un acquisto. Questo è indicativo della frequenza con cui il cliente ritorna per fare acquisti.
    • days_active: Calcola la differenza in giorni tra il primo e l’ultimo acquisto di ogni cliente, fornendo una misura della durata dell’attività del cliente.
    • total_purchases: Conteggia il numero totale di acquisti fatti da ciascun cliente.
  • Nuovo esempio: Se un cliente ha effettuato acquisti il 1° gennaio, il 15 gennaio e il 1° marzo, avrà total_purchase_days = 3, days_active = 59 (assumendo che l’ultimo acquisto sia il 1° marzo e il primo il 1° gennaio), e total_purchases uguale al numero di acquisti fatti in quei giorni.

purchase_frequency CTE

  • Obiettivo: Calcolare la frequenza di acquisto per ciascun cliente.
  • Calcoli:
    • frequency_per_day: Stabilisce la media di acquisti al giorno nel periodo compreso tra il primo e l’ultimo acquisto. È una misura di quanto spesso, in media, un cliente effettua un acquisto.
    • frequency_per_active_day: Calcola il numero medio di acquisti per giorno in cui è stato effettuato almeno un acquisto, che indica quanto spesso il cliente acquista quando è attivo.
  • Nuovo Esempio: Utilizzando i dati dell’esempio precedente, se il cliente ha effettuato 6 acquisti in totale, la frequency_per_day sarebbe 6 / 59 = 0.10 (arrotondato) acquisti al giorno su tutti i giorni attivi, mentre la frequency_per_active_day sarebbe 6 / 3 = 2 acquisti per giorno di attività effettiva.

Selezione Finale

  • Obiettivo: Fornire una visione complessiva della frequenza di acquisto media tra tutti i clienti.
  • Calcoli:
    • avg_frequency_per_day: La media di frequency_per_day per tutti i clienti.
    • avg_frequency_per_active_day: La media di frequency_per_active_day per tutti i clienti.
  • Esempio: Se tutti i tuoi clienti hanno simili pattern di acquisto, otterrai la media di questi valori. Per esempio, se tutti i clienti acquistano 0.10 volte al giorno e 2 volte nei giorni in cui sono effettivamente attivi, questi saranno i valori medi.

Analisi della frequenza di acquisto suddivisa per mese

Per trasformare la tua query in un’analisi della frequenza di acquisto suddivisa per mese, dobbiamo prima aggiungere una componente che ci permetta di identificare in quale mese ogni acquisto è stato fatto. Questo può essere realizzato estraendo l’anno e il mese dalla event_date e poi aggregando i dati su questa base.

Vediamo come modificare la tua query:

WITH monthly_customer_activity AS (
  SELECT
    user_pseudo_id,
    FORMAT_DATE('%Y%m', PARSE_DATE('%Y%m%d', event_date)) AS year_month,
    COUNT(DISTINCT event_date) AS total_purchase_days,
    COUNT(*) AS total_purchases
  FROM
    `your_project.your_dataset.events_*`
  WHERE
    event_name = 'purchase'
    AND _TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 4 MONTH)) AND FORMAT_DATE('%Y%m%d', CURRENT_DATE())
  GROUP BY
    user_pseudo_id, year_month
),

monthly_purchase_frequency AS (
  SELECT
    year_month,
    ROUND(AVG(total_purchase_days),2) AS avg_total_purchase_days,
    ROUND(AVG(total_purchases),2) AS avg_total_purchases,
    ROUND(AVG(total_purchases) / AVG(total_purchase_days), 2) AS avg_frequency_per_active_day
  FROM
    monthly_customer_activity
  GROUP BY
    year_month
)

SELECT
  year_month,
  avg_total_purchase_days,
  avg_total_purchases,
  avg_frequency_per_active_day
FROM
  monthly_purchase_frequency
ORDER BY
  year_month DESC

Spiegazione della Query:

monthly_customer_activity CTE:

  • Aggiunge year_month, estratto dall’event_date, per raggruppare le attività di acquisto non solo per user_pseudo_id ma anche per mese.
  • Mantiene il conteggio dei giorni distinti di acquisto (total_purchase_days) e il totale degli acquisti (total_purchases) per ogni cliente, suddivisi per mese.

monthly_purchase_frequency CTE:

  • Calcola la media dei giorni di acquisto (avg_total_purchase_days) e la media totale degli acquisti (avg_total_purchases) per mese.
  • Determina la frequenza media di acquisto per giorno attivo (avg_frequency_per_active_day) per mese, che è la media degli acquisti divisa per la media dei giorni di acquisto effettivi per quel mese.

Selezione Finale:

  • Estrae la media dei giorni di acquisto, la media totale degli acquisti, e la frequenza media di acquisto per giorno attivo, per ogni mese, ordinati dal più recente al meno recente.

Ecco un esempio pratico basato sulla struttura modificata della query per l’analisi della frequenza di acquisto mensile:

Esempio di Analisi

Immaginiamo di eseguire la query per i mesi di Gennaio e Febbraio 2024, e otteniamo i seguenti risultati:

year_monthavg_total_purchase_daysavg_total_purchasesavg_frequency_per_active_day
2024022.552.00
202401362.00
Analisi mensile frequenza di acquisto

Interpretazione del report

Gennaio 2024 (202401):

  • avg_total_purchase_days: In media, i clienti hanno effettuato acquisti in 3 giorni distinti nel mese di Gennaio.
  • avg_total_purchases: Il numero medio di acquisti per cliente in Gennaio è stato 6.
  • avg_frequency_per_active_day: In media, ogni cliente ha effettuato 2 acquisti per ogni giorno in cui ha fatto shopping (6 acquisti divisi per 3 giorni).

Febbraio 2024 (202402):

  • avg_total_purchase_days: In media, i clienti hanno effettuato acquisti in 2.5 giorni distinti nel mese di Febbraio, indicando che alcuni clienti potrebbero aver fatto acquisti solo in 2 giorni, mentre altri in 3.
  • avg_total_purchases: Il numero medio di acquisti per cliente in Febbraio è stato 5, leggermente inferiore rispetto a Gennaio.
  • avg_frequency_per_active_day: In media, ogni cliente ha effettuato 2 acquisti per ogni giorno in cui ha fatto shopping in Febbraio, il che è consistente con la frequenza di Gennaio.

Utilità dell’Esempio

Questo esempio mostra come l’analisi della frequenza di acquisto mensile può fornire insight preziosi:

  1. Tendenze di Acquisto: Notiamo che la frequenza di acquisto per giorno attivo è rimasta costante tra Gennaio e Febbraio, suggerendo che, nonostante le variazioni nel numero totale di acquisti o nei giorni di acquisto, la propensione all’acquisto nei giorni attivi è stabile.
  2. Strategie di Marketing: Se notiamo che i giorni medi di acquisto sono diminuiti, potremmo voler indagare il motivo e considerare strategie per incoraggiare più giorni di shopping attivo, come offerte speciali distribuite durante il mese.
  3. Pianificazione delle Scorte: La conoscenza del numero medio di acquisti può aiutare a prevedere la domanda e a gestire meglio l’inventario in base alle tendenze mensili.

Utilità dell’analisi mensile

L’ analisi mensile ti permette di vedere come cambiano nel tempo la frequenza e il volume degli acquisti, offrendo una visione chiara delle tendenze di acquisto nel tuo e-commerce. Puoi identificare i periodi dell’anno in cui i clienti sono più attivi, valutare l’efficacia delle campagne promozionali mensili e adeguare le strategie di stock e marketing in base ai pattern stagionali di acquisto.

Conclusione

Questa analisi fornisce insight preziosi sulla frequenza e sulla regolarità con cui i clienti ritornano per fare nuovi acquisti. Ad esempio, una bassa frequency_per_day ma alta frequency_per_active_day potrebbe indicare che i clienti tendono a fare più acquisti in pochi giorni selezionati, suggerendo che le promozioni o gli eventi speciali potrebbero essere molto efficaci. Al contrario, valori elevati in entrambi i parametri potrebbero indicare una forte fedeltà dei clienti e un’interazione costante con il tuo e-commerce.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

error: Questo contenuto è protetto!