



| Poste | Coût |
|---|---|
| Voix off (8 voix, longues + courtes) | 61 crédits Hedra au total |
| 1 clip vidéo Google Flow de 6 s | 10 crédits (24 clips ≈ 240 crédits) |
| Montage, écran de fin, stories fixes | 0 € (outils gratuits) |
Chaque persona ouvre une porte d'entrée différente : un frein précis que vit une vraie partie de ta cible. Chez NoDream (coaching sportif) :
| Persona | Le frein |
|---|---|
| Karim, 38 ans | Horaires décalés : jamais le bon créneau |
| Thomas, 31 ans | Ancien sportif : peur d'être mauvais |
| Sofia, 26 ans | Jamais fait de sport : peur du ridicule |
| Damien, 45 ans | Dix heures assis par jour |
| Hugo, 27 ans | Inscrit en salle, mais sans plan |
| # | Temps du récit | Exemple NoDream (Karim) |
|---|---|---|
| 1 | Qui + la situation | « À trente-huit ans, Karim travaillait quand les autres dormaient. » |
| 2 | Le vrai frein (jamais « la paresse ») | « Le sport, c'était toujours pour le prochain planning. » |
| 3 | La rencontre avec l'app | « Un soir, il tombe sur NoDream. Pas un cours à heure fixe. Juste une phrase : Ta mission du jour. » |
| 4 | Le geste | « Il la lance. Le lendemain, il recommence. » |
| 5 | Ce que l'app ne fait pas (vrai par construction) | « L'app ne lui a jamais demandé l'heure. » |
| 6 | Une progression sobre | « Trois jours. Puis dix. » |
| 7 | La bascule | « Karim n'a pas trouvé le bon créneau. Il a arrêté d'en chercher un. » |
| 8 | Signature + appel à l'action | « NoDream. Pas de rêve. Des résultats. Ta première mission t'attend. » |
Le temps n° 5 est la trouvaille de la série : on transforme une absence (pas d'horaire imposé, pas de classement, pas de fil social) en argument. C'est toujours vrai, donc toujours défendable.
30 minutes, par écrit, avant de générer quoi que ce soit.
| Question | Ce qu'on attend |
|---|---|
| Le produit en une phrase | Et sa signature (ex. « Pas de rêve. Des résultats. »). |
| La promesse visible | Quelle phrase ou quel écran de l'app résume ce que la personne obtient ? (NoDream : l'écran « Ta mission du jour ».) |
| Les preuves | Quels écrans réels, remplis de données de démonstration, peux-tu montrer ? |
| Les interdits du secteur | Santé, finance, enfants, alcool… (voir étape 3). |
| Le prix et l'offre exacts | Lus dans la vraie grille tarifaire, pas de mémoire. |
| Le budget | Crédits images, vidéo, voix — et le nombre de personas visé. |
| Les formats | 9:16 d'abord (réseaux), 16:9 ensuite (YouTube, site). |
| Question | Si oui → |
|---|---|
| Le personnage dit-il ou suggère-t-il un effet santé (sommeil, poids, moral, dos, souffle) ? | Retirer. Un témoignage qui évoque un effet santé est une allégation de santé. |
| Un avant/après, un chiffre corporel, une balance, une comparaison entre personnes ? | Retirer. |
| Un chiffre ou un prix affiché ? | Vrai à la date de diffusion et dans la grille réelle ? |
| On parle d'essai gratuit ? | L'offre montrée l'inclut-elle vraiment ? |
| Un nombre d'utilisateurs, une note, un « ils sont X à… » ? | Interdit s'il n'est pas mesuré. |
| L'écran montré contredit-il la voix ? | Changer d'écran (étape 5). |
| Le texte colle-t-il à l'image (âge, lieu, objets visibles) ? | Sinon, adapter l'un ou l'autre. |
| Le personnage ressemble-t-il à une personne réelle ? | Interdit. Jamais de photo d'une vraie personne en référence. |
Dans Flow (interface au 01/08/2026) :
<Marque> - <Prénom>.Modèle de description de personnage (en anglais, ça marche mieux) :
<Prénom>, a <nationality> <man/woman> in <his/her> <age range>, <job or situation>. <Hair>, <distinctive feature>, <plain simple clothing>. Reserved and understated: never performs for the camera, no heroic posing, no slow motion. Natural cinematic realism, muted desaturated colors, soft available light. No visible text or logos.
Les 6 plans type (à adapter au frein) :
| Plan | Contenu | Exemple Karim |
|---|---|---|
| 1 | Le lieu du frein | Il sort de son atelier au petit matin gris |
| 2 | Seul, téléphone en main | Dans sa cuisine la nuit, il regarde son téléphone |
| 3 | Premier essai, hésitant | En tenue sur le tapis du salon, il se met en position |
| 4 | Effort régulier | Il enchaîne des exercices au sol |
| 5 | Respiration, calme | Devant la fenêtre à l'aube, une tasse à la main |
| 6 | Vie ordinaire, léger sourire | Il marche dans une rue, sans cadrage héroïque |
Règles de sortie :
PRENOM-N-slug-v1.mp4 (ex. KARIM-3-premiere-serie-v1.mp4).La trame de plans NoDream (texte à l'écran entre guillemets) :
| Plan | Version longue | Version courte |
|---|---|---|
| 1 | Clip 1 — « Karim, 38 ans. » | Clip 1 — « Karim, 38 ans. » |
| 2 | Clip 2 — l'accroche | Écran app — « Ta mission du jour. » |
| 3 | Écran app — « Ta mission du jour. » | Clip 3 — « Il la lance. » |
| 4 | Clip 3 — « Il la lance. » | Écran app — « Félicité d'être venu. » |
| 5 | Écran app — « Félicité d'être venu. » | Clip 6 — signature |
| 6 | Clip 4 — « Trois jours. Puis dix. » | |
| 7 | Clip 5 — la bascule | |
| 8 | Clip 6 — « NoDream. Pas de rêve. Des résultats. » |
Deux versions de chaque pub :
Puis chaque version en 9:16 et en 16:9 — 8 fichiers par persona.

Même histoire, en une image. Gabarit :


Deux dossiers, jamais mélangés :
a-televerser/ : l'image nue, sans « Sponsorisé » ni bouton dessiné — la plateforme les ajoute. Un faux bouton dans l'image = pub trompeuse.maquette/ : l'image dans un faux fil Instagram, pour présenter uniquement.Le bouton se choisit dans le gestionnaire de pubs : « S'inscrire » pour une app qui s'ouvre dans le navigateur, « Installer » seulement pour une fiche de store. Un chiffre lié à la date (« 4 mois d'avance » en septembre) → la date dans le nom du fichier (05-avance-sept2026.png), et on régénère le mois suivant.
Chacun a coûté du temps ou des crédits sur NoDream. Ne les repaie pas.
| Piège | Ce qui s'est passé | Parade |
|---|---|---|
| Témoignage santé | « Son sommeil aussi. » dans la pub de Marc | Phrase retirée, voix régénérée |
| Écran qui contredit la voix | « 75 kg » affiché sous « pas pour un chiffre sur la balance » | Remplacé par un écran d'effort |
| Deux personas identiques | Jessica et Chloé : même texte, prénom changé | Chloé réécrite sur un autre frein |
| Sujet médical caché | Léa reprend le sport « entre deux tétées » : juste après un accouchement, c'est médical | « Le deuxième avait six mois », âge compatible avec la poussette visible |
| Plan trop héroïque | Marche triomphale au ralenti | Refait en « pas ordinaire, léger sourire » |
| Visage qui change | Prompts indépendants pour chaque plan | Images de référence + chaînes de 3 modifications max |
| Écrans qui tremblent | Zoom lent sur une capture d'interface | Écrans d'app immobiles |
| Vidéo plus courte que la voix | Coupure silencieuse de l'outil de montage | Vérifier durée du clip ≥ durée du plan |
| 9:16 flou | Recadrage d'un clip 16:9 en 720p | Régénérer en vertical |
| Faux bouton dans l'image | « Sponsorisé » + « Installer » dessinés dans le PNG | Deux dossiers : à publier / maquette |
| Offre fausse | « Essai gratuit » sur une formule qui n'en a pas | Lire la vraie grille tarifaire |
| Chiffre périmé | « 4 mois d'avance » faux dès octobre | Date dans le nom, régénérer |
| Captures ratées | 7 captures sur 7 = écran de chargement | Attendre la disparition du chargement |
| Texte parasite | Nom de magazine cité dans un prompt → écrit dans l'image | Décrire le style, jamais un nom |
| Pubs trop longues | 48-57 s pour une fenêtre de 15-30 s | Toujours une version courte |
À lire avant d'investir du temps et du budget.
| # | Prénom, âge | Le frein (1 phrase) | Ce que l'app ne fait PAS (vrai) | Écran preuve | Voix |
|---|---|---|---|---|---|
| 1 | |||||
| 2 | |||||
| 3 |
À <âge en lettres> ans, <Prénom> <situation concrète>. <Détail qui rend la situation vraie>. <Le frein, formulé comme une peur ou une contrainte, jamais comme de la paresse>. Un soir, <il/elle> tombe sur <Marque>. Pas <ce qu'il/elle redoutait>. Juste une phrase : <la promesse visible à l'écran>. <Ce que l'app propose, concrètement>. <Il/Elle> la lance. Le lendemain, <il/elle> recommence. <Ce que l'app ne lui a jamais demandé / imposé>. <Petite reconnaissance réelle de l'app>. Trois jours. Puis dix. <Prénom> n'a pas <le grand changement attendu>. <Il/Elle> a <le petit changement vrai>. <Marque>. <Signature>. <Appel à l'action>.
[<Prénom>] <action simple>, <lieu>, <moment de la journée et lumière>, <émotion sobre>. <Cadrage : caméra fixe / pas de ralenti / pas de cadrage héroïque>.
mon-projet-pubs/
_CADRAGE.md la fiche de la partie 2
_PERSONAS.md scripts longs + courts + contrôle de conformité
_PROMPTS-FLOW.md descriptions des personnages + 6 plans chacun
ecrans/ captures réelles de l'app (compte démo)
karim-clips/ KARIM-1-atelier-v1.mp4 … KARIM-6-rue-v1.mp4
karim-story/ vo_karim_long.mp3, vo_karim_court.mp3, minutages, 8 montages
_endcard/ image de fin + versions avec fin
_stories-statiques/
a-televerser/ les images à publier
maquette/ pour présenter seulement
| Besoin | Utilisé pour NoDream | Voie sans code | Coût |
|---|---|---|---|
| Écrire et contrôler | Claude | Tout assistant IA + la checklist | Abonnement |
| Personnages et clips | Google Flow | Idem | Crédits de l'abonnement Google AI |
| Voix | Hedra (voix françaises) | ElevenLabs | ~12 crédits / voix longue |
| Minutage des phrases | Whisper (local) | Sous-titres auto CapCut | 0 € |
| Montage | Skill saas-ad-studio (ffmpeg + storyboard) | CapCut ou DaVinci Resolve | 0 € |
| Écran de fin | Python + Pillow | Canva | 0 € |
| Stories fixes | Page HTML → PNG (Playwright) | Canva ou Figma | 0 € |
saas-ad-studioCe que c'est. Un skill Claude Code : un dossier avec un mode d'emploi (SKILL.md) et des scripts, que Claude charge quand on lui dit « fais une pub pour <app> ». Créé le 01/07/2026 à partir du tutoriel de Duncan Rogoff « Cinematic AI Ads From Any Website » (formation Learn Claude Code), en remplaçant l'outil payant Higgsfield par des outils déjà en place.
C:\Users\Utilisateur\.claude\skills\saas-ad-studio\. Pour le transmettre, il faut copier le dossier (voir plus bas).| Fichier | Rôle |
|---|---|
SKILL.md | Le mode d'emploi que suit Claude : les 5 étapes, le format du storyboard, les coûts |
references/ad-best-practices.md | Bonnes pratiques : cadre ABCD (YouTube/Ipsos), émotion (System1, Kantar), formats sociaux, règles françaises, checklist |
references/fable-notes.md | Notes de jugement : une pub PROMET, chaque chiffre doit être prouvé ; la pub se juge sans le son |
assets/brand_dna.py | Lit le site de la marque : nom, slogan, couleur, image principale |
assets/adgen.py | Le moteur : lit storyboard.json et rend la vidéo (clips, captures en cadre d'écran, texte incrusté, zoom lent sur les images) |
assets/music_lyria.py | Musique de fond générée par Google Lyria 3 (optionnel) |
Ses 5 étapes : 1. lire la marque (brand_dna.py) · 2. proposer 3 concepts et en recommander 1 · 3. écrire le storyboard · 4. rendre la vidéo (adgen.py) · 5. montrer, corriger, relancer.
Ce que les pubs récit NoDream ont ajouté par-dessus (scripts à part, rangés dans E:\article\nodream-ads\) :
"type": "file".adgen.py sort une vidéo muette. La voix off vient de _make_vo_nouveaux.py (voix Hedra + minutage Whisper) et _build_nouveaux.py (trame de l'étape 7, durées, 8 versions, appel d'adgen.py, ajout de la voix)._endcard/build_endcard.py (écran de fin) et _stories-statiques/build_stories.py + render_png.mjs (stories fixes).KIT-PUBS-VIDEO-RECIT fait déjà tout ça (chemins portables, hedra_client.py dans assets/, .env.example, aucune clé) : suivre son LISEZ-MOI.md. Les étapes ci-dessous servent seulement si on repart du skill d'origine.saas-ad-studio dans ~/.claude/skills/ sur sa machine.adgen.py ligne 20 (dossier de hedra_client.py — ce fichier n'est pas dans le skill, le fournir aussi) ; music_lyria.py ligne 16 (chemin du .env) ; adgen.py ligne 24 (police Segoe UI Black, Windows seulement)..env avec ses clés : HEDRA_API_KEY (seulement pour générer des images) et GEMINI_API_KEY (seulement pour la musique). Ne jamais copier le .env d'Audrey, ni ses identifiants de voix personnels.hedra_client.py doit juste être présent.
Le montage automatique lit un fichier storyboard.json : une liste de plans, chacun avec son fichier (clip ou capture), sa durée, son point d'entrée dans le clip et son texte.
{
"brand": { "name": "MaMarque", "accent": "#E9B949" },
"aspect_ratio": "9:16",
"music": null,
"shots": [
{ "id": 1, "type": "file", "image": "karim-clips/KARIM-1-atelier-v1.mp4",
"start": 0.3, "duration": 5.2, "text": "MaMarque — Karim, 38 ans." },
{ "id": 2, "type": "file", "image": "ecrans/dashboard.png",
"motion": "none", "fit": "contain", "duration": 4.8, "text": "Ta mission du jour." }
]
}
_PERSONAS.md, génère les voix, calcule le minutage, écris le storyboard selon la trame de l'étape 7, monte les 8 versions et montre-moi 3 images de chaque. »