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.
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.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.
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.
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.
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.
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.
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.
Le montage tient en quatre étapes. Le code vient en deuxième, pas en première.
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.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.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.
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.
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.
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.
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 :
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.
On garde l’alerte et on reprend la décision.
Réserver un appel