Go to main content
Marketing attribution models - official lesson image on GinnyTech, created by AD

Marketing attribution models

Comparison of attribution models: last-click, multi-touch, data-driven, and Shapley values.

AD
Created byAndrii Dyshkantiuk
Lesson 44 / 236Level: AdvancedDuration: 22 minPrerequisites: 1

What you will learn

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

Marketing attribution models

L’attribuzione marketing non è una formula magica, è una disciplina che distribuisce in modo trasparente il credito tra i canali che contribuiscono a una conversione. Il last click premia solo chi chiude la vendita, il first click riconosce chi ha fatto scoprire il prodotto, e intanto il team brand resta spesso invisibile perché ha creato domanda prima ancora che il tracciamento la registrasse. Il punto non è trovare il modello perfetto, ma capire cosa stai premiando e quali decisioni puoi prendere con quell’informazione.

Real-world problem

Il problema concreto è trasformare i dati su budget, canali, creatività e audience in decisioni misurabili, senza confondere volume, attribuzione e incrementalità. La domanda è una sola: quale decisione migliora grazie a questo modello di attribuzione? Senza una risposta chiara, l’analisi resta decorativa e non diventa competenza.

Conceptual model

Per usare bene un modello di attribuzione conviene seguire una sequenza precisa. Parti dalla domanda di business e chiediti quale decisione deve cambiare. Traducila in un’ipotesi misurabile, individuando il segnale che rappresenta il fenomeno. Verifica poi che i dati siano abbastanza validi e completi. A quel punto chiediti se il segnale riduce davvero l’incertezza decisionale, e infine decidi quali azioni concrete prendere sul budget.

flowchart LR
    A[Domanda di business]
    B[Ipotesi misurabile]
    C[Dato affidabile]
    D[Analisi incrementale]
    E[Decisione di budget]
    A --> B
    B --> C
    C --> D
    D --> E
StepGuiding questionExpected output
FramingWhich decision needs to change?Scelta concreta
MeasureWhich signal represents the phenomenon?Metrica e granularità
ComparisonCompared to which baseline do I interpret the result?Benchmark o gruppo di controllo
ActionWhat do I do if the signal exceeds the threshold?Decisione e controllo

Rigorous formalization

Un modello di attribuzione è una relazione tra quattro elementi.

ElementOperational Definition
Unit of analysiscampaign, cohort, touchpoint, or customer segment
Signalincremental margin, CAC payback, corrected conversion rate, lift, or generated retention
Baselineprevious period, holdout group, comparable market, or historical benchmark
Decisionshift resources, change message, stop a tactic, or scale an experiment

La regola pratica è che una metrica serve a qualcosa solo se riduce l’incertezza su una decisione precisa. Altrimenti è solo documentazione, o un rischio.

I modelli classici di attribuzione

ModelHow it attributesStrengthsWeaknesses
Last-click100% to the last touchpointSimple, verifiableIgnora il percorso di awareness
First-click100% to the first touchpointRecognizes discoveryIgnora nurturing e conversione finale
LinearEqually divided among all touchpointsFair, simpleDoes not distinguish more influential touchpoints
Time DecayMore weight to recent touchpointsRealistico per acquisti impulsiviArbitrary decay rate
Position-based (U-shaped)40% primo, 40% ultimo, 20% tra gli altriBalances discovery and conversionArbitrario nello split

Data-driven Attribution and Shapley Values

L’approccio moderno usa i valori di Shapley, presi dalla teoria dei giochi cooperativi. Calcola il contributo marginale di ogni canale in tutte le combinazioni possibili e assegna il credito in proporzione all’aumento della probabilità di conversione.

-- Conversion rate per combinazione di canali
SELECT STRING_AGG(channel, '+' ORDER BY channel) AS channel_combo,
       COUNT(*) AS users,
       SUM(converted) AS conversions,
       ROUND(SUM(converted)*100.0/COUNT(*),1) AS conversion_rate
FROM user_journeys GROUP BY user_id;

Caso reale: Booking.com

Passando dal last-click allo Shapley, Booking.com ha ridistribuito il 18% del budget tra i canali e ha aumentato il ROAS del 7%. I canali top of funnel come display e video, prima ignorati, si sono rivelati essenziali per generare domanda.

Approfondimento operativo: il modello come sistema

Un modello di attribuzione non vive isolato. Fa parte di un sistema che comprende decisioni, dati, vincoli tecnici e incentivi organizzativi. Il rischio è imparare le formule senza capire il problema che risolvono, e la prima domanda da porsi resta quale decisione cambierà grazie a questa analisi.

Un buon flusso di lavoro definisce il problema in linguaggio business, individua l’unità di analisi corretta, verifica la qualità e la pertinenza dei dati, costruisce una metrica interpretabile, segmenta per evitare medie fuorvianti e infine trasforma il risultato in una raccomandazione verificabile.

Example or case study

Questa query crea una base analitica con metrica, segmento e finestra temporale, così puoi confrontare periodi e gruppi senza riscrivere ogni volta la logica.

WITH base_events AS (
  SELECT
    user_id,
    account_id,
    event_type,
    event_time,
    DATE_TRUNC('week', event_time) AS week,
    source,
    device_type
  FROM events
  WHERE event_time >= CURRENT_DATE - INTERVAL '180 days'
    AND user_id IS NOT NULL
),
weekly_user_metrics AS (
  SELECT
    week,
    user_id,
    COALESCE(source, 'unknown') AS source,
    COALESCE(device_type, 'unknown') AS device_type,
    COUNT(*) AS total_events,
    COUNT(DISTINCT DATE(event_time)) AS active_days,
    COUNT(DISTINCT event_type) AS event_diversity,
    MAX(CASE WHEN event_type IN ('purchase', 'subscribe', 'activation') THEN 1 ELSE 0 END) AS reached_key_outcome
  FROM base_events
  GROUP BY week, user_id, source, device_type
)
SELECT
  week,
  source,
  device_type,
  COUNT(DISTINCT user_id) AS users,
  ROUND(AVG(active_days), 2) AS avg_active_days,
  ROUND(AVG(event_diversity), 2) AS avg_event_diversity,
  ROUND(AVG(reached_key_outcome) * 100, 2) AS key_outcome_rate
FROM weekly_user_metrics
GROUP BY week, source, device_type
ORDER BY week, source, device_type;

Da questa base puoi osservare trend, segmenti e variazioni nel tempo, e formulare ipotesi più precise.

Python example: checking stability and anomalies

Una metrica utile deve essere stabile e sensibile insieme. Questo script individua le variazioni anomale settimana su settimana.

import pandas as pd

# df contiene: week, segment, users, key_outcome_rate (in percentuale)

df = df.sort_values(['segment', 'week']).copy()
df['previous_rate'] = df.groupby('segment')['key_outcome_rate'].shift(1)
df['wow_change_pp'] = df['key_outcome_rate'] - df['previous_rate']
df['rolling_mean'] = df.groupby('segment')['key_outcome_rate'].transform(
    lambda s: s.rolling(4, min_periods=2).mean()
)
df['rolling_std'] = df.groupby('segment')['key_outcome_rate'].transform(
    lambda s: s.rolling(4, min_periods=2).std()
)
df['z_score'] = (df['key_outcome_rate'] - df['rolling_mean']) / df['rolling_std']

anomalies = df[df['z_score'].abs() >= 2].sort_values('z_score')
print(anomalies[['week', 'segment', 'key_outcome_rate', 'wow_change_pp', 'z_score']])

Così eviti di reagire a oscillazioni casuali e ti concentri sulle variazioni che contano davvero.

Real case: Netflix and the discipline of metrics

Netflix costruisce le decisioni di prodotto su segnali comportamentali osservabili, come il completamento degli episodi o il tempo di ricerca. Non misura solo il click immediato, ma anche la qualità e la soddisfazione implicita. In questo modo evita di ottimizzare metriche vane che a lungo termine erodono il valore. Lo stesso vale per l’attribuzione marketing: senza un outcome chiaro, l’analisi resta incompleta.

Errori tipici da evitare

Il primo errore è aggregare i dati troppo presto, perché così nascondi pattern opposti che si annullano nella media. Il secondo è non controllare la qualità dei dati, lasciando passare duplicati, tracking incompleto e timezone incoerenti. Il terzo è confondere correlazione e causalità. Per ridurre questi rischi, ogni analisi deve avere una definizione esplicita della metrica, un confronto per segmento e una verifica contro baseline o gruppo di controllo.

Lab / exercise

Basic level

Scrivi in cinque righe una decisione reale collegata ai modelli di attribuzione: obiettivo, metrica primaria, baseline, rischio principale e azione prevista.

Intermediate level

Costruisci una tabella con almeno tre segmenti o scenari, indicando per ciascuno il segnale, una possibile spiegazione alternativa e il controllo necessario.

Research-grade level

Design a validation plan: hypothesis, required data, exclusion criteria, decision threshold, and post-decision control. Specify what would make you change your mind.

Recommended datasets and materials

Usa dati reali o sintetici con almeno 200-500 righe, includendo una colonna temporale, una di segmento, una metrica di outcome e una variabile di esposizione.

Typical mistake to avoid

L’errore più comune è trattare il risultato come una verità generale invece che come evidenza condizionata. Prima di agire, controlla baseline, assunzioni e costo dell’errore.

Quiz or checkpoint

  1. Quale decisione concreta questa lezione aiuta a migliorare?
  2. Which baseline makes the result interpretable?
  3. Which assumption, if wrong, would change the conclusion?
  4. What minimum check would you use before presenting the recommendation?

I modelli di attribuzione marketing sono uno strumento decisionale che collega problema, dati, metrica, segmentazione e azione. Il valore nasce quando l’analisi finisce con una decisione operativa, un livello di confidenza e un piano per verificare se avevamo ragione. Senza questo, resta solo un esercizio teorico.