J’ai audité 383K $ de dépenses tROAS sur Meta, pays par pays. 7 % étaient en échec sur la métrique exacte que l’algorithme optimise et c’était difficile à détecter.
Quelque part à l’intérieur d’une campagne qui atteignait son objectif tROAS, un pays tournait à 28 % de ROAS All depuis trois mois. Découvrir que l’algorithme se relâchait clairement a été un choc pour moi. L’objectif était de 70 %, aucun dashboard ne l’a signalé, mais je l’ai trouvé parce que je suis allé chercher.
Cet article raconte l’audit et le framework de scoring qui en est ressorti.
Le contexte
Une app subscription sur Meta. Cinq campagnes tROAS réparties par plateforme et tier géographique. Du 1er mars au 29 mai. 383K $ de dépenses sur plus de 200 pays avec de nombreux ad sets.
Un peu de vocabulaire pour qu’on lise les mêmes chiffres de la même façon. tROAS signifie que Meta enchérit vers un objectif de ROAS total. Cet objectif, c’est la mission de l’algorithme. Le ROAS D0 est notre signal précoce. Sur cette app, l’essentiel du revenu initial arrive le jour de l’install, donc le D0 indique rapidement si une cohorte a du sens. Quand j’ai testé cela sur 38 autres campagnes Meta, le ROAS D0 prédisait mieux le ROAS D28 que le coût par achat.
Les campagnes étaient jugées comme la plupart des campagnes, sur le ROAS blended comparé à l’objectif. Ce chiffre paraissait juste tout le trimestre.
Un seul chiffre blended cache tout
La campagne Tier1 iOS de cette période affichait un D0 blended de 26 %. À l’intérieur :
| Pays | ROAS D0 | ROAS All | Ce qui se passait |
|---|---|---|---|
| France | 49% | 66% | Solide, et en glissement, avec un ROAS All passé de 57% à 40% sur le trimestre |
| US | 23% | 62% | Sous l'objectif, et le plus gros dépensier de la campagne avec 49K $ |
| Allemagne | 16% | 31% | Sous l'objectif pendant trois mois d'affilée. Ça ne bouge pas |
Le D0 blended dit 26 %. Les pays à l’intérieur disent autre chose.
Trois situations complètement différentes. Un seul chiffre blended. Et la partie difficile à accepter, c’est que l’algorithme n’a pas semblé s’en soucier.
Pourquoi l’algorithme n’a peut-être pas corrigé ça
Le tROAS répond à un seul objectif blended, une moyenne sur tous les pays qu’un ad set cible. Meta peut utiliser la localisation au moment d’enchérir, mais rien dans l’objectif ne lui demande de maintenir chaque pays à 70 %.
Donc un mauvais pays se cache à l’intérieur d’une campagne qui a l’air saine en blended. Ce pays qui tournait à 28 % de ROAS All pendant que sa campagne affichait 70 % était en échec sur la métrique exacte que l’algorithme devait optimiser. Pas un proxy. La vraie cible. Le D0 l’a signalé tôt, le ROAS All l’a confirmé, et le chiffre au niveau campagne n’a jamais bronché.
Le mécanisme est simple. Les bons pays subventionnent les mauvais. Le blend reste médiocre, et médiocre a l’air de business as usual.
Ce n’est pas une question de remettre en question l’algorithme. L’algorithme répond à un seul chiffre blended, jamais un par pays, donc couvrir les pays manuellement vous revient. Pour la petite histoire, d’autres découpages possibles comme l’âge ou le genre paraissaient tout à fait normaux et attendus, donc ça m’a pris par surprise.
Le framework : deux métriques, trois couleurs, trois catégories
J’ai utilisé ce système de scoring pour séparer ce qu’on garde de ce qu’on coupe. Il tourne sur un export de breakdown par pays et environ trente minutes par mois.
Étape 1 : noter chaque métrique indépendamment
Chaque pays reçoit deux notes, une pour le ROAS D0 et une pour le ROAS All, chacune notée vert, jaune ou rouge selon des bandes construites à partir de l’objectif de la campagne. Les bandes de cette app venaient de son objectif tROAS à 70 %. Le ROAS All vert commence à l’objectif, et les bandes D0 viennent de ce qui, historiquement, correspond à l’atteindre. Reprenez la structure. Les chiffres, vous les dérivez vous-même, à partir de votre propre objectif et de votre propre courbe de passage du D0 au All.
Le D0 vous donne le signal initial que je regarde. Le ROAS All vous donne la vérité, c’est-à-dire ce que la campagne optimise. Ici, le ROAS All désigne le ROAS d’achat rapporté par Meta dans la fenêtre d’attribution de la campagne. Un pays à 25 % D0 et 80 % All est une bête différente d’un pays à 25 % D0 et 30 % All, et une seule métrique les confondrait.
Étape 2 : combiner en trois catégories
Vert vaut 2, jaune 1, rouge 0. Additionnez les deux métriques.
| Somme des deux scores | Catégorie | Que faire |
|---|---|---|
| 3 ou 4 | Good | Garder, ne pas toucher |
| 2 | Watch | Vérifier chaque mois |
| 1 ou 0 | Exclude | L’algorithme ne va pas le corriger, parce que l’objectif blended a toujours l’air bon |
Étape 3 : ajouter la dimension temporelle
Les moyennes cachent la direction. Deux pays peuvent porter le même verdict trimestriel et évoluer dans des directions opposées.
PH dans la campagne worldwide a décliné de 33 % à 24 % à 17 % D0, avec un ROAS All à 28 % sur un mois où la campagne atteignait 70 %. GB a chuté à 17 % en avril et est remonté à 29 % en mai, avec un ROAS All qui est resté proche de l’objectif tout du long. Même verdict agrégé. Trajectoires opposées. La vue mensuelle vous dit lequel mérite de la patience.
Étape 4 : agir
Excluez les pays rouges sur les deux métriques qui le sont restés pendant trois mois avec une dépense significative derrière eux. Avec plus de 200 pays, quelques-uns auront l’air rouges par hasard, c’est pour ça que j’attends trois mois. Fixez un plancher de dépense avant de juger quoi que ce soit, car un pays avec 80 $ derrière lui a un ROAS bruité, pas un verdict. J’ai vérifié la même question pour les publicités. Dans un compte, le ROAS prédisait mieux la semaine suivante dès 50 achats par publicité. Mettez les jaunes en Watch et revérifiez chaque mois. Laissez Good tranquille. Après une exclusion, jugez toute la campagne le mois suivant sur son ROAS blended et son volume, parce que le budget se déplace vers d’autres pays.
Ce que ça a révélé
Rien de tout cela n’est visible au niveau campagne.
46 % de la dépense notée Good. 47 % notée Watch. Et 7 %, soit 27,6K $ sur 17 combinaisons pays et campagne, avaient les deux métriques au rouge pendant trois mois d’affilée. Les trois plus gros : PH dans la campagne worldwide (7,1K $ à 21 % D0), MX sur Android (6,2K $ à 23 %), DE en Tier1 (2,1K $ à 16 %).
Ces 27,6K $ restent garés là où ils sont jusqu’à ce que quelqu’un regarde manuellement. Aucune alerte ne se déclenche. Rien ne passe au rouge dans Ads Manager. La vue campagne disait que tout allait bien pendant que ça se produisait. Si vous ne savez pas si votre objectif blended cache un pays de ce genre, je le vérifie dans le growth audit. Il peut être réservé seul, quel que soit le niveau de dépense.
Exclure ces pays ne rend pas non plus les 27,6K $. La dépense se déplace vers d’autres géos, et les coûts et le volume qui vont avec elle s’y déplacent aussi.
Ce qu’il faut retenir
L’algorithme est bon pour trouver des acheteurs. Il n’est pas bon pour abandonner les géos qui ont arrêté de convertir. J’ai vu la même chose avec les publicités, où Meta continuait de scaler cinq publicités qui n’atteignaient jamais l’objectif D0.
Tout le système tient en quatre lignes :
- Deux métriques : le D0 pour la vitesse, le ROAS All pour la vérité.
- Trois couleurs par métrique, notées contre votre propre objectif.
- Trois catégories : garder, vérifier chaque mois, exclure.
- Un rappel calendaire. Mensuel.
Si vous préférez qu’un second regard fasse tourner cet audit sur votre compte, ma boîte mail est ouverte.