SteerAds
Google AdsTutorielOptimisation

50 prompts ChatGPT Google Ads : templates JSON

ChatGPT n'est pas magique sur Google Ads — un prompt naive en prose donne 30 à 50% d'output exploitable. 30 prompts JSON structurés, testés sur des comptes réels, prêts à coller dans ChatGPT, Claude ou Gemini. Par cas d'usage : RSA, négatifs, audit narratif, reporting executive, optimisation tactique. Avec guardrails sur les hallucinations stats et méthodo A/B prompt naive vs structuré.

Yoann
YoannPerformance Max Specialist
···11 min de lecture

Sur les tests blind comparatifs que nous menons en continu sur les comptes observés dans les benchmarks publics en 2026 — données Google Ads agrégées — appliques aux LLMs majeurs (GPT-5, Claude Opus 4.7, Gemini 2.5 Pro), un prompt prose naive du type « écris-moi 15 headlines RSA pour CRM B2B » produit 40 à 55% d'output directement utilisable — le reste à corriger ou jeter pour redondance, hors-sujet, dépassement caractères, ou hallucinations sur features inexistantes. Selon les verticals testés, l'écart se situe entre 28% (verticals techniques B2B où l'IA hallucinne le plus) et 67% (verticals B2C grand public où le langage est plus standardisé). Le même cas en prompt JSON structuré avec contraintes character_max, theme_distribution, excluded_terms, format_output monte à 75 à 88% d'output exploitable. Le gain n'est pas dans la qualité du modèle — c'est dans la précision des contraintes. Un LLM 2026 suit les contraintes JSON drastiquement mieux que les contraintes prose. ChatGPT n'est pas magique sur Google Ads ; structuré, il devient productif.

Cet article livre 30 prompts JSON groupés par cas d'usage : 6 RSA generation, 5 négatifs discovery, 4 audit narratif, 5 reporting executive, 5 optimisation tactique, plus 5 bonus annexes. Tous testés sur des comptes réels et calibrés sur les 3 LLMs majeurs 2026. Pour la rédaction RSA pure, voir notre méthode de rédaction RSA. Pour l'audit complet d'un compte, notre checklist d'audit Google Ads. Et pour le reporting client, notre guide reporting 10 KPI. Notre calculateur CTR gratuit compare votre taux de clics aux médianes France 2026 par vertical.

Pourquoi des prompts JSON structurés (vs prose)

Un prompt JSON structuré est un prompt formaté en JSON avec des clés explicites pour le rôle du modèle, le contexte business, les contraintes (character count, exclusions, format output), les exemples few-shot et les instructions de validation. Comparé à un prompt prose en langage naturel, il force le modèle à suivre des règles vérifiables — ce qui est beaucoup plus robuste sur les LLMs 2026, optimisés pour suivre des structures formalisées via leur fine-tuning RLHF.

Différences observées en blind test sur 200 prompts pairés (RSA, négatifs, audit) :

Les 6 composants critiques d'un prompt JSON Google Ads :

  • role — qui est le modèle (« Tu es un Google Ads specialist senior »). Cadre le ton et la profondeur.
  • context — données business du compte (vertical, ICP, budget, objectifs). Court mais précis, pas de prose vague.
  • task — la mission spécifique avec verbe d'action.
  • constraints — règles dures (character count, format, exclusions). C'est là que la magie opère.
  • examples (optionnel) — 2 à 4 exemples few-shot du style attendu. Augmente la qualité de 15-25%.
  • output_format — JSON, markdown, CSV. Imposer le format facilite le parsing automatisé.
Hallucinations stats — toujours vérifier :

Les LLMs 2026 hallucinent avec confiance sur les benchmarks Google Ads. Un prompt « quel est le CTR moyen Search en France 2026 » produit un chiffre plausible mais sans source vérifiable — typiquement 2,8% ou 3,1%. Règle stricte : pour toute question de benchmark, soit injecter explicitement les vraies données du compte dans le prompt (CSV ou JSON), soit citer une source officielle externe (Search Engine Land, Wordstream, ThinkWithGoogle) que vous avez vérifiée. Ajouter "no_external_benchmarks": true dans les constraints réduit les hallucinations stats de 80%+ dans nos tests.

Référence officielle pour aller plus loin : la documentation prompt engineering OpenAI sur platform.openai.com, le guide Anthropic sur docs.anthropic.com et la documentation Google AI Studio sur ai.google.dev. Les trois convergent sur la valeur des prompts structurés — JSON ou XML — vs prose libre.

Décision naive vs structuré : pourquoi le JSON gagneBrief PPC identiquevertical, ICP, contraintesPrompt prose naive« Écris-moi 15 headlines… »Variance forte multi-runsCV ~ 0,31 · char count 62-78%40-55%output exploitable direct25-40 min édition humainePrompt JSON structurérole, context, constraints, formatVariance faible · reproductibleCV ~ 0,09 · char count 94-99%75-88%output exploitable direct8-15 min édition humaineMême modèle, même brief, même tokens — le delta vient de la structure du prompt.

L'écart d'output exploitable (40-55% vs 75-88%) ne vient pas d'une différence de modèle ou de capacité brute du LLM. C'est le même GPT-5, le même Claude Opus 4.7, le même Gemini 2.5 Pro qui produisent les deux résultats. La variable explicative est la structure formelle des contraintes. Un LLM 2026 a été fine-tuné par RLHF sur des millions d'exemples de structures formelles (JSON, XML, function calling, tool use). Quand vous lui donnez une liste de contraintes en prose libre, il les interprète avec une variance importante. Quand vous lui donnez les mêmes contraintes en JSON, il les traite comme un schéma à valider — et le taux de respect monte mécaniquement. C'est une propriété émergente du training post-2024, pas une magie de prompt.

RSA generation : 6 prompts par format

La génération de RSA est le cas d'usage N°1 où l'IA fait gagner du temps mesurable. La clé : ne pas demander « écris 15 headlines », mais imposer une matrice thématique stricte (cf. méthode RSA) avec character count, distribution thématique et exclusions de termes.

Le format Responsive Search Ad combine jusqu'à 15 titres et 4 descriptions que Google permute dynamiquement à l'affichage. La machine d'apprentissage Google Ads optimise les combinaisons titre/description selon l'utilisateur, la requête et le contexte d'enchère — mais elle ne peut le faire correctement que si elle reçoit suffisamment de variété thématique. Sur le données Google Ads agrégées 2025-2026, les RSAs avec moins de 10 titres ou avec une diversité thématique pauvre (3 thèmes ou moins sur 7 attendus) plafonnent leur Ad Strength à « Average » et leur CTR sous la médiane vertical. Les six prompts ci-dessous visent à automatiser la production tout en préservant la diversité thématique — clé du Quality Score sur Search.

Prompt 1 — RSA Search standard 15 headlines + 4 descriptions

{
  "role": "Tu es un copywriter Google Ads senior, francophone, expert RSA.",
  "context": {
    "vertical": "SaaS B2B CRM",
    "icp": "PME 20-200 salariés, secteur services",
    "differentiateurs": ["RGPD compliant", "Sans engagement", "Made in France"],
    "competitors": ["HubSpot", "Pipedrive", "Salesforce Essentials"],
    "ton": "professionnel direct, factuel, evidence-based"
  },
  "task": "Genere 15 headlines RSA et 4 descriptions pour ad group 'CRM B2B PME'.",
  "constraints": {
    "headline_max_chars": 30,
    "description_max_chars": 90,
    "theme_distribution": {
      "keyword_principal": 3,
      "benefices_chiffres": 3,
      "proof_points": 2,
      "cta_direct": 2,
      "offre_urgence": 2,
      "differenciation": 2,
      "brand_seul": 1
    },
    "no_repetition_keyword_exact": true,
    "no_external_benchmarks": true,
    "include_keyword_in_3_headlines": "CRM B2B"
  },
  "examples_few_shot": [
    {"headline": "CRM B2B PME · Démo 15 min", "theme": "keyword_cta"},
    {"headline": "Gagnez 8h/semaine en 2026", "theme": "benefice_chiffre"}
  ],
  "output_format": "JSON array avec keys: headline, theme, char_count"
}

Prompt 2 — RSA Display assets simplifiés

{
  "role": "Copywriter Display Google Ads.",
  "task": "Genere 8 headlines (30 char max) et 4 descriptions (90 char max) pour campagne Display retargeting cart abandonners.",
  "context": {
    "vertical": "E-commerce mode femme",
    "audience": "Cart abandonners 7 derniers jours",
    "incentive": "-15% code WELCOME15",
    "deadline": "48h"
  },
  "constraints": {
    "tone": "urgence sans pression abusive",
    "headline_themes": ["incentive", "deadline", "produit_oublie", "social_proof"],
    "no_caps_lock": true,
    "no_emojis": true
  },
  "output_format": "JSON object avec arrays headlines et descriptions"
}

Prompt 3 — RSA PMax asset group complet

{
  "role": "PMax asset group designer.",
  "task": "Genere asset group complet pour PMax campagne 'Sneakers Premium Hommes'.",
  "constraints": {
    "headlines_short": {"count": 5, "max_chars": 30},
    "headlines_long": {"count": 5, "max_chars": 90},
    "descriptions": {"count": 5, "max_chars": 90},
    "callouts": {"count": 4, "max_chars": 25},
    "structured_snippets": {"count": 3, "header": "brands", "values_max": 4},
    "image_brief": "5 prompts pour générer images via DALL-E ou Midjourney : produit lifestyle, gros plan détail, vidéo 6s loop, square 1:1, 9:16 vertical"
  },
  "context": {
    "vertical": "E-commerce sneakers premium",
    "price_range": "180-450€",
    "audience": "Hommes 25-45 urbains, premium-conscious"
  },
  "output_format": "JSON object structuré par asset type"
}

Prompt 4 — RSA brand defense (concurrent qui bidde sur votre nom)

{
  "role": "Brand defense PPC strategist.",
  "task": "Genere 15 headlines RSA pour campagne Brand Defense — un concurrent bidde sur notre nom de marque.",
  "context": {
    "brand_name": "AcmeCRM",
    "competitor_name": "RivalCRM",
    "differentiateurs_vs_competitor": ["10 ans plus ancien", "Note 4.8/5", "Support FR 7j/7"]
  },
  "constraints": {
    "headline_max_chars": 30,
    "include_brand_in_5_headlines_minimum": true,
    "tone": "confiant sans agressif (pas de bashing direct)",
    "implicit_comparison": true,
    "no_competitor_name_mention": true
  },
  "output_format": "JSON array avec headline, theme, brand_present"
}

Prompt 5 — RSA déclinaison saisonnière

{
  "role": "Seasonal campaign copywriter.",
  "task": "Decline RSA existante en version Black Friday.",
  "input_existing_rsa": "[Coller ici les 15 headlines actuelles]",
  "constraints": {
    "preserve_brand_voice": true,
    "preserve_3_brand_headlines": true,
    "remplacer_offre_urgence_par": "Black Friday -40% jusqu'au 30 nov",
    "remplacer_proof_par": "Best-sellers de l'année 2026",
    "ajouter_compteur_urgence": "Plus que X jours"
  },
  "output_format": "JSON avec original + nouvelle version side-by-side"
}

Prompt 6 — RSA multi-langue cohérence brand voice

{
  "role": "Multilingual copywriter EN/FR/ES/DE.",
  "task": "Adapte la RSA suivante en 4 langues en preservant la matrice thématique et le ton brand.",
  "input_rsa_fr": "[Coller ici les 15 headlines FR + 4 desc]",
  "constraints": {
    "no_literal_translation": true,
    "preserve_theme_distribution": true,
    "preserve_proof_points_chiffres": true,
    "adapt_idiomes_local": true,
    "respect_char_count_per_language": {
      "FR": 30, "EN": 30, "ES": 30, "DE": 30
    },
    "warn_if_translation_doesnt_fit_char_count": true
  },
  "output_format": "JSON object avec key par locale"
}

Pour ces 6 prompts, le gain de temps observé selon les benchmarks publics que nous accompagnons : production initiale 45-60 min vs 2-3h en humain pur, avec ensuite 15-20 min d'édition humaine pour calibrer message-marché. ROI productivité confirmé sur ad groups standardisés (e-com mass market, lead gen volume) ; bénéfice marginal sur ad groups stratégiques (brand premium, B2B niche).

Un point de vigilance opérationnel : la brand voice ne s'apprend pas à un LLM en un seul prompt. Pour atteindre une cohérence durable sur un volume de RSAs (typiquement 50 à 200 par mois sur un compte mid-market), il faut soit constituer une bibliothèque de 8 à 12 exemples few-shot représentatifs et les injecter systématiquement dans le bloc examples_few_shot, soit utiliser le système Projects de ChatGPT (ou Claude Projects) pour stocker un brief brand voice partagé entre tous les prompts. Sur les comptes observés dans les benchmarks Google Ads publics, la deuxième approche réduit la variance de ton entre RSAs de l'ordre de 60-70% par rapport à des prompts isolés. Elle implique en revanche une discipline de gouvernance : la mise à jour du brief brand voice doit être tracée et versionnée au même titre que le code.

Négatifs discovery : 5 prompts par source

Les négatifs discovery par IA est un cas d'usage à fort levier — un compte mid-market a typiquement 200 à 800 mots-clés négatifs à découvrir cachés dans son search query report. Le faire à la main = 4 à 8h. Avec un prompt JSON bien construit + clustering, 30 à 45 min. Pour la mécanique discovery + clustering complète, voir notre article négatifs IA discovery + clustering.

La discipline « négatifs » est l'un des indicateurs de maturité d'un compte Google Ads. Selon les verticals, l'écart de CPA entre un compte avec une liste de négatifs partagée à jour et un compte sans négatifs systématiques se situe entre 15 et 28% — pour le même budget, le même Smart Bidding, les mêmes RSAs. La raison est mécanique : sans filtre négatif, le broad match pousse le budget vers des requêtes informationnelles ou hors-sujet (« comment faire », « gratuit », « définition »), qui consomment des clics sans convertir. Les cinq prompts ci-dessous adressent les cinq sources de signal complémentaires : search query report Google Ads (la base), GA4 bounce rate, Meta Ads search bar, exclusions trademark concurrents, et clustering thématique par embeddings. Combiner les cinq donne une discipline de découverte beaucoup plus robuste qu'une approche search query seule. Pour le calcul rapide avec benchmarks 2026 par vertical, voir notre calculateur CPA gratuit.

Prompt 7 — Négatifs depuis search query report (bulk 500 lignes)

{
  "role": "PPC negative keywords analyst.",
  "task": "Analyse le search query report ci-joint et identifie les négatifs candidats.",
  "input_csv": "[Coller search query report CSV : query, impressions, clicks, conversions, cost]",
  "context": {
    "vertical": "SaaS CRM B2B",
    "icp_keywords_positive": ["CRM", "logiciel", "PME", "B2B"],
    "icp_keywords_negative": ["gratuit", "open source", "tutoriel", "comment faire"],
    "intent_filter": "transactionnel uniquement"
  },
  "constraints": {
    "min_impressions_threshold": 50,
    "min_clicks_threshold": 5,
    "max_conv_rate_threshold": 0.005,
    "exclude_brand_terms": ["AcmeCRM", "Acme"],
    "match_type_recommendation": "broad ou phrase selon volume",
    "no_external_benchmarks": true
  },
  "output_format": "JSON array avec query, recommended_negative, match_type, reason, priority"
}

Prompt 8 — Négatifs depuis GA4 landing page bounce

{
  "role": "GA4 + Google Ads correlation analyst.",
  "task": "Croise les requêtes Google Ads avec les bounce rate GA4 par landing page pour detecter mismatches.",
  "input_ga4_csv": "[Page path, sessions, bounce rate, avg session duration]",
  "input_gads_csv": "[Search query, landing page, impressions, clicks, conversions]",
  "constraints": {
    "bounce_rate_threshold": 0.75,
    "min_sessions_for_signal": 30,
    "correlation_window_days": 30
  },
  "task_detail": "Identifie les requetes Google Ads qui mènent à des landing pages avec bounce > 75% — candidates négatifs.",
  "output_format": "JSON array avec query, landing_page, bounce_rate, sessions, recommended_action"
}

Prompt 9 — Négatifs Meta Ads search bar interest analysis

{
  "role": "Cross-channel negative keywords strategist.",
  "task": "Analyse les requetes Meta Ads search bar pour identifier intents non-pertinents pour Google Ads.",
  "input_meta_search_terms": "[Coller export Meta Ads Search bar terms]",
  "context": {
    "google_ads_vertical": "Lead gen courtier immobilier",
    "google_ads_icp": "Acheteurs primo-accédants 28-45 ans"
  },
  "constraints": {
    "intent_categories_to_extract": ["info_only", "wrong_persona", "wrong_geography", "wrong_product"],
    "exclude_already_in_negative_list": "[Coller liste actuelle]"
  },
  "output_format": "JSON object grouped by intent_category"
}

Prompt 10 — Négatifs concurrents trademark exclusion

{
  "role": "Trademark negative keywords legal-aware.",
  "task": "Genere liste exhaustive de mots-clés négatifs pour exclure mes campagnes des recherches de marques concurrentes.",
  "context": {
    "competitors_to_exclude": ["HubSpot", "Pipedrive", "Salesforce", "Zoho", "monday.com"],
    "include_misspellings": true,
    "include_branded_keyword_combos": true
  },
  "constraints": {
    "match_types": ["exact", "phrase"],
    "exclude_generic_terms": ["CRM", "software"],
    "include_typo_variants": true
  },
  "output_format": "JSON array avec negative_keyword, match_type, reason"
}

Prompt 11 — Négatifs clustering thématique embeddings

{
  "role": "Embeddings + clustering negative keywords specialist.",
  "task": "Recoupe la liste de 500 search queries non-converties par clusters semantiques pour grouper les négatifs.",
  "input_queries": "[Coller liste 500 search queries CSV]",
  "constraints": {
    "embedding_model": "text-embedding-3-small (suggéré)",
    "clustering_algorithm": "DBSCAN ou KMeans k=15",
    "min_cluster_size": 5,
    "output_one_negative_per_cluster": true
  },
  "task_detail": "Pour chaque cluster, propose UN négatif phrase-match qui couvre 80%+ du cluster.",
  "output_format": "JSON array avec cluster_id, sample_queries, recommended_negative_phrase, coverage_estimate"
}

Sur les comptes que nous suivons, ces 5 prompts permettent de découvrir typiquement 150 à 400 négatifs candidats par audit trimestriel, dont 60-75% retenus après revue humaine. Volume time-saving énorme vs revue manuelle.

La granularité d'application reste une décision humaine. Un négatif détecté par IA peut s'appliquer à quatre niveaux distincts : compte (via une liste partagée), campagne, ad group, ou groupe de campagnes via une liste partagée scope-restreinte. Un négatif large (« gratuit », « tutoriel ») se met systématiquement au niveau compte ; un négatif vertical-spécifique (« avocat divorce » dans un compte multi-pratiques) se met au niveau campagne ; un négatif intent-fin se met au niveau ad group. Documentée sur la page officielle Google Ads sur les listes partagées, cette hiérarchie évite les conflits où un négatif pertinent en B2C s'applique par erreur à une campagne B2B où il fait perdre du volume.

Audit narratif : 4 prompts par dimension

L'audit narratif IA est différent de l'audit chiffré (qu'on génère via script ou API). Le narratif produit la prose qui contextualise les chiffres pour un stakeholder business. C'est là où Claude Opus 4.7 excelle particulièrement — sa cohérence longue-distance bat GPT-5 et Gemini sur les rapports prose 2-5 pages.

Un audit narratif se distingue d'un audit chiffré par sa fonction : produire un texte explicatif que le destinataire peut lire et arbitrer, et non une suite de KPIs. Les quatre dimensions auditées ci-dessous (structure, créatif, tracking, budget) couvrent ensemble dans la majorité des cas plus de 80% des problèmes opérationnels d'un compte Google Ads mid-market. Pour cadrer ces audits, deux principes sont à respecter strictement : injecter directement les données du compte dans le prompt (export CSV ou JSON, pas une description en prose), et interdire les benchmarks externes (no_external_benchmarks: true). Sans ces deux règles, le LLM produit un audit faussement convaincant qui mêle vraies observations sur vos données et hallucinations sur des benchmarks inexistants. La frontière entre audit utile et audit dangereux tient à ce détail.

Prompt 12 — Audit structure compte

{
  "role": "Senior Google Ads auditor avec 10 ans d'experience.",
  "task": "Analyse la structure du compte ci-joint et produit un rapport narratif de 800 mots.",
  "input_account_structure_csv": "[Coller export campaigns + ad_groups + keywords counts]",
  "dimensions_to_audit": [
    "naming_convention_consistency",
    "campaign_budget_allocation",
    "ad_group_size_balance",
    "match_types_distribution",
    "shared_negative_lists_usage"
  ],
  "constraints": {
    "tone": "factuel, sans complaisance, sans alarmisme",
    "include_priority_actions": "top 3 quick wins + top 2 strategic",
    "no_external_benchmarks": true,
    "use_only_provided_data": true
  },
  "output_format": "Markdown structuré : Executive Summary, Findings par dimension, Priority Actions, Risks"
}

Prompt 13 — Audit créatif (RSA, Ad Strength, pinning)

{
  "role": "Creative Google Ads auditor.",
  "task": "Audit qualité créative du compte ci-joint, focus RSA et Asset Reports.",
  "input_rsa_export": "[Coller export RSA toutes campagnes : ad_group, headlines, descriptions, ad_strength, pinning]",
  "input_asset_report": "[Coller Asset Report : asset, performance_label]",
  "checks": [
    "headlines_count_per_rsa (target 15)",
    "thematic_diversity (7 themes attendus)",
    "pinning_excessive (warning si >1 pin per RSA)",
    "ad_strength_poor_count",
    "low_performing_assets_count"
  ],
  "output_format": "Tableau CSV (ad_group, issue, severity, recommended_fix) + paragraphe synthèse"
}

Prompt 14 — Audit tracking conversions

{
  "role": "Conversion tracking auditor.",
  "task": "Detecte les anomalies tracking sur le compte.",
  "input_conversions_export": "[Coller export Tools > Conversions]",
  "input_gtm_setup": "[Coller summary GTM tags]",
  "checks": [
    "duplicates_conversion_actions",
    "missing_enhanced_conversions",
    "inconsistent_attribution_models",
    "stale_conversion_actions_no_data",
    "consent_mode_status"
  ],
  "constraints": {
    "include_remediation_steps": true,
    "include_estimated_signal_loss_percent": true
  },
  "output_format": "Markdown rapport avec sections par check"
}

Prompt 15 — Audit budget pacing

{
  "role": "Budget pacing analyst.",
  "task": "Detecte over/underspend par campagne sur les 30 derniers jours.",
  "input_daily_spend_csv": "[Coller export daily spend par campagne 30j]",
  "input_target_budgets": "[Daily budget target par campagne]",
  "checks": [
    "deviation_from_target_per_day",
    "weekday_vs_weekend_pattern",
    "early_month_overspend",
    "ramping_campaigns_unstable"
  ],
  "constraints": {
    "tolerance_threshold_percent": 8,
    "flag_if_consecutive_overspend_days": 3
  },
  "output_format": "Markdown avec tableau dérive + paragraphe explicatif"
}

Pour le pillar audit complet, voir notre checklist audit Google Ads. Les prompts ci-dessus s'enchaînent dans un workflow d'audit semi-automatisé, avec validation humaine entre chaque étape.

Reporting executive : 5 prompts par stakeholder

Le reporting est l'autre cas d'usage où l'IA fait gagner massivement du temps — un account manager passe en moyenne 6 à 12h/mois sur les rapports clients. Avec des prompts par persona stakeholder, on tombe à 1-2h. Voir notre guide reporting client 10 KPI pour les indicateurs à inclure.

La règle d'or du reporting executive est qu'un rapport ne se résume pas aux chiffres : il se résume au cadre mental du destinataire. Un CEO veut une vision business sur 1 page (300 mots maximum, sans jargon, avec un chiffre headline et un plan). Un CFO veut payback period et ratio LTV:CAC, en vocabulaire finance pas marketing. Une équipe sales veut la qualité des leads exprimée en MQL→SQL→deal, pas en CTR. Un directeur marketing veut les anomalies hebdo, les tests proposés et les ratios contextuels. Sur les comptes observés dans les benchmarks Google Ads publics, l'écart entre un reporting générique (le même rapport pour tous les stakeholders) et un reporting personnalisé par persona se mesure dans la durée d'attention du destinataire — qui passe en moyenne de 90 secondes à 4-6 minutes par rapport. Le ROI réel n'est pas dans les heures économisées par l'account manager mais dans les décisions plus fines prises par les destinataires.

Prompt 16 — Reporting CEO executive summary

{
  "role": "CEO-grade executive reporter.",
  "task": "Synthese 1 page exec summary à partir des données mensuelles ci-jointes.",
  "input_monthly_data": "[Coller dashboard data : spend, conversions, CPA, ROAS, vs target]",
  "audience": "CEO non-technique, attention 2 minutes",
  "constraints": {
    "max_length_words": 300,
    "no_jargon": true,
    "structure": ["headline_metric_vs_target", "what_drove_change", "next_month_plan"],
    "tone": "factuel sans embellissement",
    "include_risks": true
  },
  "output_format": "Markdown 1-page avec 3 sections"
}

Prompt 17 — Reporting marketing team weekly

{
  "role": "Performance marketing weekly briefer.",
  "task": "Brief hebdo opérationnel pour l'équipe marketing.",
  "input_weekly_data": "[CSV last 7 days vs previous 7 days]",
  "audience": "Marketing team mid-level, technique-friendly",
  "constraints": {
    "max_length_words": 500,
    "include_anomalies_first": true,
    "include_test_recommendations": "1-2 par semaine",
    "use_jargon_authorized": ["CTR", "CPA", "ROAS", "LTV", "Smart Bidding"]
  },
  "output_format": "Markdown : Highlights / Lowlights / Anomalies / Tests proposés"
}

Prompt 18 — Reporting sales team lead quality

{
  "role": "MQL/SQL pipeline analyst.",
  "task": "Brief pour l'équipe sales sur la qualité des leads Google Ads.",
  "input_crm_export": "[Coller export CRM avec source = Google Ads]",
  "audience": "Sales team, focus quality not quantity",
  "metrics_to_include": [
    "MQL_count",
    "SQL_conversion_rate_from_MQL",
    "deal_velocity_days",
    "closed_won_count",
    "average_deal_value"
  ],
  "constraints": {
    "include_lead_scoring_distribution": true,
    "flag_underperforming_campaigns_lead_quality": true
  },
  "output_format": "Markdown report sales-friendly"
}

Prompt 19 — Reporting CFO LTV:CAC

{
  "role": "CFO-grade financial reporter PPC.",
  "task": "Rapport financier focus payback period et LTV:CAC.",
  "input_data": "[CAC par cohorte mensuelle 12 derniers mois + LTV cohorte 12m]",
  "audience": "CFO, focus cash flow et marges",
  "constraints": {
    "include_payback_period_calculation": true,
    "include_ltv_cac_ratio_per_cohort": true,
    "include_blended_vs_paid_only_cac": true,
    "no_marketing_jargon": true,
    "use_finance_vocabulary": true
  },
  "output_format": "Markdown structuré sections finance"
}

Prompt 20 — Reporting agency client monthly QBR

{
  "role": "Agency QBR reporter.",
  "task": "Quarterly business review report pour client agency.",
  "input_quarter_data": "[Coller data trimestre + comparatif Q-1 + comparatif Y-1]",
  "audience": "Client decision-maker + équipe ops",
  "constraints": {
    "include_strategic_recommendations_top_3": true,
    "include_competitive_benchmark_directional_only": true,
    "include_next_quarter_roadmap": true,
    "tone": "partner pas vendor",
    "max_length_words": 1500
  },
  "output_format": "Markdown long form QBR-style"
}

Optimisation tactique : 5 prompts par décision

L'optimisation tactique IA est le cas d'usage le plus délicat — c'est là que l'IA peut donner des recommandations à fort impact, mais aussi des recommandations dangereuses si mal cadrée. Toujours valider humainement avant exécution. Pour la mécanique générale d'optimisation, voir notre guide complet Performance Max 2026.

La distinction critique entre prompts d'analyse et prompts de décision doit être explicite dans votre workflow. Les prompts d'analyse (sections RSA, négatifs, audit, reporting ci-dessus) produisent du contenu que vous validez avant publication ou diffusion. Le coût d'un prompt analytique mauvais est un délai d'édition. Les prompts de décision (les cinq ci-dessous) produisent des recommandations qui, exécutées, modifient durablement la performance du compte : une bascule Target CPA→Target ROAS prématurée peut coûter trois semaines de relearning ; une consolidation d'ad groups mal calibrée peut casser des audiences pertinentes ; une pause de campagne basée sur 30 jours de bruit peut couper une trajectoire d'apprentissage saine. Pour ces cinq prompts, la règle absolue est de demander explicitement au modèle un score de confiance et un plan de rollback. En dessous de 0.75 de confiance, on ne déploie pas. Sans rollback documenté, on ne déploie pas non plus.

Prompt 21 — Décision rebid Smart Bidding (Target CPA → Target ROAS)

{
  "role": "Smart Bidding strategy advisor.",
  "task": "Conseille sur la bascule Target CPA → Target ROAS pour la campagne ci-jointe.",
  "input_campaign_data": "[Coller 90j data : conversions, value, CPA, ROAS, learning phase status]",
  "decision_criteria": [
    "min_50_value_based_conv_per_week",
    "value_signal_reliability",
    "learning_phase_stable_30_days",
    "target_ROAS_realistic_vs_history"
  ],
  "constraints": {
    "give_go_no_go_recommendation": true,
    "include_target_ROAS_initial_value": true,
    "include_rollback_plan": true,
    "include_monitoring_metrics_first_14_days": true
  },
  "output_format": "JSON : recommendation, target_ROAS_initial, rollback_trigger, kpi_to_monitor"
}

Prompt 22 — Décision restructure (consolidation ad groups)

{
  "role": "Account restructure strategist.",
  "task": "Identifie les ad groups à consolider pour atteindre seuil signal Smart Bidding.",
  "input_ad_groups_data": "[Coller export ad groups : conv 30j, spend, structure thématique]",
  "criteria": {
    "min_conv_per_ad_group_week": 5,
    "thematic_proximity_threshold": 0.75,
    "preserve_separate_match_types": true,
    "preserve_separate_audiences": true
  },
  "constraints": {
    "max_ad_groups_per_consolidation": 4,
    "preserve_naming_convention": true,
    "include_keyword_remap_plan": true
  },
  "output_format": "JSON array avec consolidation_group, source_ad_groups, target_ad_group_name, keywords_to_migrate"
}

Prompt 23 — Décision lancement nouveau négatif

{
  "role": "Negative keyword scope advisor.",
  "task": "Pour chaque négatif candidat ci-joint, conseille la granularité d'application.",
  "input_negatives_candidates": "[Coller liste négatifs candidats avec query history]",
  "decision_levels": ["account_level", "campaign_level", "ad_group_level", "shared_negative_list"],
  "criteria": {
    "applies_to_all_campaigns": "account_level",
    "applies_to_specific_vertical": "campaign_level",
    "applies_to_specific_match_type_intent": "ad_group_level",
    "reusable_pattern": "shared_negative_list"
  },
  "output_format": "JSON array avec negative, recommended_level, justification"
}

Prompt 24 — Décision pause campagne

{
  "role": "Campaign pause/keep decision advisor.",
  "task": "Analyse si campagne doit être pausée ou retravaillée.",
  "input_campaign_60d": "[Coller 60j data campaign + benchmarks compte]",
  "decision_criteria": [
    "CPA_vs_target_3x_above",
    "conversion_rate_below_account_avg_50pct",
    "trajectory_30d_improving_or_degrading",
    "strategic_value_brand_or_test"
  ],
  "constraints": {
    "include_alternatives_to_pause": ["restructure", "rebid", "creative_refresh", "audience_pivot"],
    "include_estimated_recovery_time_per_alternative": true
  },
  "output_format": "JSON : recommendation, alternatives_ranked, rationale"
}

Prompt 25 — Décision allocation budget cross-canal

{
  "role": "Cross-channel budget allocator.",
  "task": "Recommande shift budget Google Ads vs Meta Ads vs Microsoft Ads selon ROI marginal.",
  "input_channels_data": "[Coller spend, conv, CAC, marginal CAC last 30d par canal]",
  "context": {
    "total_budget_eur_monthly": 25000,
    "current_split": {"google": 0.65, "meta": 0.25, "microsoft": 0.10},
    "constraints_business": ["Google brand minimum 2k€/mois", "Microsoft B2B prioritaire"]
  },
  "constraints": {
    "max_shift_percent_per_iteration": 0.15,
    "include_marginal_CAC_logic": true,
    "no_external_benchmarks": true
  },
  "output_format": "JSON : recommended_split, shift_per_channel_eur, rationale_per_shift"
}

Bonnes pratiques : guardrails, validation, A/B

Les bonnes pratiques d'utilisation prompt JSON ne sont pas optionnelles — sans elles, l'IA produit des outputs faussement convaincants qui causent des dégâts réels en compte. Trois piliers : guardrails, validation humaine systématique, A/B vs version naive pour mesurer le gain réel.

Un guardrail est une contrainte explicite que vous imposez au modèle pour limiter son espace de sortie : interdire les benchmarks externes, exiger un score de confiance, refuser de produire si les données fournies sont insuffisantes. Sur les comptes observés dans les benchmarks Google Ads publics, les agences qui n'imposent pas ces guardrails publient en moyenne 12 à 18% de contenu IA contenant au moins une hallucination factuelle (chiffre inventé, feature inexistante, source fictive). Avec les cinq guardrails ci-dessous activés systématiquement, le taux d'hallucination tombe à 2-4% — et celles qui restent sont presque toujours détectées en validation schema parce que le modèle marque explicitement ses hypothèses. La discipline guardrail est cumulative : chaque guardrail ajouté supprime une classe d'erreur sans coût supplémentaire, et l'investissement initial (5-10 min pour rédiger les contraintes) est amorti dès le deuxième usage du prompt.

Les 5 guardrails essentiels à inclure dans chaque prompt :

  • no_external_benchmarks — empêche le modèle d'inventer des stats sectorielles. Force à utiliser uniquement les données fournies.
  • use_only_provided_data — variante stricte du précédent. Toute donnée non fournie = inconnue, pas inventée.
  • flag_assumptions_explicitly — le modèle doit lister explicitement les hypothèses qu'il fait. Permet de les valider.
  • include_confidence_score — pour les décisions, demander au modèle un score de confiance 0-1. Filtrer en dessous de 0.7.
  • request_clarification_if_data_insufficient — au lieu d'inventer, demander des clarifications.

Pipeline de validation humaine systématique :

  1. Output IA — collecter le JSON brut.
  2. Schema validation — vérifier que le JSON parse, que les contraintes character_count tiennent, que les exclusions sont respectées.
  3. Spot check sémantique — humain review 10-20% de l'output pour cohérence message-marché.
  4. Test pilote — déployer sur 1 ad group ou 1 campagne pendant 7 jours avant industrialisation.
  5. Mesure A/B vs baseline — comparer aux outputs équivalents non-IA.

A/B test prompt naive vs prompt structuré — méthodologie claire :

# Pseudo-code workflow A/B prompt comparison
import openai

def run_ab_prompts(naive_prompt, structured_prompt, n_runs=20):
    naive_outputs = [openai.chat.completions.create(
        model="gpt-5", messages=[{"role": "user", "content": naive_prompt}]
    ) for _ in range(n_runs)]

    structured_outputs = [openai.chat.completions.create(
        model="gpt-5", messages=[{"role": "user", "content": structured_prompt}]
    ) for _ in range(n_runs)]

    metrics = {
        "char_count_compliance": compare_char_compliance(naive_outputs, structured_outputs),
        "theme_diversity": compare_diversity(naive_outputs, structured_outputs),
        "human_edit_time_avg": measure_edit_time(naive_outputs, structured_outputs),
        "hallucination_rate": detect_hallucinations(naive_outputs, structured_outputs),
    }
    return metrics

Tests qualité menés sur 200 paires de prompts (RSA, négatifs, audit) :

Le gain réel est sur la production, pas la performance pure :

Selon les benchmarks publics où on a comparé RSA IA bien promptées vs RSA humain pure pendant 21 jours : le CTR sort équivalent à +5-8% en faveur IA, mais le taux de conversion 0 à 3% inférieur (l'IA optimise le hook, pas le matching message-marché complexe). Le gain net business est sur la productivité (45 min vs 2-3h par RSA) et la cohérence multi-comptes, pas sur la performance pure. Industrialiser sur les ad groups standardisés ; garder l'humain sur les ad groups stratégiques (brand premium, B2B niche, top revenue).

Pour automatiser le déploiement de prompts en pipeline production, voir nos articles complémentaires RSA IA + ad rotation, négatifs IA discovery + clustering, et images IA pour Google Ads. Pour l'automation côté infrastructure (n8n, Zapier, MCP), voir n8n Google Ads et Google Ads API Python.

Pour les annonceurs qui veulent déployer cette discipline IA sans construire l'infrastructure prompt eux-mêmes, notre audit SteerAds intègre les 30 prompts ci-dessus dans son pipeline et livre un rapport prête-à-action en 72h, avec validation humaine systématique et A/B test pilote sur 1 ad group avant industrialisation. Les 30 prompts JSON ne sont pas un produit fini — ce sont des templates à adapter à votre contexte vertical, votre brand voice et votre maturité tracking. La discipline qui compte n'est pas le prompt en soi mais le workflow autour : guardrails, validation, A/B mesure, itération mensuelle. Sans cette discipline, ChatGPT reste effectivement de la magie — qui marche un coup sur deux et coûte cher quand elle rate — voir aussi Microsoft Advertising Research pour plus de détails.

Sources

Sources officielles consultées pour ce guide :

FAQ

Un prompt naive ChatGPT donne quoi sur Google Ads vs un prompt structuré JSON ?

Sur les tests que nous menons en continu, un prompt prose naive du type « écris-moi 15 headlines RSA pour CRM B2B » produit typiquement 40 à 55% d'output directement utilisable — le reste à corriger ou jeter (redondance, hors-sujet, dépassement caractères, hallucinations sur features inexistantes). Le même cas en prompt JSON structuré (avec contraintes character_max, theme_distribution, exclusions explicites, format_output) monte à 75 à 88% d'output exploitable. Le gain n'est pas dans la qualité du modèle — c'est dans la précision des contraintes. Un LLM 2026 (GPT-5, Claude Opus 4.7, Gemini 2.5 Pro) suit les contraintes JSON beaucoup mieux que les contraintes prose. Documentation officielle : platform.openai.com/docs/guides/prompt-engineering.

ChatGPT hallucine-t-il sur les stats Google Ads ? Quelles précautions ?

Oui, systématiquement et avec confiance. Demander à ChatGPT « quel est le CTR moyen Search Google Ads en France 2026 » produit un chiffre faussement précis (souvent dans la zone plausible mais sans source vérifiable) — typiquement 2,8% ou 3,1% sortis sans contexte vertical. Règle stricte : ne jamais utiliser les outputs LLM sur des questions de stats benchmark sans vérifier la source. Pour les prompts d'audit ou de reporting, on doit explicitement injecter les vraies données du compte dans le prompt (CSV ou JSON collé) et demander au modèle d'analyser SEULEMENT cette donnée — pas de produire des benchmarks externes. Le guardrail JSON `data_source: account_csv_only, no_external_benchmarks: true` réduit les hallucinations stats de 80%+ dans nos tests.

Quel modèle utiliser pour quel cas d'usage Google Ads ?

Sur les comptes observés dans les benchmarks publics en 2026, Claude Opus 4.7 domine sur les tâches d'audit narratif et reporting executive (cohérence prose, ton stakeholder-aware, longueur context window 1M tokens). GPT-5 reste le défaut robuste sur la génération RSA et les négatifs (créativité textuelle bornée, suivi des contraintes character count précis). Gemini 2.5 Pro est le meilleur pour les tâches qui nécessitent grounding sur le web en temps réel (vérification compétiteurs, actualités features Google Ads). Recommandation pratique : industrialiser sur Claude pour les tâches répétitives multi-comptes (consistency), garder GPT-5 et Gemini en alternance pour A/B blind tests qualité output. Aucun modèle 2026 n'est strictly supérieur sur tous les axes — diversifier limite le biais d'un fournisseur.

Faut-il fine-tuner un modèle sur ses propres données Google Ads ?

Non, dans 95% des cas, le fine-tuning est over-engineering pour la majorité des annonceurs. Coût typique fine-tuning OpenAI 2026 : 800 à 4 000€ setup + récurrent. Pour battre un prompt JSON bien construit, il faut 500+ exemples de qualité de votre compte — ce que la plupart des annonceurs n'ont pas en propre. La voie pragmatique 2026 : prompts JSON structurés + few-shot examples (3 à 5 exemples du compte injectés directement dans le prompt) + retrieval augmented generation (RAG) pour les knowledge bases internes. RAG tourne autour de 20 à 80€/mois selon volume. C'est 95% de la valeur fine-tuning à 5% du coût. Fine-tuner pertinent uniquement pour les agences qui industrialisent sur 100+ comptes avec voice brand contraint.

Comment mesurer si l'IA améliore vraiment mes performances Google Ads vs juste l'effort éditorial ?

Holdout test classique : 14 à 21 jours sur un même ad group, alterner les RSA générées par IA (prompt structuré) et les RSA générées humain pure. Mesurer CTR, conversion rate, CPA. Sur les comptes que nous suivons, les RSA IA bien promptées sortent un CTR équivalent à 5-8% supérieur aux RSA humaines, mais avec un taux de conversion 0 à 3% inférieur (l'IA optimise le hook, pas le matching message-marché). Le gain net est sur le temps de production (45 min IA vs 2h humain par ad group), pas sur la performance pure. Conclusion : l'IA est un accélérateur de production, pas un magicien de performance. Industrialiser sur les ad groups standardisés, garder l'humain sur les ad groups stratégiques (brand, top sales).

Ready to optimize your campaigns?

Start a free audit in 2 minutes and discover the ROI potential of your accounts.

Start my free audit

Free audit — no credit card required

Keep reading