Go to main content
A/B testing for product - official lesson image on GinnyTech, created by AD

A/B testing for product

How to design, read, and govern product experiments without falling into false positives.

AD
Created byAndrii Dyshkantiuk
Lesson 38 / 236Level: AdvancedDuration: 24 minPrerequisites: 1

What you will learn

  • Understand the analytical problem and the decision-making context
  • Apply examples, metrics, and controls to real cases

A/B testing for product

Cambiare un elemento chiave del prodotto, per esempio l’onboarding, senza sapere se migliorerà davvero attivazione o retention è un rischio. L’A/B testing per prodotto nasce per trasformare queste scelte in esperimenti strutturati, con ipotesi chiare, metriche precise e criteri di decisione fissati prima del lancio.

Real-world problem

Nel product analytics il problema è distinguere dove il prodotto genera valore reale da dove produce solo attività apparente. Senza un processo rigoroso finisci per decidere su segnali fuorvianti o su intuizioni non verificate. L’obiettivo è migliorare una scelta concreta con dati, assunzioni esplicite e controlli minimi.

Conceptual model

Per affrontare un A/B test basta un modello semplice ma efficace.

PhaseWhat to clarifyOutput
QuestionWhich real choice needs improvement?Decision to make
MeasureWhich observable signal represents the problem?Metric or source data
ControlWhich baseline makes the result interpretable?Credible comparison
ActionWhat changes after the analysis?Next operational step

Lo schema tiene il focus su decisione, dato, controllo e azione, e ti evita derive teoriche o analisi senza impatto.

Rigorous formalization

Per rendere un A/B test analizzabile e riproducibile devi definire alcuni elementi.

ElementRequested specification
Unit of analysisuser, cohort, product event, feature, or journey
Primary signalactivation, retention, frequenza, conversione, churn, valore per coorte
BaselinePrevious period, comparable group, benchmark, or counterfactual scenario
Decisionproduct diagnosis, experiment, prioritization, or UX intervention
Riskconfondere un dato disponibile con una prova sufficiente

Solo così un altro analista può replicare la logica, criticare le assunzioni e arrivare alla stessa decisione.

Example or case study

Immagina un nuovo onboarding che aumenta il completamento del primo step ma riduce la creazione del primo progetto. Senza guardrail e metriche downstream rischi di lanciare una modifica che sembra positiva ma intacca il valore reale.

Observed evidenceCautious interpretationRecommended action
The number improvesPotrebbe essere effetto reale o rumoreCercare confronto e segmentazione
One segment changes more than othersLa media nasconde differenze importantiSeparate cohorts or use cases
Cost grows along with the resultValutare l’impatto sul margineEstimate trade-offs and sustainability

Anatomy of a good experiment

Un esperimento efficace tiene insieme almeno sei elementi: un’ipotesi comportamentale chiara, una popolazione target definita, una sola metrica primaria, le guardrail metrics che evitano le vittorie tossiche, durata e sample size calcolati a priori e una regola di decisione fissata prima del lancio.

Un’ipotesi debole suona così: “Testiamo un onboarding nuovo per vedere se funziona meglio”. Una solida invece dice quanto, su chi ed entro quando: “Ridurre il setup da 5 a 2 step aumenterà la percentuale di utenti che completa il primo progetto entro 24 ore dal 34% al 40%, senza far crescere i ticket di supporto o il churn a 7 giorni”.

Primary and guardrail metrics

La metrica primaria è quella su cui poggia la decisione e deve restare una sola. Le guardrail metrics proteggono dagli effetti collaterali indesiderati. Una notifica aggressiva, per esempio, può alzare gli utenti attivi giornalieri e insieme le disinstallazioni. Senza guardrail rischi di lanciare una feature che erode la fiducia.

Questa query serve a monitorare il test:

SELECT variant, COUNT(DISTINCT user_id) AS users, COUNT(DISTINCT CASE WHEN completed_project THEN user_id END) AS activated, ROUND(COUNT(DISTINCT CASE WHEN completed_project THEN user_id END) * 100.0 / COUNT(DISTINCT user_id), 2) AS activation_rate, ROUND(AVG(support_tickets), 2) AS avg_support_tickets, ROUND(AVG(churned_d7::int) * 100, 2) AS churn_d7 FROM experiment_results WHERE experiment_id = ‘onboarding_simplified_v1’ GROUP BY variant;

La regola di decisione può essere questa: lanciare la variante B solo se l’activation cresce almeno del 5% relativo e il churn a 7 giorni non peggiora oltre 1 punto percentuale.

Sample size and duration

Un errore comune è fermare il test appena compare p < 0.05, soprattutto se guardi il risultato di continuo. Questo gonfia il rischio di falso positivo. Devi stimare a priori il campione necessario e la durata, che deve coprire cicli settimanali interi per non confondere l’effetto con le variazioni giornaliere.

Questo è il calcolo del campione:

from statsmodels.stats.power import NormalIndPower from statsmodels.stats.proportion import proportion_effectsize

baseline = 0.34 minimum_detectable_effect = 0.04 # dal 34% al 38% alpha = 0.05 power = 0.80

effect_size = proportion_effectsize(baseline, baseline + minimum_detectable_effect) analysis = NormalIndPower() n = analysis.solve_power(effect_size=effect_size, power=power, alpha=alpha, ratio=1) print(round(n)) # utenti per variante

Segments: the average lies

La media può nascondere differenze che contano. Una variante può risultare neutra in media ma ottima per i nuovi utenti e pessima per i power user. L’analisi post-test deve includere segmenti decisi in anticipo, come canale, device, utente nuovo o esistente, piano free o paid, paese e intensità d’uso.

Questa query estrae i segmenti:

SELECT variant, user_segment, COUNT(*) AS users, ROUND(AVG(converted::int) * 100, 2) AS conversion_rate FROM experiment_results GROUP BY variant, user_segment ORDER BY user_segment, variant;

Attenzione però: più segmenti analizzi, più cresce il rischio di trovare pattern casuali. Segmenta seguendo un’ipotesi, non andando a caccia.

Real case: Microsoft Bing

Ron Kohavi racconta un esperimento su Bing in cui una piccola modifica nel modo di mostrare i titoli degli annunci portò a un aumento sorprendente delle revenue. La lezione non è che le piccole modifiche generano grandi impatti, ma che nemmeno i team esperti riescono a prevedere con certezza l’effetto di una modifica. Per questo serve sperimentazione controllata.

Organizzazioni mature come Microsoft, Booking, Netflix e Airbnb usano piattaforme di experimentation per disciplinare l’incertezza, non per confermare opinioni già formate.

Anti-pattern

Gli errori più frequenti si assomigliano. C’è chi ferma il test quando il risultato conviene e chi cambia la metrica primaria dopo il lancio. C’è chi testa troppe cose insieme senza un disegno fattoriale e chi ignora l’effetto novità. C’è chi lancia una variante che migliora la conversione ma peggiora la fiducia. E c’è chi legge un “non significativo” come se fosse la prova che non esiste alcun effetto.

Lab / exercise

Basic level

Scrivi una scheda sintetica per un A/B test con decisione da supportare, metrica primaria, baseline, rischio principale e azione se il segnale viene confermato.

Intermediate level

Costruisci una tabella con tre segmenti, periodi o scenari. Per ciascuno indica cosa cambia, una spiegazione alternativa plausibile e un controllo da fare prima di raccomandare un’azione.

Research-grade level

Prepara un decision memo con ipotesi, dati richiesti, criteri di esclusione, controlli di qualità, soglia decisionale, rischio residuo e piano di monitoraggio dopo la decisione.

Recommended datasets and materials

Usa eventi prodotto, funnel, sessioni, survey, CRM, ticket di supporto e dati di esperimenti. Se non hai dati reali, crea un dataset sintetico con almeno 200 righe, una dimensione temporale, una di segmento e una metrica di outcome.

Typical mistake to avoid

L’errore è usare l’A/B testing come etichetta anziché come processo. Capita quando mostri grafici senza una decisione, metriche senza baseline o conclusioni senza dire quali assunzioni potrebbero invalidarle.

La domanda di controllo è: se questo risultato fosse instabile, quale scelta sbaglierei? Quando non c’è una risposta concreta, manca il collegamento tra analisi e azione.

Quiz or checkpoint

  1. Which concrete decision should this lesson improve?
  2. Which unit of analysis makes the problem measurable?
  3. Which baseline would you use to avoid a naive reading?
  4. Which typical mistake could change the conclusion?
  5. Which output would you deliver to a non-technical stakeholder?

Operational Summary

L’A/B testing per prodotto è utile solo se produce una decisione più chiara, non un vocabolario nuovo. Serve un percorso che colleghi problema, modello, formalizzazione, esempio, lab e checkpoint, così la lezione diventa pratica verificabile.

Practice deep dive

Tratta l’A/B testing come una piccola prova di lavoro dentro una product review, dove activation, retention e valore utente non raccontano la stessa storia. Devi produrre una diagnosi del journey con metrica primaria, guardrail e prossimo esperimento, tenendo separati contesto, misura, azione e limite.

Operational example

Parti da una domanda semplice: quale scelta migliorerei applicando bene questa lezione? Collega un problema reale a un output osservabile. Può essere una tabella con baseline e segmenti, una query, un disegno di esperimento o un memo breve. La qualità sta nella tracciabilità del ragionamento.

Work checkpoint

Scrivi la decisione da migliorare con un verbo operativo, come allocare, fermare, correggere, lanciare, misurare, priorizzare o investigare. Definisci il segnale principale e almeno un guardrail, aggiungi una baseline ed esplicita il rischio più probabile. Chiudi con un output consegnabile: una dashboard, una query, uno schema, un memo, un esperimento, un notebook o una checklist.

Mastery summary

Hai assimilato l’A/B testing per prodotto quando sai spiegare il concetto senza gergo, applicarlo a un caso realistico e difendere una raccomandazione includendone limiti e prossimi controlli. Se ti manca uno di questi, torna al modello concettuale e riduci l’ambizione dell’esempio.