ADDESTRA L'ALGORITMO
- schiavifabio
- 20 ore fa
- Tempo di lettura: 6 min
Non compri traffico. Stai insegnando a una macchina.
Tag: MACHINE LEARNING | SIGNAL OPTIMIZATION | SCALING
Non stai comprando traffico. Stai addestrando un algoritmo.
Tutti parlano di creatività e budget. Quasi nessuno parla di ciò che conta davvero: i segnali che stai mandando alla macchina.
Meta, Google, TikTok - sono tutti sistemi di machine learning. Apprendono dai dati che gli dai. Se gli dai dati sbagliati, apprendono cose sbagliate. E le loro "ottimizzazioni" ti porteranno sempre più lontano dai clienti giusti.
Questo case study documenta come abbiamo ristrutturato l'intero sistema di segnali per un e-commerce con scaling bloccato. ROAS da 2.1x a 4.8x in 6 settimane. Non cambiando creative. Non aumentando budget. Cambiando cosa insegnavamo all'algoritmo.
Il problema: scaling impossibile
E-commerce home & living. Prodotto hero da €150 AOV. Performance marketing gestito da agenzia esterna con risultati "accettabili".
Situazione iniziale:
Budget mensile: €40k
ROAS: 2.1x
CPA: €71
Margine netto per ordine: ~€45
Profittevoli, ma con margine sottile. Il problema: ogni tentativo di scalare falliva.
Pattern di scaling:
Budget €40k → ROAS 2.1x ✓
Budget €60k → ROAS 1.7x ✗
Budget €80k → ROAS 1.3x ✗
Tornano a €40k → ROAS recupera lentamenteL'agenzia diceva: "Il mercato è saturo". "Serve più brand awareness prima di scalare". "Il prodotto ha un ceiling".
Tutte stronzate.
Il problema non era il mercato. Era che stavano addestrando male l'algoritmo. E quando provavano a scalare, l'algoritmo faceva esattamente quello che gli avevano insegnato: trovare più persone dello stesso tipo sbagliato.
La diagnosi: signal pollution
Abbiamo fatto un audit completo del sistema di tracking e conversioni. Quello che abbiamo trovato era un disastro.
Problema #1: Eventi di conversione sbagliati
Setup esistente:
Evento ottimizzazione: "Add to Cart"
Evento conversione: "Purchase"
Window: 7-day click, 1-day view
Il problema: Ottimizzavano per Add to Cart.
L'algoritmo stava imparando a trovare persone che aggiungono al carrello. Non persone che comprano.
I dati:
Add to Cart rate: 4.2%
Cart to Purchase: 18%
Conclusione: il 82% degli Add to Cart non convertiva
L'algoritmo era diventato bravissimo a trovare "aggiungiori di carrelli". Persone che esplorano, aggiungono cose, e poi spariscono. Il traffico perfetto se vendi Add to Cart. Inutile se vendi prodotti.
Problema #2: Pixel event duplication
Analizzando il pixel, abbiamo trovato che l'evento Purchase sparava 2.3 volte in media per transazione.
Cause:
Pixel su thank you page + Conversion API non deduplicate
Redirect multipli nel checkout flow
Tag Manager mal configurato
Conseguenza: L'algoritmo pensava che le conversioni fossero il 130% di quelle reali. Overfit su pattern sbagliati.
Problema #3: Value signal assente
Setup esistente: Purchase tracciato come evento binario (1/0).
Il problema: Non passavano il valore dell'ordine.
Per l'algoritmo, un ordine da €50 e uno da €500 erano identici. Quindi ottimizzava per volume, non per valore.
I dati:
20% degli ordini generava il 52% della revenue
L'algoritmo non aveva modo di saperlo
Trattava i clienti high-value come tutti gli altri
Problema #4: Audience feedback loop negativo
Setup esistente:
Lookalike basata su "All Purchasers - 180 days"
Custom audience "Website Visitors - 30 days"
Il problema: Il pool "All Purchasers" era inquinato.
Conteneva:
Acquirenti da referral (comportamento diverso)
Acquirenti da sconti aggressivi (cacciatori di offerte)
Acquirenti one-time che non tornavano mai
L'algoritmo creava lookalike di queste persone. Che a loro volta non convertivano o convertivano su sconti. Che inquinavano ulteriormente il pool. Loop negativo.
Problema #5: Attribution chaos
Setup esistente:
Meta: 7-day click, 1-day view
Google: Data-driven (default)
GA4: Last click
Conseguenza: Ogni piattaforma raccontava una storia diversa. Le decisioni venivano prese su dati incoerenti. Meta overcounted, Google undercounted.
La soluzione: signal restructuring
Abbiamo ricostruito da zero il sistema di segnali. Non creativi nuovi. Non audience nuove. Solo segnali puliti.
Intervento #1: Conversion event hierarchy
Nuovo setup:
Livello 1 (Ottimizzazione primaria): Purchase con value
Livello 2 (Segnale secondario): Initiate Checkout
Livello 3 (Segnale qualità): High-Value Purchase (>€200)Configurazione Meta:
Campagne Acquisition: Ottimizza per Purchase Value (Value Optimization)
Campagne Retargeting: Ottimizza per Purchase (Volume)
CAPI + Pixel con deduplicazione via event_id
Perché il cambio: L'algoritmo ora impara cosa significa un cliente che compra E quanto vale. Può differenziare.
Intervento #2: Value-based signal implementation
Nuovo tracciamento:
javascript
// Purchase event con value dinamico
fbq('track', 'Purchase', {
value: orderTotal,
currency: 'EUR',
content_type: 'product',
contents: productArray,
num_items: itemCount
});
// High-value purchase custom event
if (orderTotal > 200) {
fbq('trackCustom', 'HighValuePurchase', {
value: orderTotal,
currency: 'EUR'
});
}Google Ads:
Enhanced conversions attivate
Value tracking su tutte le conversion action
Conversion value rules per aggiustare value (es: +20% per returning customers)
Intervento #3: Audience pool cleanup
Prima:
LAL 1% All Purchasers (180 days) - 2.4M poolDopo:
LAL 1% High-Value Purchasers (€200+, 90 days) - 850k pool
LAL 1% Repeat Purchasers (2+ ordini, 180 days) - 620k pool
LAL 2% Purchasers excluding promo-only - 1.8M poolSeed audience rules:
Escludi acquisti da codici sconto >30%
Escludi acquisti singoli sotto €100
Escludi referral traffic purchasers
Perché: Insegniamo all'algoritmo come sono fatti i clienti BUONI, non tutti i clienti.
Intervento #4: Deduplication & data quality
Technical implementation:
javascript
// Event ID per deduplicazione
const eventId = `purchase_${orderId}_${Date.now()}`;
// Browser Pixel
fbq('track', 'Purchase', eventData, {eventID: eventId});
// Server-side (CAPI)
// Stesso eventId passato via serverGTM Server Container:
Setup su Google Cloud
CAPI routing con deduplication logic
Event enrichment (user data matching)
Risultato: Match rate da 54% a 89%. Eventi duplicati: 0%.
Intervento #5: Attribution alignment
Nuovo framework:
Piattaforma | Scopo | Window |
Meta | Ottimizzazione delivery | 7d click, 1d view |
Meta | Reporting interno | 1d click (più conservativo) |
GA4 | Source of truth | Data-driven, cross-channel |
Internal | Decision making | Blended ROAS formula |
Blended ROAS formula:
Blended ROAS = Total Revenue / Total Ad Spend (all channels)Non ci fidiamo più delle attribuzioni singole. Guardiamo il business nel suo insieme.
Il retraining: 3 settimane di patience
Settimana 1:
Deploy nuovi eventi
Algoritmo "confuso" - performance drop temporaneo
ROAS: 1.6x (peggio di prima)
Settimana 2:
Algoritmo inizia a raccogliere nuovi segnali
Performance stabilizzazione
ROAS: 2.0x (recupero)
Settimana 3:
Algoritmo "capisce" i nuovi pattern
Performance breakthrough
ROAS: 2.9x (sopra baseline)
Settimana 4+:
Ottimizzazione continua
ROAS stabilizzato 3.5-4x
Il dip iniziale è normale e NECESSARIO. Stai resettando quello che l'algoritmo aveva imparato. Devi avere pazienza.
Lo scaling: finalmente possibile
Con i segnali puliti, lo scaling ha funzionato per la prima volta.
Test scaling post-restructure:
Budget €40k → ROAS 3.8x ✓
Budget €60k → ROAS 3.5x ✓
Budget €80k → ROAS 3.2x ✓
Budget €100k → ROAS 2.9x ✓Ancora decay fisiologico (normale), ma non più crollo. L'algoritmo trovava più persone dello stesso tipo GIUSTO.
Perché ora funziona:
Prima: "Trova più persone che aggiungono al carrello" → trova curiosi, non compratori Dopo: "Trova più persone che comprano prodotti da €150+" → trova clienti reali
I risultati: 6 settimane
Metriche pre vs post
Metrica | Prima | Dopo | Delta |
ROAS | 2.1x | 4.8x | +129% |
CPA | €71 | €41 | -42% |
AOV | €148 | €172 | +16% |
Repeat rate 90d | 12% | 23% | +92% |
LTV 12m | €185 | €267 | +44% |
Metriche scaling
Budget | ROAS Before | ROAS After |
€40k | 2.1x | 3.8x |
€60k | 1.7x | 3.5x |
€80k | 1.3x | 3.2x |
€100k | N/A (mai raggiunto) | 2.9x |
Signal quality metrics
Metrica | Prima | Dopo |
Pixel match rate | 54% | 89% |
Event deduplication | 2.3x | 1.0x |
Value tracking accuracy | 0% | 99.7% |
LAL quality score (internal) | 3.2/10 | 8.1/10 |
Il framework generalizzabile
Step 1: Audit dei segnali
Chiediti:
Quale evento sto ottimizzando? È quello giusto?
Passo il valore delle conversioni?
I miei eventi sono duplicati?
Le mie audience sono "pulite"?
Step 2: Definisci il cliente ideale in termini di dati
Non "donna 25-35 interessata a design". Ma:
AOV >€X
Repeat purchase entro 90 giorni
Non convertito da heavy discount
Acquisition channel specifico
Step 3: Insegna all'algoritmo QUEL cliente
Seed audience basate su comportamenti, non demographics
Value optimization, non volume optimization
Escludi i pattern che non vuoi replicare
Step 4: Misura quello che conta
Blended ROAS, non platform ROAS
LTV, non first-order value
Quality metrics (repeat rate, AOV trend)
Step 5: Abbi pazienza nel retraining
L'algoritmo ha bisogno di tempo per imparare i nuovi pattern. Il dip iniziale è normale. Non tornare indietro al primo segno di difficoltà.
Gli errori che questo framework previene
"Ottimizziamo per Add to Cart perché abbiamo più dati"
Più dati sbagliati = più errori. Meglio meno dati giusti.
"Non passiamo il value perché 'tanto' ottimizziamo per conversioni"
L'algoritmo non sa che €50 ≠ €500. Per lui sono uguali. Glielo devi dire.
"La nostra lookalike si basa su tutti i clienti"
"Tutti i clienti" include i cattivi clienti. Stai chiedendo all'algoritmo di trovare più clienti mediocri.
"Non tocchiamo il tracking, funziona"
"Funziona" non significa "funziona bene". La maggior parte dei tracking sono corrotti in modi invisibili.
"Lo scaling non funziona per il nostro settore"
Nel 95% dei casi, lo scaling non funziona perché stai scalando gli errori, non i successi.
Il mindset shift
Smetti di pensare alle ads come "comprare visibilità".
Inizia a pensare alle ads come "addestrare un sistema di machine learning".
Ogni euro che spendi è un dato che insegna qualcosa all'algoritmo. Ogni conversione che tracci è un esempio di "questo è quello che voglio". Ogni audience che crei è una definizione di "questo è il mio cliente ideale".
Se insegni male, impara male. Se impara male, ti porta nel posto sbagliato. E più budget metti, più velocemente ci arrivi.
Il tuo lavoro non è fare creatività belle o trovare audience furbe.
Il tuo lavoro è essere un buon insegnante per una macchina.
Vuoi un audit del tuo sistema di segnali?
Commenti