Script de suivi du budget PMax : calculs, règles et limites

En bref

Un script de suivi du budget Performance Max peut lire les dépenses, calculer un écart de rythme, proposer une réallocation et modifier des budgets. Il ne peut pas imposer une part par canal dans PMax. Toute mutation fiable exige des périodes comparables, des plafonds, un lot atomique, un journal d’audit et un retour arrière.

Script de suivi du budget PMax
Automatisation JavaScript destinée au budget Performance Max (PMax) et exécutée depuis Google Ads. Elle peut lire des entités et des statistiques avec AdsApp ou une requête Google Ads Query Language (GAQL), envoyer une alerte, proposer un budget et modifier les ressources autorisées. Elle reste un logiciel à exploiter : propriétaire, autorisation déléguée OAuth, quotas, journalisation, supervision et maintenance.

Quel rôle donner à un script de budget PMax ?

Répartir une enveloppe entre plusieurs campagnes Performance Max, puis entre ce format et le Réseau de Recherche, part de vos marges, de vos objectifs et de votre capacité commerciale. Les règles de valeur client dans PMax indiquent à Google ce qu’une conversion vaut ; l’enveloppe dit combien vous acceptez d’exposer à cette logique. Le script applique les hypothèses que vous avez écrites. Il ne les rend pas justes.

Première limite, souvent oubliée : vous ne répartissez pas le budget d’une campagne Performance Max entre ses canaux. Google arbitre la diffusion entre le Réseau de Recherche, le Réseau Display, YouTube, Discover, Gmail, Maps et les partenaires de recherche selon les objectifs et les cibles de la campagne. Le segment « annonces utilisant des données produit » décrit un format ; ce n’est pas une poche Shopping que votre code peut plafonner. Un script agit sur le montant alloué à la campagne, pas sur un quota par canal. Source Google Ads sur les coûts et l’allocation Performance Max, consultée le 26 juillet 2026.

Ensuite, séparez quatre niveaux. L’alerte constate. La recommandation calcule un montant proposé. La validation humaine autorise cette proposition. La mutation automatique l’applique. Les quatre sont techniquement possibles ; ils n’ont ni le même risque ni les mêmes contrôles. Sur une enveloppe sensible ou des données instables, je commence en lecture seule. Sur un cas répétable, borné et réversible, une mutation peut devenir défendable.

Un script Google Ads évite d’héberger un service externe, pas d’exploiter un système. Il faut un propriétaire, une autorisation OAuth, une planification, des journaux, des quotas, une alerte de panne et une procédure de reprise. Les e-mails, feuilles Google et appels externes ajoutent leurs propres droits et limites. Les scripts donnent accès à une grande partie de l’interface de programmation (API) Google Ads via search et mutate, mais exécutent toujours du code au nom d’un utilisateur. Vue d’ensemble officielle de PMax dans Google Ads Scripts et règles d’autorisation, consultées le 26 juillet 2026.

Quels écarts un script PMax doit-il surveiller ?

Je regroupe la surveillance en trois familles pour la rendre lisible. Cette liste de contrôle ne suffit pas à elle seule : chaque alerte doit embarquer le contexte qui permet de l’interpréter, faute de quoi elle ne fait que déplacer le doute dans un e-mail.

  1. Le rythme et l’état de diffusion. Comparez le coût cumulé à une courbe attendue au même jour et à la même heure, dans le fuseau du compte. Joignez le type de budget, son historique de changements, l’état « limitée par le budget », les cibles d’enchères, les refus, les problèmes de paiement et les incidents de suivi. Une sous-dépense peut venir d’une cible de rentabilité trop haute, d’un coût par acquisition cible trop bas, d’une demande faible, d’un apprentissage, d’un flux produit indisponible ou d’une campagne non éligible. Pas forcément du budget.
  2. La performance arrivée à maturité. Pour le retour sur les dépenses publicitaires (ROAS) ou le coût par acquisition (CPA), comparez des périodes homogènes après le délai de conversion. Alignez les jours de semaine, la saison, le modèle d’attribution, les ajustements de conversion, les remboursements, la composition du catalogue, les objectifs et les changements récents. Une moyenne mobile n’efface pas une rupture de mesure.
  3. La marque et la répartition de la diffusion. Le code peut réunir des indices : coût Performance Max, rapport de canaux, volume et part d’impressions de la marque, cibles d’enchères, enveloppes et historique du compte. Une baisse parallèle du Réseau de Recherche de marque ne démontre aucune cannibalisation. Elle ouvre une enquête, puis éventuellement un test. La page sur la coexistence entre Performance Max et le Réseau de Recherche pose ce diagnostic sans confondre corrélation et incrémentalité.

Une alerte utile donne la valeur observée, la référence, l’écart, la fraîcheur des données, les changements concomitants et l’action attendue. Google recommande lui-même d’examiner les fluctuations Performance Max sur une période plus longue qu’une journée et cite séparément suivi, délai de conversion, cibles, enveloppe, créations, ciblage, règles et enchères. Le rapport de canaux ajoute des diagnostics de diffusion et de flux. Guide officiel des fluctuations Performance Max et rapport officiel sur les performances des canaux, consultés le 26 juillet 2026.

Quand une réallocation automatique devient-elle défendable ?

Automatiser une mutation n’est ni interdit ni prudent par nature. La question est plus concrète : que se passe-t-il si une donnée arrive en retard, si une campagne renvoie une erreur ou si le script est relancé deux fois ? Sans réponse testée, vous n’avez pas une automatisation. Vous avez une hypothèse qui sait dépenser.

Avec un budget moyen quotidien, la dépense d’une journée peut atteindre deux fois ce montant pour la plupart des campagnes, puis Google plafonne normalement le mois à 30,4 fois le budget s’il reste inchangé. Modifier le budget change ces limites. Le jour d’une ou plusieurs modifications, la limite quotidienne repose sur le budget moyen quotidien le plus élevé saisi ce jour-là. Baisser après une hausse ne remet donc pas immédiatement le compteur à zéro.

Pour le reste du mois, Google recalcule la limite à partir du coût déjà accumulé, du dernier budget moyen quotidien et des jours calendaires restants. Un budget total de campagne suit une autre mécanique : disponible pour une nouvelle PMax avec dates de début et de fin, il constitue un plafond sur toute la période, sans plafond quotidien de type « deux fois ». Google recalcule alors le rythme sur le montant et les jours restants. Le type quotidien ou total ne se convertit pas après création. Limites de dépense, effet des changements de budget et budgets totaux de campagne, sources Google consultées le 26 juillet 2026.

Le scénario qui casse l’enveloppe
Le script baisse PMax A puis augmente PMax B. La première opération réussit, la seconde échoue ; une relance répète ensuite la baisse. Le problème n’est pas « l’IA ». C’est une exécution partielle, non idempotente et sans vérification après écriture. Mesurez avant et après : somme des montants, identifiant du lot, résultats de chaque mutation et écart avec l’enveloppe approuvée.

Pour déplacer plusieurs budgets, préparez toutes les valeurs avant d’écrire. Vérifiez que leur somme conserve l’enveloppe approuvée, appliquez un minimum, un maximum et une variation maximale propres à chaque campagne, puis envoyez un seul lot. Avec AdsApp.mutateAll, partialFailure vaut true par défaut : certaines opérations peuvent réussir pendant que d’autres échouent. Pour une réallocation indivisible, passez-le explicitement à false, contrôlez chaque résultat et relisez les budgets après mutation.

Scripts et API Google Ads peuvent tous deux lire et modifier des ressources PMax. Les scripts exposent directement search, mutate et mutateAll sans jeton développeur ; l’API externe apporte surtout votre propre infrastructure, votre orchestration et vos outils de déploiement. Elle n’ajoute pas magiquement des plafonds, une approbation ou un retour arrière. Documentation officielle des mutations dans Google Ads Scripts, consultée le 26 juillet 2026.

Je n’active l’écriture qu’avec un état sûr défini : mesure saine, conversions assez mûres, aucune modification majeure récente, aucune alerte de paiement ou de règles, et campagne éligible. Le lot porte un identifiant, ne produit pas deux fois le même effet, journalise l’avant et l’après, déclenche une alerte en cas d’échec et possède un bouton d’arrêt. C’est la traduction technique d’une règle simple : garder le contrôle de l’automatisation demande des preuves, pas une confiance de principe.

À garder en tête
  • Identifiez le type de budget avant tout calcul : quotidien et total n’obéissent pas aux mêmes limites.
  • Conservez l’enveloppe, bornez chaque campagne et rendez le lot atomique et idempotent.
  • Bloquez l’écriture si la mesure, l’éligibilité ou la maturité des conversions est douteuse.
  • Journalisez l’avant, la décision, l’après et la procédure de retour arrière.

Quel niveau d’automatisation choisir ?

Commencez par le coût d’une mauvaise décision. Si une anomalie peut attendre votre revue, une alerte suffit. Si l’équipe traite trop de campagnes pour refaire le calcul, produisez une recommandation chiffrée. Si la réaction doit être rapide mais que le contexte reste ambigu, ajoutez une approbation. La mutation sans approbation ne gagne sa place que lorsque l’état sûr, l’action et le retour arrière sont tous déterministes.

Écrivez d’abord la spécification : campagnes incluses par identifiant ou libellé, enveloppe à conserver, métrique et fenêtre, délai de conversion, formule de rythme, fuseau, données manquantes, bornes, variation maximale, période de refroidissement, conditions d’arrêt, destinataires et durée de conservation des journaux. Puis exécutez en mode fantôme : le script calcule et enregistre ce qu’il aurait fait, sans muter.

Comparez ces décisions simulées à des cas connus, y compris zéro conversion, coût nul, enveloppe changée, campagne suspendue, donnée en retard et erreur sur une seule campagne. L’écriture vient après des tests reproductibles, pas après une durée arbitraire d’observation. Si personne ne peut expliquer le calcul, lire les erreurs et restaurer l’état précédent, restez au niveau recommandation. Verdict : automatisez seulement la décision que vous savez auditer.

Comment mettre en place un script de suivi du budget PMax ?

Le montage tient en quatre étapes. Le code vient en deuxième, pas en première.

Installer le script en 4 étapes

  1. Créer et attribuer. Dans Google Ads, ouvrez Outils, puis Actions groupées et Scripts, ou recherchez « Scripts ». Créez un script, nommez-le, désignez son propriétaire et documentez les comptes couverts. La première prévisualisation ou exécution demande une autorisation OAuth. Celle-ci n’élargit pas les droits Google Ads : Lecture seule permet de consulter les campagnes et les rapports, tandis que Standard et Administrateur permettent de modifier les campagnes. Le script agit avec les droits de son auteur ; si cet auteur perd l’accès au compte, l’exécution s’arrête jusqu’à réautorisation.
  2. Lire avant d’écrire. Sélectionnez les PMax avec AdsApp.performanceMaxCampaigns() ou par identifiants. Lisez le type et le montant du budget, puis interrogez des champs explicitement choisis : metrics.cost_micros, metrics.conversions, metrics.conversions_value, segments.date, segments.hour, état de campagne et type d’enchères. Calculez CPA et ROAS en gérant les zéros et les valeurs absentes.
  3. Tester sans effet de bord. Lancez l’Aperçu, vérifiez les journaux de changements et les erreurs, puis testez la logique sur des données figées et des cas limites. L’Aperçu neutralise les modifications qui passent par AdsApp, mais pas les autres services : un e-mail peut partir et une feuille peut être modifiée. Protégez ces appels avec AdsApp.getExecutionInfo().isPreview(). Ensuite, laissez tourner le mode fantôme sur des données réelles.
  4. Déployer comme un service. Fixez la cadence, le fuseau, les destinataires, les données minimales conservées et la durée de rétention. Ajoutez une alerte d’échec, un verrou contre deux exécutions concurrentes, un identifiant de lot, une reprise idempotente et un arrêt d’urgence. Ne planifiez l’écriture qu’après validation du mode fantôme et d’un retour arrière complet.

Le chemin d’interface, l’autorisation et le piège de l’Aperçu sont documentés par Google. Les autorisations ne se résument pas à « accéder à une adresse e-mail » : chaque service appelé peut demander ses propres droits, et les destinataires restent une configuration à gouverner. Guide officiel de démarrage, mode Aperçu et niveaux d’accès Google Ads, consultés le 26 juillet 2026.

Comment régler la fréquence d’exécution ?

Le budget quotidien ne suffit pas à choisir la cadence de suivi du rythme de consommation. Partez de la perte maximale tolérable, de la vitesse de dépense observée, du délai des statistiques et du temps réel de réaction. Une alerte horaire sans personne disponible avant le lendemain ne protège rien.

Question Calcul à poser Conséquence sur la cadence
Quelle perte maximale pouvez-vous absorber avant intervention ? Perte tolérable divisée par le coût horaire défavorable attendu L’intervalle d’exécution doit rester inférieur au délai obtenu, marge de réaction comprise
À quoi ressemble une journée normale à cette heure ? Profil cumulé des mêmes jours de semaine, dans le fuseau du compte, hors incidents et promotions atypiques Comparez à cette courbe, jamais à l’enveloppe complète d’une journée encore inachevée
Le signal sera-t-il frais et traité ? Délai de remontée des statistiques, durée d’exécution, quotas, disponibilité humaine et fatigue d’alerte Réduisez la fréquence si le prochain passage arrive avant des données nouvelles ou une réaction possible

La formule de base est écart = coût cumulé observé / coût cumulé attendu - 1. La courbe attendue doit intégrer jours actifs, saisonnalité prévue, changements d’enveloppe et données encore immatures. Le modèle officiel « Account Anomaly Detector » compare lui-même l’heure courante aux mêmes jours de semaine historiques et avertit que les statistiques peuvent avoir jusqu’à environ trois heures de retard. Google limite par ailleurs un script de compte annonceur à 30 minutes ; les changements déjà appliqués subsistent si l’exécution est annulée à la limite. Détecteur d’anomalies officiel et limites Google Ads Scripts, consultés le 26 juillet 2026.

Que peut réellement lire et modifier un script PMax ?

AdsApp.performanceMaxCampaigns() récupère les PMax et expose notamment leur état, leurs dates, leur stratégie d’enchères, leurs groupes de composants, leurs statistiques et leur budget. getStatsFor() accepte des plages prédéfinies ou des dates explicites. Ce raccourci suffit pour une alerte simple, à condition de nommer la plage et de calculer CPA ou ROAS sans division aveugle. Référence officielle PerformanceMaxCampaign, consultée le 26 juillet 2026.

Pour une lecture contrôlée, AdsApp.search() exécute une requête GAQL. Vous choisissez la ressource, les champs et les segments compatibles : campagne, budget, coût en micros, conversions, valeur, date, heure, type d’enchères ou raisons d’état. Les diagnostics Merchant Center, les changements de configuration et les performances par produit relèvent de ressources distinctes ; ne les inventez pas à partir du seul coût campagne. Guide officiel des rapports PMax dans Scripts, consulté le 26 juillet 2026.

Sur un budget de type DAILY, campaign.getBudget() renvoie un objet Budget et setAmount() modifie le budget moyen quotidien dans la devise du compte. getType() évite de confondre DAILY et TOTAL ; getAmount() vaut zéro pour un budget total. Une PMax ne peut pas utiliser un budget partagé : réallouer entre deux PMax signifie modifier deux budgets non partagés, pas déplacer une campagne dans un pot commun. Référence officielle AdsApp.Budget, consultée le 26 juillet 2026.

Sur un budget TOTAL, l’objet expose getTotalAmount() et setTotalAmount() ; une mutation de campaign_budget.total_amount_micros fournit l’autre voie. La PMax doit avoir été créée avec ce type, un début et une fin. Elle ne partage pas ce budget. La documentation API PMax confirme les périodes DAILY et CUSTOM_PERIOD ; la référence Scripts contient encore une mention historique limitée à la vidéo dans le détail de setTotalAmount(). En cas d’écart documentaire, prévisualisez dans le compte visé et traitez l’erreur renvoyée comme bloquante. Budget PMax dans l’API Google Ads, consulté le 26 juillet 2026.

La couverture Scripts ne s’arrête plus au budget. Les objets PMax savent lire les groupes de composants, ajouter ou retirer certains composants, gérer plusieurs ciblages et exposer les champs d’enchères. Pour les ressources non couvertes par un objet pratique, search, mutate et mutateAll ouvrent la plupart des opérations de l’API Google Ads. La création d’une PMax passe d’ailleurs par mutation. Cela élargit le pouvoir du script ; cela ne dispense jamais de respecter les contraintes de chaque ressource. Capacités PMax avec AdsApp, consultées le 26 juillet 2026.

La limite décisive reste ailleurs. Aucun de ces appels ne fixe « 40 % sur YouTube, 60 % sur le Réseau de Recherche » dans une campagne Performance Max, ne transforme une attribution en preuve d’incrémentalité, ni ne rend les statistiques instantanées. Le script peut observer le rapport de canaux, les données produit et les signaux de campagne quand les ressources les exposent. Il ne remplace ni un test causal, ni les diagnostics de flux, ni le contrôle commercial en aval.

Script, règle automatique ou API : que choisir ?

Le bon outil dépend des données à lire, de l’action à exécuter, du délai accepté et de la manière dont vous exploiterez le dispositif. Pas du nombre de campagnes à lui seul.

Outil Ce qu’il fait bien Limite à intégrer
Rapports et diagnostics natifs Lire budget, prévisions, raisons d’état, explications et rapport de canaux sans maintenance de code Pas de formule métier personnalisée ni de mutation orchestrée entre plusieurs campagnes
Règle automatique Combiner plusieurs conditions et actions offertes par l’interface, envoyer un e-mail, modifier un budget avec bornes ; PMax propose aussi des règles de groupes de composants Champs, actions et portée imposés par l’interface ; exécution possible dans les deux heures suivant l’horaire prévu ; aucune priorité entre règles concurrentes
Google Ads Script Courbe horaire sur mesure, GAQL, logique multi-campagnes, mode fantôme, e-mail, feuille ou mutation atomique OAuth, propriétaire, limite de 30 minutes, quotas des services, tests, journaux, reprise et maintenance
API Google Ads externe Industrialisation, orchestration, stockage et supervision dans votre propre système Jeton développeur, versions, infrastructure et sécurité à opérer ; aucune sûreté automatique de plus qu’un script bien conçu

Une règle automatique n’est pas limitée à une seule condition. Google permet d’ajouter conditions et actions, recommande des bornes minimales et maximales, et avertit que deux règles visant les mêmes entités n’ont pas de priorité intrinsèque. Pour PMax, l’aide actuelle documente explicitement les règles depuis l’onglet Groupes de composants ou Actions groupées. Une règle de groupe de composants planifie l’état ou l’action proposée dans cette portée ; elle ne répartit pas le budget entre canaux. Vérifiez toujours les actions réellement proposées dans le compte. Configuration officielle des règles PMax et garde-fous officiels des règles automatiques, consultés le 26 juillet 2026.

Pour un e-mail sur un seuil natif, la règle est souvent le choix le moins coûteux. Pour une référence horaire propre au compte, un calcul de marge ou une réallocation atomique, le script devient pertinent. Pour plusieurs systèmes, un cycle de validation externe ou une supervision centralisée, l’API peut justifier son coût. Soyons clairs : changer d’outil ne corrige jamais une métrique mal définie.

Que vaut un script généré par une IA ?

Un modèle génératif peut produire une première version. Il ne remplace pas la revue d’une personne capable de comprendre le JavaScript, les autorisations, les données lues, les limites d’exécution et l’effet de chaque écriture. Le prompt est une spécification ; la sécurité se joue dans le code et son exploitation.

Une instruction utile fixe au minimum quatre blocs :

  1. Le périmètre. Donnez les identifiants exacts des campagnes, le type de budget attendu, les ressources et les champs à lire. N’autorisez aucune déduction sur les produits, le flux ou les canaux si la requête ne les mesure pas.
  2. La comparaison. Décrivez la courbe cumulée attendue dans le fuseau du compte, les fenêtres assez mûres, les jours comparables et le traitement du retard de données, des promotions et des changements récents.
  3. La sortie. Exigez une alerte, une recommandation ou une demande d’approbation avant toute mutation. Faites préciser le contenu attendu : campagne, valeur observée, référence, écart, proposition, motif et identifiant du lot.
  4. Les garde-fous. Imposez l’aperçu, un mode fantôme, des bornes absolues et relatives, un lot atomique, l’idempotence, un journal avant-après, un bouton d’arrêt et un retour arrière testé.

Testez ensuite sur des données figées : coût nul, conversion tardive, changement de budget le jour même, budget total, campagne suspendue, dépassement de quota, erreur partielle et relance du même lot. Puis laissez le script en mode fantôme jusqu’à ce que ses recommandations soient expliquées, rapprochées des décisions humaines et suivies sans faux sentiment d’urgence.

Un code généré peut être syntaxiquement correct et financièrement dangereux. Avant la planification, nommez son propriétaire, ses destinataires, sa procédure de reprise et la personne autorisée à valider une écriture. Sans cette responsabilité, vous n’avez pas une automatisation : vous avez une dépense sans pilote.

Questions fréquentes

Un script peut-il répartir automatiquement le budget entre plusieurs PMax ?
Oui, il peut modifier les budgets de plusieurs campagnes si leurs types et leurs états l’autorisent. Il ne peut pas réserver un pourcentage au Réseau de Recherche, à YouTube ou au Display au sein d’une PMax. Chaque PMax utilise un budget non partagé. Une réallocation automatique doit donc borner chaque campagne, vérifier le total et appliquer les écritures en un lot contrôlé.
Quelle différence entre budget moyen quotidien et budget total pour PMax ?
Avec un budget moyen quotidien inchangé, la dépense d’une journée peut atteindre deux fois ce montant, dans la limite mensuelle de 30,4 fois le budget. Le budget total concerne une nouvelle PMax datée, couvre actuellement 3 à 90 jours et plafonne la dépense de la période sans plafond quotidien. Son type ne peut plus être converti après création.
Comment fixer un seuil d’alerte de rythme de dépense ?
Il n’existe pas de pourcentage universel. Comparez le coût cumulé à une courbe des mêmes jours et heures, dans le fuseau du compte, puis intégrez le retard des statistiques, les événements prévus et les changements récents. La fréquence et le seuil découlent ensuite de la perte acceptable et du délai réel de réaction.
Un script peut-il détecter la cannibalisation de la marque ?
Il peut réunir des indices, pas établir la causalité. Une baisse du Réseau de Recherche de marque pendant que PMax progresse peut aussi venir du budget, des enchères, de la saison, de l’attribution ou d’un changement de mesure. Contrôlez ces variables et organisez un test avant de modifier le budget sur ce seul signal.
Faut-il utiliser l’API Google Ads pour automatiser sans risque ?
Non. Google Ads Scripts expose déjà la lecture GAQL et les mutations, sans jeton développeur. L’API externe apporte surtout orchestration, stockage et supervision. Dans les deux cas, la sûreté vient des droits, tests, bornes, lots atomiques, journaux, validations et procédures de retour arrière, pas du nom de l’outil.
Un seul script peut-il couvrir toutes les campagnes PMax ?
Oui, techniquement. L’architecture dépend toutefois du volume, de la limite d’exécution de 30 minutes, des quotas, des droits, des règles propres à chaque activité et de l’isolation des erreurs. Conservez des points de reprise et séparez les traitements lorsque l’échec d’un lot pourrait affecter trop de campagnes à la fois.
Vincent Duquesne, consultant Google Ads
Vincent Duquesne
Expert Google Ads Certifié depuis 2011 : j’ai audité et restructuré des centaines de comptes dans des dizaines de thématiques différentes. +20M€ gérés.
Google Partner Premier 2026

Script trop actif ?

On garde l’alerte et on reprend la décision.

Réserver un appel