Sur le papier, la promesse est simple : on saisit un mot-clé, et une vidéo publicitaire ressort de l’autre côté. C’est le discours de presque tous les outils de création IA du moment — et aussi le moyen le plus rapide de se raconter une histoire.
Dès qu’on fait tourner un vrai pipeline, tout ce que recouvre le mot « automatique » remonte à la surface. Que faire d’un mot-clé très niché, sans résultat organique ni donnée dans la bibliothèque commerciale ? Le système doit-il s’arrêter avec un statut « aucune preuve », ou envoyer un brief vide à la génération pour produire une vidéo que personne n’a validée ? Et si, en cours de route, un canal n’est pas accessible avec votre compte et ne renvoie donc aucune donnée, parle-t-on de « aucun résultat » ou de « requête impossible » ? Ces deux cas exigent des réponses opposées, alors que la plupart des outils en un clic les cachent derrière le même indicateur de chargement.
Un pipeline créatif conçu pour être exploité, et pas seulement montré en démo, ne tire pas sa valeur du bouton « générer » final. Il doit exposer honnêtement son état à chaque étape. C’est ce qui permet de le faire tourner en production et d’identifier précisément le point de rupture lorsqu’aucun résultat ne sort.
Commençons par le périmètre. Les étapes de recherche de ce pipeline interrogent les bibliothèques publicitaires et centres créatifs publics de chaque plateforme, avec votre propre compte, sur des données publiées par la plateforme pour tous les annonceurs. Aucune signature, aucun contournement. L’objectif ici est d’organiser ces données publiques pour en tirer des décisions et des assets exploitables, non d’expliquer comment les obtenir.
Les cinq maillons d’un pipeline de création publicitaire
Passer d’un mot-clé à une vidéo publicitaire implique cinq étapes successives. Ce ne sont pas de simples « étapes » indépendantes : chacune consomme le résultat de la précédente et alimente la suivante.
Détection de la demande. À partir d’un terme de recherche marché, recherchez des contenus organiques et vérifiez si le sujet suscite un intérêt réel auprès des utilisateurs. Cette étape produit un signal issu des contenus organiques.
Validation commerciale. Analysez deux signaux commerciaux. Le premier est l’opportunité liée au mot-clé : volume de recherche, concurrence et données côté dépenses. Le second correspond aux Top Ads qui performent dans le centre créatif. Ces deux catégories ont bénéficié d’investissements et d’une validation par le marché : elles ne disent donc pas la même chose que les contenus organiques.
Sélection des créateurs. Identifiez, dans la bibliothèque d’influenceurs, les créateurs adaptés à ce sujet et à ce marché.
Brief créatif. Transformez les preuves qualifiées recueillies dans les trois étapes précédentes en une spécification structurée, directement exploitable par un modèle de génération. C’est ici que se fixent la structure narrative, la forme de l’accroche et le marché cible.
Génération. Envoyez le brief à un modèle de génération vidéo pour produire une publicité native verticale au format 9:16.
Tout se joue à la quatrième étape. Les trois premières collectent des preuves, la cinquième engage des dépenses, et le brief est l’endroit où les preuves deviennent une décision. Si la collecte est approximative au départ, le brief décide sur du bruit et la vidéo est construite sur ce bruit. L’indicateur de chargement ne vous le dira jamais. Il faut rendre visibles les statuts de chaque étape.
Les trois premières étapes mériteraient chacune un article à part entière. Comment interpréter une courbe de rétention seconde par seconde, comment convertir une opportunité de mot-clé en un montant de budget unique et comment croiser une bibliothèque d’influenceurs avec une bibliothèque d’assets plutôt que de choisir sur le nombre d’abonnés font l’objet de trois autres articles. Ici, on s’intéresse aux difficultés supplémentaires qui apparaissent lorsqu’on les enchaîne.
Pourquoi un pipeline a besoin de six statuts, pas de succès ou échec
C’est la partie la plus importante de cet article.
La plupart des pipelines n’attribuent que deux issues à chaque étape : succès ou échec. Cela peut fonctionner avec une ou deux étapes. À cinq, le modèle s’effondre : « échec » mélange quatre situations qui demandent pourtant des actions totalement différentes.
Dans ce pipeline, une étape se termine avec l’un de ces six statuts :
completed: l’étape a été exécutée, a renvoyé un résultat qualifié et peut transmettre la suite.empty: l’étape a tourné, le canal était accessible, mais aucun résultat qualifié n’a été trouvé. La recherche a bien eu lieu, sans rien remonter.skipped: vous avez vous-même désactivé l’étape en réglant son quota à 0 ; elle n’a donc jamais été lancée.unavailable: l’étape devait s’exécuter, mais n’a pas pu le faire. Le canal est hors de portée de votre compte — l’opportunité de mot-clé, par exemple, ne couvre que certaines langues de marché — ou bien une dépendance est temporairement indisponible.blocked: les éléments reçus en amont sont insuffisants et une barrière a volontairement arrêté le flux. L’étape n’a pas échoué par elle-même : elle n’a pas été alimentée.ready: statut intermédiaire réservé à la génération. Le précontrôle est validé, mais vous n’avez pas encore demandé l’envoi. La vidéo peut être produite et attend votre feu vert.
L’enjeu n’est pas d’accumuler six libellés. Dès que empty, skipped, unavailable et blocked sont fondus dans un unique « failed », le pipeline devient inexploitable. Tous quatre signifient « pas de vidéo cette fois », mais la marche à suivre est différente dans chaque cas :
emptyindique un problème de données. Le marché n’a peut-être pas de volume, ou le mot-clé est trop étroit. Il faut modifier le terme ou assouplir le seuil, sans toucher au code.skippedreflète votre propre choix. Il n’y a rien à corriger, mais ce statut doit rester distinct deempty, faute de quoi vous pouvez passer une demi-journée à déboguer une étape jamais activée.unavailablesignale un problème de canal ou de configuration. Vérifiez la couverture du compte ou réessayez, au lieu de manipuler le mot-clé.blockedrévèle un problème en amont. Cette couche-ci fonctionne ; une étape antérieure n’a rien renvoyé. Il faut remonter jusqu’à l’étape enempty, pas lutter contre la couche bloquée.
Un « failed » opaque coupe l’accès à ces quatre pistes et vous laisse deviner. Voilà pourquoi un pipeline qui livre un résultat sans exposer son statut ne peut pas être exploité longtemps. À chaque incident, il faut tout rejouer pour comprendre ce qui s’est passé.
Le tunnel de preuve : ne mélangez pas signaux organiques et commerciaux
La détection de la demande ne s’arrête pas lorsque vous avez « trouvé quelques contenus ». Les résultats bruts doivent traverser un tunnel qui compte à chaque niveau : combien ont été remontés, combien étaient hors de la période visée, dans la mauvaise langue, hors sujet, trop peu vus pour constituer un échantillon, et combien se qualifient réellement. Lorsqu’une étape retourne empty, ce tunnel indique précisément où la preuve s’est évaporée. Aucun résultat trouvé, beaucoup de résultats mais tous périmés, ou des contenus présents mais aucun au niveau d’échantillon requis : ce sont trois formes de vide, avec trois actions différentes. Sans tunnel, empty n’est qu’un tableau vide, sans explication sur son origine.
Mais la règle essentielle dépasse le comptage : les signaux issus des contenus organiques et les signaux commerciaux doivent être comptés séparément, jamais additionnés dans un même « score de preuve ». Une Top Ad est un asset sur lequel quelqu’un a engagé de l’argent et que la plateforme a jugé performant. Dix vidéos organiques, aussi populaires soient-elles, montrent seulement que des personnes acceptent de regarder gratuitement. Une somme pondérée peut laisser dix vidéos organiques submerger une Top Ad par le volume, alors que cette dernière a beaucoup plus de valeur commerciale. Il faut d’abord répartir les résultats par catégories, puis les classer : les signaux commerciaux en premier, les contenus organiques qualifiés en repli s’il n’y en a pas, puis les créateurs seulement lorsqu’il ne reste rien d’autre. Les niveaux doivent être ordonnés selon leur crédibilité, pas selon leur nombre.
Cette distinction vaut aussi à l’échelle d’une seule vidéo. Pour évaluer un contenu organique, les likes et les commentaires constituent un type de signal ; les partages et les sauvegardes en constituent un autre. Partager ou sauvegarder est plus proche d’une intention commerciale : c’est le geste qui dit « à conserver » ou « à transmettre ». Ces actions pèsent donc plus que le simple engagement dans le classement. Le volume d’engagement montre qu’un contenu se regarde. Les partages et sauvegardes suggèrent qu’il pourrait réellement vendre. Même sur une seule vidéo, il faut lire ces signaux différemment.
(À part cela, « prendre une corrélation pour une causalité et la fréquence pour de l’efficacité » est l’erreur qu’un modèle commet le plus volontiers à l’étape d’attribution. Le prompt doit donc l’obliger à proposer un contre-exemple. C’est la même discipline de prompt que celle qui pousse le modèle à continuer de questionner un motif qu’il vient d’identifier dans l’article sur l’identification par empreinte. Là-bas, il s’agit des contre-preuves en rétro-ingénierie ; ici, du contre-exemple en attribution publicitaire. Le mécanisme reste le même.)
Deux validations avant génération : la plateforme et les preuves
Juste avant la génération, deux jugements sont faciles à fusionner — et il ne faut surtout pas le faire : « la plateforme peut-elle produire une vidéo ? » et « cette vidéo précise mérite-t-elle d’être produite ? » sont deux barrières distinctes.
La première correspond au précontrôle de la plateforme : le service de génération est-il disponible, le quota suffit-il, le prompt est-il autorisé ? Ce sont des vérifications d’infrastructure. La seconde concerne l’état des preuves de recherche : les données collectées contiennent-elles au moins un élément primaire qualifié ? C’est une vérification de contenu. Les deux barrières doivent être franchies avant l’envoi ; si l’une échoue, le statut devient blocked.
Les fusionner est tentant, car toutes deux répondent en apparence à la question « peut-on générer ? ». Pourtant, c’est ainsi qu’on crée l’échec le plus coûteux : la plateforme fonctionne, le quota est suffisant, le prompt est autorisé, le précontrôle passe — puis une vidéo est générée à partir de zéro preuve. Cela coûte bien plus qu’un échec net, car l’opération ressemble à une réussite et vous pourriez réellement investir dessus. Avec deux barrières séparées, ce cas reste correctement en blocked et indique que ce sont les preuves qui manquent, non le quota. « Pouvoir produire » n’équivaut jamais à « devoir produire » ; les réunir dans une même condition est l’erreur de conception la plus fréquente dans ce type de pipeline.
Le brief ne s’appuie que sur des preuves qualifiées
Le brief créatif est l’étape qui sollicite le plus le modèle de texte dans toute la chaîne. C’est aussi celle où la discipline de décontextualisation peut le plus facilement déraper.
Son rôle consiste à extraire des preuves qualifiées les structures réellement validées : quelle accroche revient dans les Top Ads, à quelle seconde la courbe de rétention atteint son pic, quel squelette utilisent les meilleurs contenus organiques parmi « exposer le problème, montrer le résultat, appeler à l’action ». Il synthétise ensuite ces structures dans une spécification de génération.
Une contrainte est toutefois non négociable : le texte brut des assets concurrents sert uniquement à identifier une structure et ne doit jamais entrer dans le prompt final de génération. Les noms de marque, volumes fournisseurs, quotas, prix et promesses de performance présents dans l’accroche d’un concurrent sont des affirmations propres à ce concurrent, pas une structure. Ils restent intacts dans les résultats de recherche, où vous pouvez les examiner et retracer l’asset à l’origine d’une idée, mais ils sont explicitement exclus de la construction du prompt de génération. Le modèle reçoit donc une instruction du type « crée une vidéo pour mon propre produit en utilisant ce squelette narratif et cette forme d’accroche », et non « copie cette phrase ».
Cette contrainte mérite l’effort. Verser directement le texte concurrent dans le prompt de génération peut produire une vidéo avec le nom de marque et la promesse tarifaire d’un tiers : au mieux un asset juridiquement risqué, au pire du plagiat manifeste. En ne fournissant que la structure, après retrait des affirmations, vous générez une vidéo qui réutilise une construction validée tout en racontant votre propre histoire. La recherche doit rester fidèle ; l’entrée de génération doit rester propre. Même lot de preuves, deux usages et deux lectures distinctes.
« Extraire d’un ensemble de preuves les structures véritablement validées, exclure activement les affirmations des concurrents et fournir un contre-exemple pour chaque “structure efficace” » teste exactement les mêmes qualités qu’un raisonnement solide et une capacité à se contredire. C’est la même répartition des rôles que dans ce qu’un modèle devrait et ne devrait pas faire en rétro-ingénierie : le modèle est fort pour formuler des hypothèses et faible pour vérifier des faits ; la vérification doit donc s’appuyer sur vos preuves et vos tests.
Attribuer le bon modèle à chaque tâche
Le modèle de texte n’exécute pas une seule fonction dans ce pipeline. Il assure quatre tâches aux exigences très différentes, avant la partie de génération d’images et de vidéos. Avec un modèle unique de bout en bout, vous gaspillez de l’argent sur les traitements par lot ou perdez en précision sur le brief.
Étape | Capacité requise | Choix | model id |
|---|---|---|---|
Lire en masse l’ensemble des preuves, avec des dizaines d’assets et des courbes seconde par seconde | Contexte long | Kimi K3 |
|
Extraire les champs structurés de chaque asset : accroche, type de promesse, mécanisme d’urgence | Économique, centaines d’appels à forte concurrence | Claude Sonnet 5 |
|
Rédiger le brief : choisir les structures, exclure les affirmations concurrentes, produire des contre-exemples | Raisonnement solide, capable de se contredire | Claude Opus 5 |
|
Attribuer l’origine d’un statut : lorsqu’une étape est vide ou bloquée, lire le tunnel et identifier le niveau qui a tari les preuves | Raisonnement intermédiaire, explications appuyées sur les chiffres | GPT-5.6 Sol |
|
Générer la vidéo : publicité verticale 9:16 | Génération d’images et de vidéos | Génération sur le site | voir |
Le niveau dédié au brief est celui qu’il vaut la peine de tester séparément. C’est la seule étape où changer de modèle modifie visiblement le résultat. Le test est précis, et c’est le seul moment de cet article où vous devez exécuter quelque chose vous-même :
À partir d’une exécution de pipeline réellement terminée, récupérez un lot de preuves qualifiées : accroches de Top Ads, temps forts des courbes de rétention, profils de créateurs, opportunité de mot-clé et quelques contenus organiques gagnants.
Avec le même prompt de brief — utiliser uniquement la structure des assets ; exclure explicitement les noms de marque, prix, quotas et promesses de performance ; proposer une hypothèse de contre-exemple pour chaque « structure efficace » — interrogez séparément
claude-opus-5etgpt-5.6-sol.Ne regardez que deux points : le modèle a-t-il laissé passer les affirmations spécifiques du concurrent dans le prompt de génération — toute fuite est un échec — et, lorsqu’il affirme qu’« une structure fonctionne », apporte-t-il un contre-exemple ou confond-il fréquence et efficacité ?
Ces deux critères déterminent votre choix. Ils décident directement si la vidéo générée « copie le script d’un concurrent » ou « réutilise une structure validée ».
Un seul essai suffit à voir la différence, bien plus directement qu’avec n’importe quel benchmark. Le niveau d’extraction de champs par lot (Sonnet) n’a guère besoin d’être départagé : tout modèle qui tourne convient. Quant au niveau de contexte long (Kimi), il est choisi pour vous éviter d’écrire votre propre récupération découpée en segments.
Génération vidéo : soumettre, attendre, conserver le task_id
La génération ne se résume pas à lancer un appel et récupérer une vidéo. Une génération vidéo est une tâche lente : vous la soumettez, elle entre en file d’attente, puis vous devez interroger son statut jusqu’à un état terminal pour connaître le résultat. Cette étape a trois issues qui doivent rester distinctes :
Retour immédiat après soumission. La tâche entre dans la file, vous recevez un
task_idavec le statutprocessing. Vous pouvez faire autre chose au lieu d’attendre.Attente de l’état terminal. Interrogez le statut jusqu’à
completedoufailed. C’est le résultat que vous cherchiez.Délai dépassé côté attente. Vous avez attribué un budget de temps au polling, mais ce temps s’est écoulé avant l’obtention d’un résultat. Il ne faut pas considérer la tâche comme échouée. Conservez le
task_id, marquez-la comme « délai dépassé, non terminée », puis reprenez ultérieurement l’attente avec cet identifiant plutôt que de la soumettre à nouveau. La resoumission revient à payer une deuxième fois.
Le troisième cas est le plus souvent mal géré. Beaucoup d’implémentations assimilent « le polling a expiré » à « la tâche a échoué » et abandonnent une génération qui est encore en cours de rendu, simplement plus lente que prévu. Distinguer « la tâche a échoué » de « j’ai cessé d’attendre » est le cœur de cette étape. Le premier est un état terminal. Le second signifie seulement que vous avez interrompu l’attente cette fois-ci. La tâche existe toujours, son identifiant aussi : reprenez-la.
Si toutes les preuves sont vides, ne lancez rien
Si l’on rassemble toutes les contraintes précédentes, on obtient la règle la plus contre-intuitive et la plus utile de ce pipeline : lorsque toutes les preuves sont vides, ne soumettez pas de génération.
Détection de la demande empty, validation commerciale empty, sélection des créateurs empty. Aucun élément de preuve primaire qualifié ne remonte des trois voies. Le brief passe en blocked, la barrière de préparation fondée sur la recherche échoue dans le précontrôle de génération, tout le pipeline s’arrête en blocked et pas une image n’est générée.
Cela peut donner l’impression de « n’avoir rien fait ». C’est pourtant l’étape la plus difficile à réussir, et celle qui économise le plus d’argent. Un pipeline qui sait seulement avancer utilisera alors un brief générique, générera une vidéo qui ne parle à personne et affichera « succès ». Vous penserez que le système a fonctionné. En réalité, il aura dépensé le coût d’une génération sans aucune information et vous aura envoyé un faux signal de réussite.
La moitié de la valeur d’un pipeline tient à sa capacité de générer. L’autre moitié tient à sa capacité à reconnaître qu’il ne doit pas générer. La première relève de la capacité ; la seconde, de la discipline. Et cette discipline dépend des six statuts décrits plus haut. Sans séparation entre empty et blocked, il n’existe pas de signal clair « tout est vide » sur lequel fonder la décision de ne pas soumettre.
Une seule clé pour l’analyse et la génération
La conception du pipeline est terminée. Reste une friction purement technique, qui est précisément celle sur laquelle la plupart des équipes butent réellement.
Les modèles nécessaires à cette chaîne viennent de deux catégories de fournisseurs. Les niveaux textuels — lecture des preuves, extraction des champs, rédaction du brief et attribution — proviennent de plusieurs fournisseurs, tandis que la génération est assurée par un service distinct d’images et de vidéos. Vous pouvez intégrer un SDK, un système d’authentification et un format d’erreur pour chaque niveau. Ou, comme la plupart des gens, utiliser un seul modèle pour tout, gaspiller de l’argent sur les traitements par lot, perdre en précision sur le brief, puis connecter en plus une plateforme vidéo séparée. Pour économiser l’effort d’intégration, vous faites perdre un cran de qualité à tout le pipeline.
AIReiter supprime cette couche. Une clé, une interface compatible OpenAI, les quatre niveaux textuels derrière, et un changement de modèle limité au champ model dans le corps de la requête. La génération d’images et de vidéos est accessible sur le même site avec la même clé : dès que le brief est prêt, vous pouvez tenter la génération directement dans /chat.
# Write the brief: the reasoning tier
curl https://aireiter.com/api/v1/chat/completions \
-H "Authorization: Bearer $AIREITER_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-opus-5",
"messages": [{"role": "user", "content": "<brief prompt + qualified evidence bundle>"}]
}'
# Extract fields in bulk: change the model field, leave the rest
# "model": "claude-sonnet-5"
# Stage attribution: "model": "gpt-5.6-sol"
# Read long evidence at once: "model": "kimi-k3"
Si vous utilisez déjà le SDK OpenAI, pointez base_url vers https://aireiter.com/api/v1 sans rien changer d’autre. Avec le SDK Anthropic, envoyez une requête POST /api/v1/messages en utilisant la même clé.
La tarification correspond à la structure de coûts de ce pipeline. L’étape qui concentre le plus d’appels est l’extraction de champs par lot : de dizaines à centaines d’assets, un appel chacun, soit l’essentiel du coût côté texte. La remise de 30% sur Claude s’applique précisément là : Sonnet exécute le lot et Opus affine le brief, pour les deux niveaux Claude. L’attribution tourne sur GPT-5.6 à moitié prix. Les longs ensembles de preuves passent par Kimi K3 avec la même clé. La génération constitue une ligne de coût distincte, facturée à chaque exécution, mais elle ne se lance que lorsque la barrière de preuve est franchie et qu’une vidéo doit réellement être produite. La règle « ne pas soumettre lorsque tout est vide » vous fait elle-même économiser des coûts de génération.
Essayer sans inscription : envoyez manuellement un lot de preuves qualifiées au prompt de brief et vérifiez s’il laisse passer les noms de marque et prix des concurrents dans l’entrée de génération, puis automatisez le processus une fois le résultat fiable.
En conclusion
Dans un processus « du mot-clé à la publicité finalisée », le véritable travail d’ingénierie ne se trouve pas dans la publicité finalisée. Il réside dans la partie intermédiaire qui transforme des données publiques en preuves qualifiées, puis en un brief propre.
La possibilité d’exploiter cette chaîne repose sur trois éléments. Chaque étape doit aboutir à l’un de six statuts plutôt qu’à un vague « succès ou échec », afin que empty, skipped, unavailable et blocked indiquent chacun une action claire. Les preuves doivent être réparties et hiérarchisées plutôt qu’additionnées, pour qu’un signal fort ne soit pas noyé dans le volume de signaux faibles. Enfin, « pouvoir produire » et « devoir produire » doivent être séparés par deux barrières, afin qu’un ensemble de preuves entièrement vide s’arrête proprement avant la génération.
Le modèle est un outil qui exécute des tâches dans cette chaîne, pas son pilote. Il lit les preuves, extrait des champs, rédige le brief, explique l’attribution, puis un modèle de génération produit la vidéo à la fin. La décision de poursuivre dépend toujours des statuts et des barrières, jamais du niveau de confiance du modèle. Mettez cette architecture en place, reliez les quatre niveaux textuels et la génération sur le site avec une seule clé, et le pipeline peut réellement aller du mot-clé à la publicité finalisée.