Documentation

Connect your marketing data to Claude, ChatGPT and other LLMs.

Performance Max — deep dive

PMax est le type de campagne le plus opaque de Google. Pas de targeting keyword, pas d'ad groups au sens traditionnel, le ML décide tout. gadspilot est le seul MCP qui expose read ET write sur toute la surface PMax — 16 tools dédiés, 3 onglets insights dédiés, règles IA custom.

Comment PMax fonctionne réellement

Une campagne PMax diffuse sur 7 surfaces Google automatiquement :

  • Search (résultats + partenaires)
  • Display Network (sites tiers)
  • YouTube (in-stream + in-feed + Shorts)
  • Discover feed (mobile)
  • Gmail (onglet promotions)
  • Maps (résultats locaux)
  • Shopping (si feed produit)

Le ML Google alloue le budget en temps réel sur ces 7 surfaces selon la probabilité de conversion prédite. Vous ne choisissez pas où. Votre seul contrôle passe par 4 signaux indirects :

  1. Search themes — hints type keyword (vous suggérez « hébergement VPS »)
  2. Audience signals — « voici mes meilleurs clients » (customer match, similar audiences, custom segments)
  3. Asset groups — bundles créatifs (headlines, descriptions, images, vidéos, logos)
  4. Listing groups — pour Shopping uniquement

L'algo IGNORE ou SUIT ces signaux selon ses prédictions. C'est pour ça qu'analyser un PMax sans voir ces 3 layers = analyser à l'aveugle.

3 onglets dédiés sur /accounts/{id}/insights

Quand la campagne sélectionnée est PMax (ou la vue all campaigns avec une PMax dans le compte), 3 onglets supplémentaires apparaissent en bas :

🎯 PMax signals

Liste tous les search themes + audience signals attachés à chaque asset group. Si le compte est 0, l'IA flagge ça comme cause majeure de sous-performance (l'algo tourne à l'aveugle pendant la phase d'apprentissage). Layout 2 colonnes côte à côte.

🔍 PMax search terms

Google ne révèle pas les requêtes individuelles sur PMax (contrairement à Search) mais les regroupe en CATÉGORIES via campaign_search_term_insight. Couvre ~20-40 % des impressions. Utile pour découvrir des thèmes hors-cible à exclure via shared lists.

⭐ PMax asset perf

Google note chaque asset (BEST / GOOD / LOW / PENDING / LEARNING). La table montre type d'asset + contenu + asset group + label de performance coloré. Remplacez les assets LOW en priorité, surveillez PENDING pendant 7-14 jours.

16 tools MCP spécifiques PMax

Read

ToolObjectif
get_pmax_performanceKPI headline des campagnes PMax
list_shared_setsTrouver les listes negative / brand existantes
list_shared_set_criteriaInspecter ce qu'il y a dans une shared list
list_audiences + get_audienceDécouvrir les audiences avant de les attacher comme signals

Write — targeting

ToolObjectif
asset_group_signal_addAjouter un search theme OU un audience signal à un asset group
asset_group_signal_removeRetirer un signal par resource_name
audience_create_custom_segmentConstruire « Concurrents X » depuis URLs de concurrents + keywords

Write — negatives (le seul mécanisme pour PMax)

ToolObjectif
shared_set_createCréer une liste NEGATIVE_KEYWORDS / BRANDS / NEGATIVE_PLACEMENTS
campaign_shared_set_linkAttacher à une campagne PMax
campaign_shared_set_unlinkDétacher (préserve la liste, utile pour A/B test)
shared_set_criterion_addAjouter des keywords (avec match_type) à une liste
shared_set_criterion_removeRetirer par criterion_ids
add_negative_placementsBloquer sites + apps + vidéos/chaînes YouTube

Write — assets & créas

ToolObjectif
asset_createCréer un asset texte / image (URL fetch) / vidéo YouTube
asset_group_asset_addLier un asset à un group avec field_type (HEADLINE, MARKETING_IMAGE, etc.)
asset_group_asset_removeDélier (préserve l'asset)

Règle IA 5ter — ce que l'IA sait sur PMax

Quand le chat in-app détecte un scope PMax, le system prompt impose une analyse à 3 axes :

💡
  1. Search themes : si AUCUN, c'est une cause majeure de sous-performance — l'algo n'a aucun hint keyword. L'IA doit recommander 5-10 thèmes alignés avec le produit.
  2. Audience signals : si AUCUN, perte typique de 30 % de précision de targeting. L'IA recommande customer match list / similar / custom segments selon le produit.
  3. Asset perf labels : compter les assets LOW et proposer de les remplacer (en citant les exemples fournis). Surveiller PENDING (besoin de 7-14 jours de données en plus).
PMax n'a pas de targeting strict — ces 3 leviers sont les seuls que l'utilisateur contrôle. L'IA ne peut rien recommander d'autre.

Définir le CPA / ROAS cible sur PMax (le piège)

Performance Max N'accepte PAS TARGET_CPA ou TARGET_ROAS comme stratégies d'enchères directes — l'API rejette avec une erreur. La bonne façon est d'utiliser MAXIMIZE_CONVERSIONS (ou MAXIMIZE_CONVERSION_VALUE) avec un sous-champ target_cpa_micros / target_roas :

demander à Claude
# FAUX : sera rejeté par l'API Google Ads
update_bidding_strategy(
  campaign_id="...",
  bidding_strategy="TARGET_CPA",        # ❌ pas autorisé sur PMax
  target_cpa_micros=25000000
)

# JUSTE : pattern « Maximize conversions with target CPA »
update_bidding_strategy(
  campaign_id="...",
  bidding_strategy="MAXIMIZE_CONVERSIONS",  # ✓ PMax accepte ça
  target_cpa_micros=25000000                # = 25 € de CPA cible
)

# Même logique pour value-based bidding :
update_bidding_strategy(
  campaign_id="...",
  bidding_strategy="MAXIMIZE_CONVERSION_VALUE",
  target_roas=2.5                           # = 250 % de ROAS cible
)
Les campagnes Search et Display acceptent TARGET_CPA et TARGET_ROAS directement — cette restriction PMax est spécifique au modèle d'enchères hybride de l'algo. La description du tool MCP épelle les deux cas pour que Claude choisisse le bon automatiquement.

Workflow complet d'audit PMax (via Claude)

demander à Claude
Audite ma campagne PMax 23639991014 :

1. Tire la perf 30 derniers jours via get_pmax_performance et le breakdown par canal
2. Vérifie les 3 axes PMax :
   - asset_group_signal_add révèle : combien de thèmes ? combien de signaux audience ?
   - notes de performance des assets : combien d'assets LOW par groupe ?
   - catégories de search terms : quelle est la catégorie top-spend ? matche-t-elle l'intention produit ?
3. Trouve les candidats à ajouter en negatives :
   - get_search_terms (limité mais utile)
   - cross-référence avec list_shared_set_criteria pour la liste NEGATIVE_KEYWORDS liée
4. Propose un plan d'action :
   - Pour les assets LOW : suggère des remplacements spécifiques
   - Pour les signaux manquants : suggère 5 thèmes + 1 type d'audience
   - Pour les catégories de spend gaspillé : liste les nouveaux negatives à ajouter
5. Une fois validé, exécute les writes (dry_run=true d'abord, puis false) :
   - shared_set_criterion_add pour les negatives
   - asset_group_signal_add pour les signaux manquants
   - asset_create + asset_group_asset_add pour les nouvelles créas

FAQ

Puis-je ajouter des keyword negatives normaux à une campagne PMax ?

Non. PMax ne supporte pas les negatives directs au niveau campagne ou ad-group. Seules les shared lists fonctionnent. Si Claude essaie add_negative_keywords sur une campagne PMax, l'API rejette avec une erreur claire. Utilisez le workflow shared set à la place.

Comment reset une PMax qui a déraillé ?

Ne pause pas + recrée pas (perd le learning). À la place : (1) Ajoute des negatives agressifs via shared lists, (2) Renforce les search themes (5-10 spécifiques au produit), (3) Ajoute des audience signals, (4) Remplace les assets notés LOW. Donne-lui 7-14 jours. Si toujours mauvais, baisse le budget de 30 % (ne pas pause) pour que l'algo nettoie ses propres données sans perdre la campagne.

Que faire si je n'ai pas de données customer match pour les audience signals ?

Utilise audience_create_custom_segment pour en construire une depuis des URLs de concurrents (heroku.com, vercel.com pour SaaS) + des intentions keyword (« alternative à X », « vs Y »). Google valide en ~24h, puis attache via asset_group_signal_add(type=AUDIENCE).

Puis-je voir précisément sur quel placement (site / app / chaîne YouTube) mes annonces PMax tournent ?

Partiellement. L'onglet « Diffusion » montre les placements avec compte d'impressions (PMax limite la donnée — pas de spend, pas de clicks par placement). Pour exclure les mauvais : add_negative_placements(youtube_channel_ids=[...], urls=[...], app_ids=[...]).

Besoin d'aide ? Demandez à Léa 💬
gadspilot assistant
Léa
Assistante IA · gadspilot
Besoin d'un humain ? Contacter le support