Shapley Value nel Marketing: Guida Completa all’Attribuzione Multi-Touch con Esempi, Formula e Python

Cerca:

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
Shapley Value e Attribuzione Multi-Touch

Shapley Value nel Marketing: Cos’è, Come Calcola l’Attribuzione e Differenze con Markov

Due aziende investono entrambe 100.000 € in marketing. Entrambe utilizzano Google Ads, SEO, email marketing, content e demo commerciali.

Alla fine dell’anno, la prima azienda conclude che Google Ads genera il 70% delle vendite e decide di raddoppiarne il budget. La seconda scopre invece che Google Ads chiude le conversioni soltanto perché la SEO e l’email marketing hanno educato il cliente nei tre mesi precedenti: tagliando i canali d’inizio funnel, la pipeline crollerebbe.

Stessi dati. Decisioni strategiche opposte.

Chi ha ragione?

La risposta sta nell’illusione dell’attribuzione deterministica. La maggior parte delle aziende continua a distribuire il proprio budget guidata da regole arbitrarie come il Last Click o il First Click. Si tratta di scorciatoie euristiche che soffrono di un vizio sistematico: puniscono i canali che creano l’interesse iniziale e premiano oltre misura quelli che si limitano a raccogliere la conversione al traguardo. Il risultato è una distorsione del Costo di Acquisizione Cliente (CAC) e del Return on Ad Spend (ROAS), con conseguenti tagli ingiustificati ai touchpoint educativi e sovra-investimenti in quelli di chiusura.

Per uscire da questo vicolo cieco occorre abbandonare le euristiche e adottare il rigore della teoria dei giochi cooperativi: lo Shapley Value. Formulato nel 1953 dal matematico e Premio Nobel Lloyd Shapley, questo modello offre un framework per misurare il reale contributo marginale di ogni singolo canale quando collabora con tutti gli altri, garantendo una ripartizione provabilmente equa del merito e del budget.

Pubblicità

Perché il Last Click Porta a Decisioni di Budget Sbagliate

Assegnare il credito di una conversione è come analizzare un’azione da gol nel calcio. Se guardiamo solo l’ultimo tocco dell’attaccante a porta vuota, ignoriamo il recupero palla del difensore e l’assist del centrocampista.

Nel marketing accade esattamente la stessa cosa. Il modello Last Click scambia la fase di chiusura per l’intero processo di persuasione, portando le aziende a tagliare i budget sui canali di prima acquisizione (SEO, Content) per concentrare le risorse sugli ultimi metri (Ads, Demo). Risultato? Nel breve termine i numeri sembrano reggere, ma nel giro di sei mesi la pipeline si prosciuga perché nessuno alimenta più l’inizio del funnel.

Il confronto diretto su un singolo percorso cliente mostra in modo plastico la differenza di prospettiva tra i diversi approcci:

Percorso di Conversione dell’Utente

SEO ───► Email / Newsletter ───► Demo ───► VENDITA
Modello SEO Email Demo Rischio Strategico per il Business
Last Click 0% 0% 100% Miopia sul fondo funnel: taglia l’acquisizione e prosciuga la pipeline futura.
Lineare 33.3% 33.3% 33.3% Uguaglianza artificiale: tratta una ricerca organica informativa come una demo commerciale da 45 minuti.
Shapley Value 31.25% 25.00% 43.75%

Le 3 Conseguenze del Last Click sulla Gestione del Budget

  • Illuso da Falsi Top Performer: I canali di retargeting e le keyword di brand appaiono sempre come i canali più redditizi semplicemente perché intercettano utenti già decisi ad acquistare.
  • Sottovalutazione dell’Effetto Alone: La SEO e i contenuti educativi non prendono quasi mai il merito diretto della conversione, ma senza di essi l’efficacia di newsletter e demo crolla drammaticamente.
  • Distribuzione Inefficiente del CAC: Il Costo di Acquisizione Cliente viene calcolato in modo distorto, portando a sovra-investire in aste pubblicitarie sature anziché in asset di proprietà a lungo termine.

Le 4 Garanzie Matematiche contro la Distorsione del Budget

Molti modelli di attribuzione falliscono perché non hanno regole d’ingaggio rigorose. Lo Shapley Value non è un’ipotesi arbitraria né una “black box”: è l’unico algoritmo nella teoria dei giochi cooperativi capace di rispettare contemporaneamente quattro garanzie matematiche inviolabili.

Per chi deve difendere le scelte di allocazione del budget davanti a un CFO o al board aziendale, questi quattro assiomi rappresentano la prova che la ripartizione dei ricavi non è frutto di una negoziazione politica, ma di un vincolo logico e matematico.

1. Efficienza (Zero dispersioni e zero ricavi fantasma)

La somma dei crediti attribuiti ai singoli canali deve corrispondere esattamente al [math]100\%[/math] delle conversioni o del valore generato dalla coalizione complessiva. Non si inventano metriche che non esistono e non si perde un singolo euro lungo la strada.

[math]\displaystyle \sum_{i \in N} \phi_i(v) = v(N)[/math]

2. Simmetria (Parità di trattamento tra canali equivalenti)

Se due touchpoint distinti (ad esempio due campagne di retargeting su piattaforme differenti) generano lo stesso identico incremento marginale in qualsiasi scenario di funnel, riceveranno la medesima quota di merito. Il modello elimina ogni favoritismo aprioristico verso uno specifico partner mediatico.

[math]\displaystyle \text{Se } v(S \cup \{i\}) = v(S \cup \{j\}) \quad \forall S \subseteq N \setminus \{i, j\}, \quad \text{allora } \phi_i(v) = \phi_j(v)[/math]

3. Giocatore Nullo (Zero tolleranza per i canali parassita)

Un canale che non apporta alcun valore incrementale a nessuna combinazione di touchpoint riceve un credito pari a zero. Questo assioma individua e neutralizza i canali che si limitano a “intercettare” conversioni già certe senza aver mai spostato la decisione dell’utente.

[math]\displaystyle \text{Se } v(S \cup \{i\}) = v(S) \quad \forall S \subseteq N \setminus \{i\}, \quad \text{allora } \phi_i(v) = 0[/math]

4. Additività (Coerenza cross-campagna e aggregabilità)

Se analizziamo separatamente due micro-obiettivi di business (es. Iscrizione alla Demo e Acquisto Finale), il contributo totale di un canale nel funnel complessivo è esattamente uguale alla somma dei contributi calcolati sui singoli obiettivi. È possibile scomporre le analisi senza che il quadro strategico perda coerenza.

[math]\displaystyle \phi_i(v_1 + v_2) = \phi_i(v_1) + \phi_i(v_2)[/math]


Come preparare i dati per lo Shapley Value: dal Customer Journey alla funzione valore (v(S))

La parte più complessa di un modello di attribuzione basato sullo Shapley Value non è il calcolo matematico.

La formula è elegante e relativamente semplice.

La vera sfida consiste nel costruire correttamente la funzione valore:

[math]v(S)[/math]

cioè il valore generato da ogni possibile combinazione di canali.

In un ambiente reale, i dati non arrivano già sotto forma di coalizioni.

Arrivano da sorgenti diverse:

  • CRM aziendale;
  • piattaforme advertising;
  • Google Analytics;
  • Marketing Automation;
  • strumenti di email nurturing;
  • sistemi di Sales Intelligence;
  • piattaforme SaaS.

Ogni interazione rappresenta un evento nel tempo:

User ID Data Canale Evento
U001 03/01 SEO Visita blog
U001 15/01 Email Apertura newsletter
U001 28/01 Webinar Partecipazione
U001 10/02 Demo Richiesta commerciale
U001 20/02 Sales Contratto

Il primo passaggio è quindi ricostruire il customer journey completo.

Dal Journey alla Coalizione di Canali

Per lo Shapley Value non interessa soltanto la sequenza temporale, ma quali canali hanno partecipato alla conversione.

Il percorso:

SEO → Email → Webinar → Demo

diventa una coalizione:

[math]S = \{ \text{SEO}, \text{Email}, \text{Webinar}, \text{Demo} \}[/math]

A ogni journey viene associato un valore.

Questo valore può essere:

Numero di conversioni

Esempio:

Journey Conversioni
SEO + Email 120
SEO + Demo 90
Email + Demo 80
SEO + Email + Demo 200

oppure:

Revenue generata

Nel SaaS B2B spesso è più corretto utilizzare il valore economico:

Journey ARR generato
SEO + Email 240.000 €
SEO + Demo 180.000 €
Email + Demo 150.000 €
SEO + Email + Demo 500.000 €

Perché dieci conversioni enterprise da 50.000 € non equivalgono a dieci lead gratuiti.

Esempio pratico con pandas

Un dataset iniziale potrebbe avere questa struttura:

import pandas as pd

journeys = pd.DataFrame({
    "user_id": [
        "U001",
        "U002",
        "U003",
        "U004"
    ],
    "channels": [
        ["SEO", "Email", "Demo"],
        ["LinkedIn Ads", "Webinar", "Demo"],
        ["SEO", "Content", "Email", "Demo"],
        ["Google Ads", "Demo"]
    ],
    "conversion": [
        1,
        1,
        1,
        1
    ],
    "revenue": [
        50000,
        30000,
        50000,
        20000
    ]
})

print(journeys)

Output:

user_id channels conversion revenue
U001 SEO, Email, Demo 1 50.000 €
U002 LinkedIn Ads, Webinar, Demo 1 30.000 €
U003 SEO, Content, Email, Demo 1 50.000 €
U004 Google Ads, Demo 1 20.000 €

Costruzione della funzione valore

Da questi dati bisogna generare tutte le coalizioni osservate.

Ad esempio:

from collections import defaultdict

coalitions = defaultdict(float)

for _, row in journeys.iterrows():

    channels = row["channels"]
    value = row["revenue"]

    coalition = frozenset(channels)

    coalitions[coalition] += value

Il risultato diventa:

{
 frozenset({"SEO","Email","Demo"}): 50000,
 frozenset({"LinkedIn Ads","Webinar","Demo"}):30000,
 frozenset({"SEO","Content","Email","Demo"}):50000
}

Questo dizionario rappresenta l’input richiesto dal modello Shapley.

Le decisioni analitiche più importanti prima del calcolo

Prima ancora di applicare l’algoritmo bisogna definire alcune scelte metodologiche.

1. Conversione o fatturato?

Due aziende possono ottenere risultati molto diversi:

  • attribuzione per numero di clienti;
  • attribuzione per revenue;
  • attribuzione per margine;
  • attribuzione per Customer Lifetime Value.
Forse potrebbe interessarti anche:  Python Pickle: Guida alla Serializzazione Avanzata e Scrittura Atomica (Parte I)

Nel SaaS, usare solo il numero di conversioni può essere fuorviante perché un cliente enterprise e un cliente small business hanno valori completamente diversi.

2. Finestra temporale del journey

Bisogna stabilire:

Quanto tempo può passare tra il primo touchpoint e la conversione?

Esempio:

  • 30 giorni per e-commerce;
  • 90-180 giorni per SaaS B2B;
  • 12 mesi per enterprise software.

Una finestra troppo corta elimina i touchpoint iniziali.

Una troppo lunga rischia di attribuire valore a interazioni casuali.

3. Gestione dei dati mancanti

Nei sistemi reali spesso manca una parte del percorso:

  • cookie non riconosciuti;
  • utenti multi-device;
  • contatti offline;
  • CRM non sincronizzato;
  • lead duplicati.

Per questo sono fondamentali tecniche di:

  • identity resolution;
  • session stitching;
  • deduplicazione utenti;
  • integrazione CRM-Marketing Automation.

Dal dato grezzo al modello decisionale

La pipeline completa diventa quindi:

Eventi Marketing → Customer Journey → Coalizioni → v(S) → Shapley Value → Allocazione Budget

Il valore dello Shapley Value non nasce soltanto dalla formula matematica.

Nasce dalla qualità della rappresentazione del customer journey.

Un modello perfetto applicato a dati incompleti produrrà comunque decisioni sbagliate: nella marketing attribution, la vera sfida non è calcolare il contributo dei canali, ma ricostruire correttamente il percorso che ha generato quel contributo.

Il problema delle coalizioni non osservate: il limite dei dati reali

Negli esempi didattici si assume spesso di conoscere il valore ([math]v(S)[/math]) di ogni possibile coalizione di canali.

Nella pratica, però, questa ipotesi è raramente soddisfatta.

Con [math]n[/math] canali esistono infatti:

[math]2^n[/math]

possibili coalizioni.

Con soli 15 touchpoint si ottengono già:

[math]2^{15} = 32.768[/math]

combinazioni teoriche.

Nella maggior parte delle aziende, tuttavia, solo una piccola frazione di queste viene realmente osservata nei customer journey.

Questo fenomeno prende il nome di sparsità delle coalizioni ed è uno dei principali problemi nell’applicazione dello Shapley Value ai dati di marketing.

Perché le coalizioni mancanti sono un problema?

Supponiamo di osservare frequentemente questi percorsi:

  • SEO → Email → Demo
  • Google Ads → Demo
  • Webinar → Demo

ma di non aver mai osservato utenti che abbiano seguito il percorso:

[math]\{ \text{SEO, Webinar, Demo} \}[/math]

L’assenza nei dati non implica necessariamente che quella combinazione non generi conversioni.

Potrebbe semplicemente trattarsi di una coalizione rara oppure non ancora osservata nel periodo di analisi.

Attribuire automaticamente un valore pari a zero alle coalizioni mancanti può alterare significativamente il contributo marginale dei canali e produrre attribuzioni distorte.

Come affrontare il problema in produzione

Nelle implementazioni enterprise, il valore della funzione ([math]v(S)[/math]) viene spesso stimato anziché osservato direttamente.

L’obiettivo è costruire un modello capace di prevedere il valore anche delle coalizioni mai viste, riducendo il bias dovuto alla scarsità dei dati.

Le strategie più comuni includono:

1. Smoothing statistico

Le coalizioni poco frequenti vengono regolarizzate utilizzando informazioni provenienti da combinazioni simili.

Questo riduce la variabilità dovuta a eventi osservati poche volte e limita il rischio di attribuzioni estreme.

2. Modelli predittivi della funzione valore

Anziché utilizzare esclusivamente le coalizioni osservate, è possibile stimare ([math]v(S)[/math]) mediante un modello statistico o di machine learning.

Tra gli approcci più utilizzati:

  • regressione lineare con variabili indicatrici dei canali;
  • modelli lineari generalizzati (GLM);
  • Gradient Boosting (ad esempio XGBoost o LightGBM);
  • Random Forest;
  • reti neurali per customer journey complessi.

In questo caso, ogni coalizione diventa un vettore di caratteristiche e il modello apprende la relazione tra combinazione di canali e valore economico generato.

3. Regolarizzazione bayesiana

Quando il numero di osservazioni è limitato, modelli gerarchici bayesiani consentono di incorporare informazione a priori e ottenere stime più stabili per le coalizioni rare.

Questo approccio è particolarmente utile nel SaaS B2B, dove i volumi di conversione sono inferiori rispetto all’e-commerce.

Una pipeline più realistica

In un progetto di Marketing Attribution enterprise, lo Shapley Value rappresenta soltanto l’ultimo passaggio della pipeline analitica.

Il flusso tipico è il seguente:

Eventi → Customer Journey → Feature Engineering → [math]\widehat{v}(S)[/math] → Shapley Value

dove

[math]\widehat{v}(S)[/math]

non è il valore osservato della coalizione, ma una stima ottenuta attraverso un modello statistico.

In questo modo è possibile attribuire un contributo anche a combinazioni di canali mai osservate direttamente, migliorando la robustezza del modello.

Nota metodologica

L’esempio Python presentato in questo articolo utilizza esclusivamente le coalizioni osservate per semplicità didattica. In un sistema di Marketing Analytics destinato alla produzione, è generalmente preferibile stimare la funzione valore mediante tecniche di smoothing o modelli predittivi prima di calcolare lo Shapley Value.


Pubblicità

Formulazione Matematica dello Shapley Value

Sia [math]N[/math] l’insieme di tutti i canali di marketing ([math]|N| = n[/math]) e [math]S \subseteq N \setminus \{i\}[/math] una coalizione (sottoinsieme) di canali che non include il canale [math]i[/math]. Sia [math]v(S)[/math] la funzione caratteristica che associa a ogni coalizione [math]S[/math] il valore generato (es. numero di conversioni).

Il valore di Shapley [math]\phi_i(v)[/math] per il canale [math]i[/math] è definito dalla seguente equazione:

[math]\displaystyle \phi_i(v) = \sum_{S \subseteq N \setminus \{i\}} \frac{|S|!(|N| – |S| – 1)!}{|N|!} \left[ v(S \cup \{i\}) – v(S) \right][/math]

Dove:

  • [math]v(S \cup \{i\}) – v(S)[/math] rappresenta il contributo marginale del canale [math]i[/math] alla coalizione [math]S[/math].
  • [math]\frac{|S|!(|N| – |S| – 1)!}{|N|!}[/math] costituisce il peso combinatorio, ovvero la probabilità statistica che la coalizione [math]S[/math] si formi quando i canali vengono introdotti in ordine casuale.

Shapley Value non è causalità: il limite metodologico da conoscere

Lo Shapley Value rappresenta uno degli strumenti più rigorosi per l’attribuzione del valore tra canali di marketing, ma è fondamentale chiarire un punto spesso frainteso: attribuzione e causalità non sono la stessa cosa.

Il modello risponde alla domanda:

“Come distribuire equamente il valore di una conversione tra tutti i canali che hanno partecipato al percorso?”

Non risponde invece direttamente alla domanda:

“Cosa sarebbe successo alle vendite se avessimo eliminato completamente un determinato canale?”

Questa distinzione è fondamentale nelle decisioni di investimento.

Immaginiamo un customer journey composto da:

SEO → Email → Demo → Vendita

Applicando lo Shapley Value, potremmo ottenere un’attribuzione come:

  • SEO: 31,25%
  • Email: 25%
  • Demo: 43,75%

Questo significa che, considerando tutte le possibili combinazioni tra i touchpoint, la SEO ha contribuito per una quota pari al 31,25% del valore generato dalla coalizione complessiva.

Tuttavia, non significa automaticamente che eliminando la SEO perderemmo il 31,25% delle vendite.

La differenza è sottile ma decisiva.

Un cliente potrebbe comunque arrivare alla conversione attraverso altri percorsi:

  • cercando direttamente il brand;
  • ricevendo una raccomandazione;
  • entrando tramite un altro canale organico;
  • utilizzando un touchpoint alternativo.

Lo Shapley Value misura quindi il contributo distribuito del canale all’interno dell’ecosistema osservato, non l’effetto causale puro della sua rimozione.

Per stimare un effetto realmente causale servono metodologie differenti, ad esempio:

Esperimenti controllati (A/B Test)

Si confrontano gruppi simili di utenti:

  • gruppo esposto al canale;
  • gruppo non esposto al canale.

La differenza nelle conversioni può fornire una stima dell’incremento causato dal touchpoint.

Modelli causali

Quando gli esperimenti non sono praticabili, si possono utilizzare approcci statistici come:

  • Propensity Score Matching;
  • Causal Forest;
  • Bayesian Structural Time Series;
  • Marketing Mix Modeling (MMM);
  • modelli di uplift.

Questi strumenti cercano di stimare il counterfactual, cioè lo scenario ipotetico:

“Quante conversioni avremmo ottenuto se questo canale non fosse mai esistito?”

Lo Shapley Value e i modelli causali rispondono quindi a domande diverse:

Domanda Modello più adatto
Come dividere equamente il merito tra canali collaborativi? Shapley Value
Quale canale crea più valore marginale nel customer journey? Shapley Value
Quante vendite perderemmo eliminando un canale? Modello causale
Qual è il vero incremento generato da una campagna? A/B Test o Causal Inference
Come allocare budget tra molti canali nel tempo? Shapley + MMM + modelli predittivi

La vera maturità analitica nasce quindi dall’integrazione dei due approcci.

Lo Shapley Value evita l’errore del Last Click, riconoscendo il contributo dei diversi touchpoint. I modelli causali verificano invece quanto quel contributo rappresenti un effetto realmente incrementale.

In un sistema di marketing data-driven avanzato, l’obiettivo non è scegliere tra attribuzione e causalità, ma combinarle:

  • Shapley Value per capire chi ha partecipato alla creazione del valore;
  • Modelli causali per capire chi ha realmente modificato il comportamento del cliente.
Forse potrebbe interessarti anche:  K-means: Guida Completa alla Scelta Ottimale dei Cluster e Valutazione delle Performance

Calcolo Pratico  (Esempio a 3 Canali)

Immaginiamo un ecosistema formato da tre canali: [math]N = \{\text{SEO}, \text{Email}, \text{Demo}\}[/math]. Analizzando i dati storici delle conversioni aggregate generate da ciascuna combinazione (coalizione) osserviamo i seguenti risultati:

Coalizione S Conversioni Osservate v(S)
[math]\emptyset[/math] (Nessun canale) [math]0[/math]
[math]\{\text{SEO}\}[/math] [math]20[/math]
[math]\{\text{Email}\}[/math] [math]15[/math]
[math]\{\text{Demo}\}[/math] [math]30[/math]
[math]\{\text{SEO, Email}\}[/math] [math]60[/math]
[math]\{\text{SEO, Demo}\}[/math] [math]90[/math]
[math]\{\text{Email, Demo}\}[/math] [math]80[/math]
[math]\{\text{SEO, Email, Demo}\}[/math] [math]120[/math]

Con [math]n = 3[/math] canali, esistono [math]3! = 6[/math] possibili sequenze d’ingresso (permutazioni). Per calcolare lo Shapley Value di ciascun canale, valutiamo l’incremento di conversioni fornito da quel canale in ogni singola sequenza:

1. Sequenze di Permutazione e Contributi Marginali

Permutazione (SEO, Email, Demo):

  • Contributo SEO (entra per primo): [math]v(\{\text{SEO}\}) – v(\emptyset) = 20 – 0 = \mathbf{20}[/math]
  • Contributo Email (entra su SEO): [math]v(\{\text{SEO, Email}\}) – v(\{\text{SEO}\}) = 60 – 20 = \mathbf{40}[/math]
  • Contributo Demo (entra su SEO+Email): [math]v(\{\text{SEO, Email, Demo}\}) – v(\{\text{SEO, Email}\}) = 120 – 60 = \mathbf{60}[/math]

Permutazione (SEO, Demo, Email):

  • Contributo SEO: [math]v(\{\text{SEO}\}) – v(\emptyset) = 20 – 0 = \mathbf{20}[/math]
  • Contributo Demo: [math]v(\{\text{SEO, Demo}\}) – v(\{\text{SEO}\}) = 90 – 20 = \mathbf{70}[/math]
  • Contributo Email: [math]v(\{\text{SEO, Email, Demo}\}) – v(\{\text{SEO, Demo}\}) = 120 – 90 = \mathbf{30}[/math]

Permutazione (Email, SEO, Demo):

  • Contributo Email: [math]v(\{\text{Email}\}) – v(\emptyset) = 15 – 0 = \mathbf{15}[/math]
  • Contributo SEO: [math]v(\{\text{SEO, Email}\}) – v(\{\text{Email}\}) = 60 – 15 = \mathbf{45}[/math]
  • Contributo Demo: [math]v(\{\text{SEO, Email, Demo}\}) – v(\{\text{SEO, Email}\}) = 120 – 60 = \mathbf{60}[/math]

Permutazione (Email, Demo, SEO):

  • Contributo Email: [math]v(\{\text{Email}\}) – v(\emptyset) = 15 – 0 = \mathbf{15}[/math]
  • Contributo Demo: [math]v(\{\text{Email, Demo}\}) – v(\{\text{Email}\}) = 80 – 15 = \mathbf{65}[/math]
  • Contributo SEO: [math]v(\{\text{SEO, Email, Demo}\}) – v(\{\text{Email, Demo}\}) = 120 – 80 = \mathbf{40}[/math]

Permutazione (Demo, SEO, Email):

  • Contributo Demo: [math]v(\{\text{Demo}\}) – v(\emptyset) = 30 – 0 = \mathbf{30}[/math]
  • Contributo SEO: [math]v(\{\text{SEO, Demo}\}) – v(\{\text{Demo}\}) = 90 – 30 = \mathbf{60}[/math]
  • Contributo Email: [math]v(\{\text{SEO, Email, Demo}\}) – v(\{\text{SEO, Demo}\}) = 120 – 90 = \mathbf{30}[/math]

Permutazione (Demo, Email, SEO):

  • Contributo Demo: [math]v(\{\text{Demo}\}) – v(\emptyset) = 30 – 0 = \mathbf{30}[/math]
  • Contributo Email: [math]v(\{\text{Email, Demo}\}) – v(\{\text{Demo}\}) = 80 – 30 = \mathbf{50}[/math]
  • Contributo SEO: [math]v(\{\text{SEO, Email, Demo}\}) – v(\{\text{Email, Demo}\}) = 120 – 80 = \mathbf{40}[/math]

2. Calcolo della Media sui Permutazioni

Sommando i contributi marginali ottenuti da ogni canale e dividendo per il numero totale di permutazioni ([math]6[/math]):

[math]\phi_{\text{SEO}} = \frac{20 + 20 + 45 + 40 + 60 + 40}{6} = \frac{225}{6} = \mathbf{37.5} \text{ conversioni } (\mathbf{31.25\%})[/math]

[math]\phi_{\text{Email}} = \frac{40 + 30 + 15 + 15 + 30 + 50}{6} = \frac{180}{6} = \mathbf{30.0} \text{ conversioni } (\mathbf{25.00\%})[/math]

[math]\phi_{\text{Demo}} = \frac{60 + 70 + 60 + 65 + 30 + 30}{6} = \frac{315}{6} = \mathbf{52.5} \text{ conversioni } (\mathbf{43.75\%})[/math]

Verifica dell’Assioma di Efficienza:

[math]\phi_{\text{SEO}} + \phi_{\text{Email}} + \phi_{\text{Demo}} = 37.5 + 30.0 + 52.5 = 120.0 = v(\{\text{SEO, Email, Demo}\})[/math]

Il modello riconosce alla Demo il peso maggiore ([math]43.75\%[/math]) per il suo ruolo decisivo di chiusura, ma attribuisce alla SEO ([math]31.25\%[/math]) e all’Email ([math]25.00\%[/math]) il giusto merito per aver alimentato l’interesse lungo il journey.


Complessità Computazionale e Algoritmo Monte Carlo

Il calcolo esatto dello Shapley Value richiede la valutazione di [math]n![/math] permutazioni. L’aumento del numero di canali comporta una crescita fattoriale del costo computazionale:

[math]n = 5 \implies 120[/math] permutazioni

[math]n = 10 \implies 3.628.800[/math] permutazioni

[math]n = 20 \implies 20! \approx 2.43 \times 10^{18}[/math] permutazioni

In contesti reali con decine di touchpoint, il calcolo esatto è impraticabile. Si ricorre quindi a un’approssimazione tramite Campionamento Monte Carlo: si estrae un campione casuale di [math]M[/math] permutazioni (es. [math]M = 5.000[/math]). Per la legge dei grandi numeri, la media dei contributi campionati converge rapidamente al valore teorico reale.


 

Implementazione Python: Shapley Value con Simulazione Monte Carlo

Nota

Per semplicità il codice assegna valore zero alle coalizioni non presenti nel dizionario. Nei sistemi reali tali valori vengono generalmente stimati mediante modelli statistici o tecniche di smoothing prima del calcolo dello Shapley Value.

import itertools
import random
from typing import Dict, FrozenSet, List, Tuple


class ShapleyAttribution:

    def __init__(self, coalition_values: Dict[FrozenSet[str], float]):
        """coalition_values: dizionario dove le chiavi sono frozenset di canali

        e i valori rappresentano le conversioni generati.
        """
        self.coalition_values = coalition_values
        if frozenset() not in self.coalition_values:
            self.coalition_values[frozenset()] = 0.0

        self.channels = sorted(
            list(
                set().union(*[s for s in coalition_values.keys() if len(s) > 0])
            )
        )
        self.n = len(self.channels)

    def compute_exact(self) -> Dict[str, float]:
        """Calcola lo Shapley Value esatto esaminando tutte le n!

        permutazioni.
        """
        shapley_values = {channel: 0.0 for channel in self.channels}
        permutations = list(itertools.permutations(self.channels))
        total_permutations = len(permutations)

        for perm in permutations:
            current_coalition = set()
            for channel in perm:
                v_before = self.coalition_values.get(
                    frozenset(current_coalition), 0.0
                )
                current_coalition.add(channel)
                v_after = self.coalition_values.get(
                    frozenset(current_coalition), 0.0
                )
                shapley_values[channel] += v_after - v_before

        return {k: v / total_permutations for k, v in shapley_values.items()}

    def compute_monte_carlo(self, n_samples: int = 5000) -> Dict[str, float]:
        """Stima lo Shapley Value tramite campionamento Monte Carlo."""
        shapley_values = {channel: 0.0 for channel in self.channels}

        for _ in range(n_samples):
            perm = list(self.channels)
            random.shuffle(perm)
            current_coalition = set()

            for channel in perm:
                v_before = self.coalition_values.get(
                    frozenset(current_coalition), 0.0
                )
                current_coalition.add(channel)
                v_after = self.coalition_values.get(
                    frozenset(current_coalition), 0.0
                )
                shapley_values[channel] += v_after - v_before

        return {k: v / n_samples for k, v in shapley_values.items()}


# Esecuzione del modello
if __name__ == "__main__":
    data = {
        frozenset(): 0,
        frozenset(["SEO"]): 20,
        frozenset(["Email"]): 15,
        frozenset(["Demo"]): 30,
        frozenset(["SEO", "Email"]): 60,
        frozenset(["SEO", "Demo"]): 90,
        frozenset(["Email", "Demo"]): 80,
        frozenset(["SEO", "Email", "Demo"]): 120,
    }

    model = ShapleyAttribution(data)

    print("--- Shapley Value Esatto ---")
    exact_results = model.compute_exact()
    for ch, val in exact_results.items():
        print(f"{ch}: {val:.2f} conversioni")

    print("\n--- Stima Monte Carlo (5000 campioni) ---")
    mc_results = model.compute_monte_carlo(n_samples=5000)
    for ch, val in mc_results.items():
        print(f"{ch}: {val:.2f} conversioni")

Analisi dell’Output

Eseguendo lo script si ottengono i seguenti risultati:

--- Shapley Value Esatto ---
Demo: 52.50 conversioni
Email: 30.00 conversioni
SEO: 37.50 conversioni

--- Stima Monte Carlo (5000 campioni) ---
Demo: 52.83 conversioni
Email: 29.70 conversioni
SEO: 37.47 conversioni

L’output conferma due principi chiave:

  • Accuratezza Statistica: Con 5.000 iterazioni Monte Carlo, l’errore rispetto al calcolo teorico esatto è inferiore allo [math]0.6\%[/math] per ogni canale (es. la Demo registra uno scarto marginale di [math]+0.33[/math] conversioni).
  • Efficienza del Calcolo: L’algoritmo riduce la complessità computazionale da fattoriale [math]\mathcal{O}(n!)[/math] a lineare [math]\mathcal{O}(M \cdot n)[/math], consentendo di analizzare decine di touchpoint in pochi secondi con un margine di errore del tutto trascurabile.

 

Nota sulla Complessità Computazionale

Il calcolo esatto dello Shapley Value può essere effettuato enumerando tutte le [math]n![/math] permutazioni dei canali oppure valutando tutte le coalizioni possibili tramite la formula assiomatica, con una crescita esponenziale [math]O(n 2^n)[/math].

Approccio Formulazione Matematica Complessità Scalabilità
Permutazionale [math]\sum_{\pi \in \Pi} \left[ v(S_\pi^i \cup \{i\}) – v(S_\pi^i) \right][/math] [math]O(n!)[/math] Impraticabile già con [math]n \ge 10[/math]
Coalizionale (Standard) [math]\sum_{S \subseteq N \setminus \{i\}} \frac{|S|! (n – |S| – 1)!}{n!} [v(S \cup \{i\}) – v(S)][/math] [math]O(n 2^n)[/math] Impraticabile con [math]n \ge 15[/math]
Campionamento Monte Carlo Approssimazione stocastica su [math]M[/math] permutazioni casuali [math]O(M \cdot n)[/math] Scalabile per [math]n > 20[/math] canali

Quando il numero di touchpoint aziendali supera [math]n \ge 10[/math], la valutazione di [math]2^n[/math] combinazioni nel Data Warehouse diventa computazionalmente insostenibile. In produzione si abbandona il calcolo combinatorio esatto in favore del campionamento Monte Carlo, che stimando i contributi marginali su un sottoinsieme casuale di [math]M[/math] permutazioni abbassa la complessità a livello lineare [math]O(M \cdot n)[/math].


Shapley Value vs. Catene di Markov

Oltre allo Shapley Value, l’altro grande modello algoritmico avanzato è rappresentato dalle Catene di Markov. Sebbene entrambi superino le euristiche tradizionali, rispondono a quesiti analitici differenti:

Dimensione di Confronto Shapley Value Catene di Markov
Fondamento Matematico Teoria dei Giochi Cooperativi Processi Stocastici / Grafi Probabilistici
Quesito Principale Quanto valore crea mediamente un canale quando coopera con gli altri? Come varia la probabilità totale di conversione se rimuovo un canale?
Metrica Chiave Contributo Marginale Medio ([math]\phi_i[/math]) Effetto Rimozione (Removal Effect)
Ordine del Journey Tratta i percorsi come coalizioni (insiemi di canali) Tratta i percorsi come sequenze temporali ordinate
Punto di Forza Soluzione equa, assiomatica, priva di arbitrio Individua i punti di interruzione e i colli di bottiglia del funnel
Svantaggio Principale Complessità combinatoria ([math]n![/math]) Sensibile alla qualità della matrice di transizione e ai dati mancanti

Complementarità dei Modelli

In un’architettura dati avanzata, i due modelli non competono ma si integrano:

  • Il Modello di Shapley guida l’allocazione finanziaria del budget tra i vari team e partner di canale.
  • Il Modello di Markov aiuta i Growth Manager a diagnosticare dove gli utenti abbandonano il percorso e quali transizioni di fase richiedono ottimizzazione.

Applicazioni Estese: Explainable AI (SHAP) e Finanza

L’eleganza dello Shapley Value ha travalicato i confini del marketing, diventando una pietra angolare della scienza dei dati contemporanea:

Explainable AI (SHAP): Algoritmi complessi come XGBoost o le reti neurali profonde vengono spesso criticati per la loro natura opaca. La libreria SHAP (SHapley Additive exPlanations) sfrutta lo Shapley Value per calcolare l’impatto di ogni singola feature sulle predizioni dell’algoritmo (ad esempio, quantificando quanto il reddito o l’età abbiano inciso sul punteggio di credito assegnato a un cliente).

Forse potrebbe interessarti anche:  I PRAGMA di SQLite: Il Pannello di Controllo Segreto che Trasforma un File .db in un Motore Enterprise

Gestione del Rischio Finanziario: In finanza, lo Shapley Value viene impiegato per scomporre il Value at Risk (VaR) di un portafoglio di investimenti, attribuendo a ciascun asset la propria quota di responsabilità sulla varianza complessiva del rischio.


Caso SaaS B2B Enterprise: perché il Last Click può distruggere la pipeline

Nel mercato SaaS B2B, il problema dell’attribuzione è ancora più evidente perché il percorso di acquisto raramente è lineare.

Un cliente enterprise non acquista un software da 50.000 € di valore annuale dopo aver visto un singolo annuncio. Prima della firma del contratto possono trascorrere settimane o mesi durante i quali diversi touchpoint contribuiscono alla costruzione della fiducia.

Immaginiamo questo customer journey:

LinkedIn Ads → Webinar → Whitepaper → Email Nurturing → Sales Demo → Contratto Annuale 50.000€

Visione Last Click

Applicando un modello Last Click, l’intero valore della conversione viene assegnato all’ultimo punto di contatto:

Canale Attribuzione Last Click
LinkedIn Ads 0%
Webinar 0%
Whitepaper 0%
Email Nurturing 0%
Sales Demo 100%

La conclusione apparente sarebbe:

“La Sales Demo genera tutte le vendite. Aumentiamo il budget commerciale e riduciamo gli investimenti in awareness.”

Questa decisione però ignora un elemento fondamentale: la demo spesso non crea la domanda, ma raccoglie un interesse già costruito nei mesi precedenti.

Visione Shapley Value

Applicando invece un modello basato sul contributo marginale dei diversi touchpoint, la distribuzione potrebbe diventare:

Canale Quota Shapley
LinkedIn Ads 15%
Webinar 20%
Whitepaper 18%
Email Nurturing 22%
Sales Demo 25%

La Sales Demo rimane il touchpoint più vicino alla conversione, ma il modello riconosce che il risultato finale è stato costruito attraverso una collaborazione tra marketing e sales.

Implicazione strategica

La differenza tra i due modelli porta a decisioni di investimento completamente diverse.

Con il Last Click:

  • aumenta il budget sulle demo;
  • riduce i contenuti educativi;
  • taglia le attività di awareness;
  • nel medio periodo diminuisce il numero di prospect qualificati.

Con lo Shapley Value:

  • la Sales Demo viene ottimizzata come fase di chiusura;
  • Webinar e Whitepaper vengono riconosciuti come generatori di domanda;
  • Email Nurturing viene considerato un acceleratore della conversione;
  • gli investimenti vengono distribuiti lungo tutto il funnel.

La conseguenza economica è una migliore gestione del CAC (Customer Acquisition Cost).

Un canale apparentemente poco redditizio nel breve periodo potrebbe avere un ruolo fondamentale nel ridurre il CAC complessivo perché aumenta la probabilità che un prospect attraversi correttamente il funnel.

Collegamento con LTV/CAC e Rule of 40

Nel SaaS, una corretta attribuzione non riguarda solo il marketing reporting: influenza direttamente le metriche utilizzate da investitori e management.

Un CAC sovrastimato o sottostimato altera:

  • il rapporto LTV/CAC, cioè il valore generato da un cliente rispetto al costo di acquisizione;
  • il Payback Period, ovvero il tempo necessario per recuperare il costo commerciale;
  • la valutazione della crescita efficiente secondo la Rule of 40.

Per questo motivo l’attribuzione multi-touch non è soltanto un problema analitico.

È un problema finanziario.

Un modello come lo Shapley Value permette di evitare una delle distorsioni più frequenti nel SaaS B2B: tagliare gli investimenti che generano domanda futura perché non compaiono come ultimo clic prima della firma.

Dal modello alla decisione: come cambiano 100.000 € di budget marketing

All’inizio abbiamo visto due aziende con lo stesso investimento iniziale:

[math]Budget_{Marketing} = 100.000 €[/math]

Entrambe utilizzano gli stessi canali:

  • Google Ads

  • SEO

  • Email Marketing

  • Content Marketing

  • Demo commerciali

La differenza non è nei dati disponibili, ma nel modello utilizzato per interpretare il contributo dei canali.

La prima azienda utilizza un modello Last Click. La seconda utilizza un modello di attribuzione basato sullo Shapley Value.

Il risultato porta a due strategie di investimento completamente diverse.

Scenario 1: allocazione guidata dal Last Click

Supponiamo che dall’analisi storica emerga che l’ultimo touchpoint prima della conversione sia prevalentemente Google Ads o Sales Demo.

Il modello assegna quindi tutto il merito al canale finale:

Canale Attribuzione Last Click Budget assegnato
Google Ads 70% 70.000 €
SEO 0% 0 €
Email Marketing 0% 0 €
Content Marketing 0% 0 €
Demo commerciale 30% 30.000 €
Totale 100% 100.000 €

La decisione apparente sembra razionale:

“Investiamo dove vediamo direttamente le conversioni.”

Il problema è che Google Ads e Demo ricevono il merito anche per il lavoro preparatorio svolto dagli altri canali.

Nel tempo possono verificarsi tre effetti:

  • aumento del costo marginale della pubblicità a pagamento;

  • riduzione del traffico organico qualificato;

  • indebolimento della pipeline futura.

Scenario 2: allocazione guidata dallo Shapley Value

Applicando invece un modello multi-touch basato sul contributo marginale dei canali, il valore viene distribuito considerando tutte le collaborazioni possibili.

Esempio:

Canale Quota Shapley Budget assegnato
Google Ads 35% 35.000 €
SEO 20% 20.000 €
Email Marketing 18% 18.000 €
Content Marketing 12% 12.000 €
Demo commerciale 15% 15.000 €
Totale 100% 100.000 €

In questo scenario Google Ads continua a ricevere investimenti importanti perché contribuisce alla conversione, ma non assorbe tutto il budget.

La SEO e il Content Marketing vengono riconosciuti come asset strategici perché alimentano il sistema di acquisizione nel lungo periodo.

La differenza economica

I due modelli non stanno semplicemente dividendo diversamente 100.000 €.

Stanno ottimizzando due strategie diverse:

Modello Domanda implicita Rischio
Last Click “Quale canale chiude più vendite oggi?” Sovrainvestire negli ultimi touchpoint
Shapley Value “Quali canali creano valore collaborando?” Richiede dati e infrastruttura analitica

Nel breve periodo entrambe le aziende potrebbero ottenere risultati simili.

La differenza emerge nel tempo:

  • la prima tende a inseguire la domanda già esistente;

  • la seconda continua a costruire nuova domanda.

Per questo motivo l’attribuzione non è soltanto un problema di reporting marketing.

È una scelta strategica su come trasformare 100.000 € di investimento in crescita futura.

Conclusione

Continuare a distribuire il budget di marketing sulla base del Last Click equivale a guidare a fari spenti. Lo Shapley Value restituisce al decision-making strategico la solidità della prova matematica: quantifica il valore generato dalla collaborazione tra i canali, elimina i canali parassita e protegge gli investimenti di prima acquisizione.

Investire in un modello di attribuzione basato sulla teoria dei giochi non è un semplice esercizio tecnico, ma una decisione finanziaria ad alto rendimento capace di ottimizzare l’efficienza di ogni euro speso sul mercato.

Lo Shapley Value non sostituisce l’intuizione del marketing, ma elimina una delle sue principali fonti di errore: attribuire il merito seguendo scorciatoie arbitrarie. In organizzazioni che gestiscono decine di touchpoint e milioni di interazioni, rappresenta uno degli strumenti più solidi per trasformare i dati di customer journey in decisioni di investimento realmente data-driven.

 

📚 Marketing Analytics, Customer Journey e Crescita SaaS Data-Driven

Nel business digitale moderno, acquisizione, retention e crescita non possono essere analizzate con metriche isolate.
Modelli probabilistici, attribuzione multi-touch, catene di Markov e analisi del ciclo di vita del cliente permettono di trasformare i dati in decisioni strategiche su CAC, churn e valore futuro del cliente.
Ecco le guide per approfondire questi approcci:

👉Attribuzione Multi-Touch nel SaaS B2B: Catene di Markov, Shapley Value e calcolo del CAC

👉Attribuzione Multi-Touch nel SaaS B2B: guida completa a Markov, Shapley e calcolo del CAC – Parte 2

👉Rule of 40 nel SaaS: la formula che gli investitori usano per valutare un business

👉Catene di Markov in Python: modellare funnel, retention e churn oltre le classiche dashboard

👉Dalla curva di Rogers alle catene di Markov: come modellare e prevedere il Customer Journey con Python

👉Analisi avanzata Churn Rate e CLV: modello Python ed Excel per ottimizzare la retention clienti

Pubblicità