Ho fatto un audit di 383K $ di spesa tROAS su Meta, paese per paese. Il 7% di quella spesa era sotto target proprio sulla metrica che l’algoritmo ottimizza, ed era difficile da intercettare.
In una campagna che stava centrando il suo target tROAS c’era un paese che girava al 28% di All ROAS da tre mesi. Scoprire un divario così ampio, e per così tanto tempo, è stato uno shock per me. Il target era il 70% e nessuna dashboard lo segnalava. L’ho trovato perché sono andato a cercarlo.
Questa è la storia di quell’audit, e del framework di scoring che ne è uscito.
Il setup
Una subscription app su Meta, con cinque campagne tROAS divise per piattaforma e tier geografico. Il periodo andava dal 1 marzo al 29 maggio, e la spesa è stata di 383K $ su oltre 200 paesi e parecchi ad set.
Un po’ di vocabolario, così leggiamo i numeri allo stesso modo. tROAS significa che Meta fa bid per raggiungere un target di ROAS totale. Quel target è il compito assegnato all’algoritmo. Il D0 ROAS è il mio segnale precoce. In questa app la maggior parte della revenue iniziale arriva il giorno dell’install, quindi il D0 ti dice subito se una coorte ha senso. Quando l’ho testato su altre 38 campagne Meta, il ROAS al giorno 0 ha previsto il ROAS al giorno 28 meglio del costo per acquisto.
Giudicavo le campagne come le giudica la maggior parte dei team, cioè con il ROAS blended rispetto al target. Quel numero sembrava in linea con il target per tutto il trimestre.
Un numero blended nasconde tutto
La campagna Tier1 iOS di quel periodo aveva un D0 blended del 26%. Al suo interno:
| Paese | D0 ROAS | All ROAS | Cosa stava succedendo |
|---|---|---|---|
| Francia | 49% | 66% | Forte, ma l'All ROAS è sceso dal 57% al 40% nel trimestre |
| US | 23% | 62% | Sotto target, ed è il paese che spende di più nella campagna, con 49K $ |
| Germania | 16% | 31% | Sotto target per tre mesi di fila. Ferma al palo |
Il D0 blended dice 26%. I paesi al suo interno dicono altro.
Dentro un solo numero blended si nascondevano tre situazioni diverse, e la parte difficile da accettare è che all’algoritmo non sembrava importare.
Perché l’algoritmo potrebbe non aver risolto il problema
Il tROAS risponde a un unico target blended, una media su tutti i paesi a cui è rivolto un ad set. Meta può usare la posizione quando fa bid, ma niente nel target chiede a Meta di mantenere ogni paese al 70%.
Quindi un paese che va male si nasconde dentro una campagna che, nel blend, sembra a posto. Quel paese, che girava al 28% di All ROAS mentre la sua campagna segnava il 70%, stava fallendo sul target stesso, la metrica esatta che l’algoritmo ottimizza. Il D0 l’ha segnalato presto, l’All ROAS l’ha confermato, e il numero a livello di campagna non ha mai battuto ciglio.
I paesi che vanno bene sovvenzionano quelli che vanno male. Il blend resta mediocre, e il mediocre passa per ordinaria amministrazione.
Non sto mettendo in discussione l’algoritmo. Risponde a un unico numero blended, mai a uno per paese, quindi controllare i paesi a mano tocca a te. Le altre suddivisioni, come età o genere, mi sembravano normali, per questo la cosa mi ha colto di sorpresa.
Il framework: due metriche, tre colori, tre gruppi
Ho usato questo sistema di scoring per decidere quali paesi tenere e quali tagliare. Si basa su un export del breakdown per paese e richiede circa trenta minuti al mese.
Passo 1: valuta ogni metrica separatamente
A ogni paese do due voti, uno per il D0 ROAS e uno per l’All ROAS, ciascuno verde, giallo o rosso rispetto a fasce costruite sul target della campagna. Le fasce di questa app derivano dal suo target tROAS del 70%. L’All ROAS verde parte dal target, e le fasce D0 vengono dai livelli che, storicamente, vanno di pari passo con il raggiungimento del target. Prendi pure la struttura, ma i numeri ricavali tu, dal tuo target e dalla tua curva da D0 ad All ROAS.
Il D0 ti dà il segnale precoce che guardo io. L’All ROAS ti dà la verità, cioè ciò che la campagna ottimizza. Qui All ROAS è il ROAS d’acquisto riportato da Meta entro la finestra di attribuzione della campagna. Estrailo con la stessa finestra di attribuzione e la stessa definizione di valore della campagna, altrimenti il confronto con il target parte già sbagliato. Un paese al 25% di D0 e all’80% di All è un caso diverso da uno al 25% di D0 e al 30% di All, e con una sola metrica finiresti per confonderli.
Passo 2: combina in tre gruppi
Il verde vale 2, il giallo 1, il rosso 0. Somma entrambe le metriche.
| Voto D0 | All ROAS verde (2) | All ROAS giallo (1) | All ROAS rosso (0) |
|---|---|---|---|
| Verde (2) | 4, Good | 3, Good | 2, Watch |
| Giallo (1) | 3, Good | 2, Watch | 1, Exclude |
| Rosso (0) | 2, Watch | 1, Exclude | 0, Exclude |
Good (3 o 4): tieni, non toccare. Watch (2): controlla ogni mese. Exclude (1 o 0): l’algoritmo non lo sistemerà, perché il target blended continua a sembrare a posto.
Passo 3: aggiungi la dimensione temporale
Le medie nascondono la direzione. Due paesi possono avere lo stesso verdetto trimestrale e muoversi in direzioni opposte.
PH nella campagna worldwide è sceso dal 33% al 24% e poi al 17% di D0, con un All ROAS del 28% in un mese in cui la campagna ha toccato il 70%. GB è sceso al 17% ad aprile ed è tornato al 29% a maggio, con l’All ROAS vicino al target per tutto il tempo. Il verdetto è lo stesso, ma le traiettorie sono opposte. La vista mensile ti dice quale dei due merita pazienza.
Passo 4: agisci di conseguenza
Escludi i paesi che sono rimasti rossi su entrambe le metriche per tre mesi, con una spesa significativa dietro. Con oltre 200 paesi, qualcuno sembrerà rosso per puro caso, ed è per questo che aspetto tre mesi. Fissa una soglia minima di spesa prima di giudicare qualsiasi cosa, perché un paese con 80 $ alle spalle ha un ROAS troppo rumoroso per trarne conclusioni. Mi sono posto la stessa domanda per gli annunci, e in un account il ROAS prevedeva meglio la settimana successiva quando un annuncio aveva almeno 50 acquisti. Come leggo le coorti di pari età con quella soglia di acquisti, paese per paese, lo spiego in quali coorti stanno davvero ripagando. Metti i gialli in watch list e ricontrolla ogni mese. Lascia stare i Good. Dopo un’esclusione, il mese successivo valuta l’intera campagna sul suo ROAS blended e sul suo volume, perché il budget si sposta su altri paesi.
Cosa è emerso
Niente di tutto questo è visibile a livello di campagna.
Una barra piena vale il 50% della spesa. Una subscription app, cinque campagne tROAS, dal 1 marzo al 29 maggio.
Le tre più grandi di quel gruppo rosso: PH nella campagna worldwide (7,1K $ al 21% di D0), MX su Android (6,2K $ al 23%), DE in Tier1 (2,1K $ al 16%).
Quei 27,6K $ restano parcheggiati lì finché qualcuno non controlla a mano. Non scatta nessun alert e in Ads Manager niente diventa rosso. La vista di campagna diceva che andava tutto bene mentre succedeva. Se non sai se il tuo target blended nasconde un paese così, lo controllo io nel growth audit. Si può prenotare da solo, a qualsiasi livello di spesa.
Escludere quei paesi non restituisce comunque i 27,6K $. La spesa si sposta su altri paesi, e con essa cambiano anche costi e volume.
Cosa mi porto a casa
L’algoritmo è bravo a trovare chi compra. In questo account non era bravo ad abbandonare i paesi che avevano smesso di convertire. Ho visto la stessa cosa con gli annunci, dove Meta continuava a scalare cinque annunci che non avevano mai raggiunto il target D0.
L’intero sistema sta in quattro righe:
- Due metriche: D0 per la velocità, All ROAS per la verità.
- Tre colori per metrica, valutati rispetto al tuo target.
- Tre gruppi: tieni, controlla ogni mese, escludi.
- Un promemoria mensile in calendario.
Se preferisci che sia un secondo paio d’occhi a fare questo audit sul tuo account, la mia inbox è aperta.