Les scripts Google Ads sont compatibles avec les campagnes brouillons et tests, qui permettent de préparer et de tester les modifications apportées aux campagnes sur les Réseaux de Recherche et Display.
Un brouillon est un clone d'une campagne existante qui ne diffuse pas ses propres annonces, mais qui peut être utilisé pour mettre en scène des modifications sans modifier la campagne d'origine. Les modifications en phase peuvent ensuite être appliquées à la campagne de base.
Un test exécute une campagne personnalisable en parallèle de la campagne d'origine et diffuse des annonces auprès d'un pourcentage de trafic spécifié. En fonction des résultats du test, vous pouvez appliquer les modifications à la campagne d'origine, associer le test à une campagne indépendante ou abandonner la campagne test.
Ce guide explique le workflow de base pour travailler avec des brouillons et des tests dans un script.
Brouillons
Créer un brouillon
Un brouillon est créé à partir d'une campagne de base existante en utilisant un DraftBuilder
et en indiquant un nom unique. La campagne de base doit être une campagne sur le Réseau de Recherche, une campagne sur le Réseau de Recherche avec expansion au Réseau Display ou une campagne display (à l'exception des campagnes pour les applications mobiles sur le Réseau Display). Elle ne doit pas avoir de budget partagé.
const campaign = AdsApp.campaigns()
.withCondition(`campaign.name = "${campaignName}"`)
.get()
.next();
const draftBuilder = campaign.newDraftBuilder()
.withName("INSERT_DRAFT_NAME_HERE")
.build();
const draft = draftBuilder.getResult();
DraftBuilder.build()
renvoie un DraftOperation
, une opération typique dans les scripts. Pour en savoir plus, consultez notre guide des outils de création.
Un draft
est identifié de manière unique par la combinaison de son ID de campagne de base et de son ID de version préliminaire. Pour en savoir plus, consultez la documentation sur l'option DraftSelector.withIds()
.
Provisionner la campagne brouillon
Un objet draft
associe une campagne de base et une campagne brouillon. Pour mettre en scène les mises à jour de la campagne de base, vous devez propager les modifications via la campagne brouillon.
Comme toute autre campagne, une campagne d'ébauche dispose de méthodes permettant d'obtenir et de définir ses différents attributs, tels que les critères, les groupes d'annonces, les enchères et les annonces.
const draftCampaign = draft.getDraftCampaign();
draftCampaign.setAdRotationType("CONVERSION_OPTIMIZE");
draftCampaign.createNegativeKeyword("shoes");
N'oubliez pas que les vérifications des règles relatives aux annonces sont effectuées pour une campagne d'ébauche comme pour la campagne de base. Vous ne pourrez pas effectuer de test à partir d'une campagne brouillon contenant des annonces non conformes aux règles.
Exécuter le brouillon
Une fois la campagne brouillon provisionnée, vous pouvez effectuer l'une des opérations suivantes :
Si vous ne souhaitez pas utiliser les modifications, vous pouvez simplement supprimer le brouillon. La suppression du brouillon est irréversible, mais vous pouvez toujours le consulter sous Tous les brouillons dans l'onglet "Brouillons" de l'interface utilisateur de Google Ads.
draft.remove();
Si vous décidez de conserver les modifications que vous avez apportées au brouillon, vous pouvez les appliquer :
draft.startApplying();
Cette méthode lance le processus d'application des modifications à la campagne de base. L'état de la version préliminaire est donc En cours d'application dans l'interface utilisateur de Google Ads. Cependant, la méthode ne vous avertit pas lorsque le processus est terminé.
Si vous souhaitez d'abord tester vos modifications, vous pouvez utiliser le brouillon pour créer un test.
Tests
Créer un test
Un experiment
est semblable à un brouillon et est également créé à partir d'une campagne de base. Vous créez un experiment
avec un ExperimentBuilder
.
Un test avec deux "bras" représentant les différentes parties du test sera automatiquement créé. Un groupe (appelé groupe de contrôle) contiendra la campagne de base et l'autre (appelé groupe de traitement) une nouvelle campagne brouillon que vous personnaliserez selon les étapes du brouillon ci-dessus avant de planifier le test.
Lorsque vous créez un test, veillez à définir tous les éléments suivants dans le générateur :
withCampaign
- Campagne sur laquelle vous souhaitez baser le test.
withTrafficSplitPercent
- Part du trafic qui sera redirigé vers le groupe de test. Pour 50 %, spécifiez
50
. withStartDate
etwithEndDate
- Spécifie les dates de début et de fin de la campagne. Spécifiez au format
YYYYMMdd
. withType
SEARCH_CUSTOM
ouDISPLAY_CUSTOM
, selon le réseau que vous utilisez.withSuffix
- Spécifie un suffixe qui sera ajouté au nom de la campagne de traitement lors de sa création.
withGoals
- Spécifie les objectifs de ce test. Il ne s'agit que d'un rappel de vos objectifs lorsque vous l'avez créé. Une bonne valeur par défaut est
[{metric: 'CLICKS', direction: 'INCREASE'}]
.
Le pourcentage de répartition du trafic détermine la part du trafic pour laquelle les annonces de la campagne test seront diffusées au lieu de celles de la campagne de base. Par conséquent, chaque campagne de base ne peut exécuter qu'un seul test à la fois.
const experiment = AdsApp.newExperimentBuilder()
.withCampaign(campaign)
.withTrafficSplitPercent(50)
.withStartDate("20230501")
.withEndDate("20230601")
.withType("SEARCH_CUSTOM")
.withSuffix("experiment")
.withGoals([{metric: 'CLICKS', direction: 'INCREASE'}])
.build();
// The experimentCampaign represents the customizeable draft.
const experimentCampaign = experiment.getExperimentCampaign();
Contrairement aux brouillons, les tests sont identifiés de manière unique par un seul ID. Pour en savoir plus, consultez la page ExperimentSelector.withIds()
.
Provisionner la campagne test
À l'instar d'une draft
, l'élément experiment
lui-même n'est pas une campagne. Il s'agit plutôt de la campagne de base, du brouillon et de la campagne test. Les champs d'une campagne test peuvent être modifiés, à quelques exceptions près:
- nom
- état
- date de début
- date de fin
- budget
const experimentCampaign = experiment.getExperimentCampaign();
// Will succeed.
experimentCampaign.setAdRotationType("ROTATE_FOREVER");
experimentCampaign.createNegativeKeyword("sneakers");
// Will fail.
experimentCampaign.setName("INSERT_EXPERIMENT_NAME_HERE");
Vous pouvez modifier le nom, la date de début et la date de fin du test. Les modifications seront ensuite propagées à la campagne test.
// Will succeed.
experiment.setName("INSERT_EXPERIMENT_NAME_HERE");
// Will succeed if date is acceptable.
const date = "20220601";
experiment.setStartDate(date);
Pour lancer le test, appelez experiment.startScheduling()
. Il s'agit d'un processus asynchrone, car il doit copier tous les paramètres de la campagne de base.
Une fois le test terminé
Une fois votre test terminé, plusieurs options s'offrent à vous. Nous vous recommandons de laisser le test se terminer complètement afin qu'il cesse de diffuser des annonces, mais vous pouvez toujours interagir avec lui. Un test terminé peut toujours être supprimé, appliqué ou finalisé, et les statistiques de performances de sa campagne restent accessibles.
experiment.finish();
const stats = experimentCampaign.getStatsFor("INSERT_TIME_PERIOD_HERE");
Si vous n'êtes pas satisfait des statistiques du test, vous pouvez supprimer le test, ce qui supprime également la campagne test. La suppression du test est irréversible, mais vous pouvez toujours le consulter sous Tous les tests dans l'onglet "Tests" de l'interface utilisateur de Google Ads.
experiment.remove();
Si vous êtes satisfait des résultats du test, deux options s'offrent à vous :
Vous pouvez commencer à appliquer les modifications. Comme pour les brouillons, vous ne recevrez pas de notification lorsque le processus sera terminé.
experiment.startApplying();
Vous pouvez définir la campagne test comme une campagne indépendante et entièrement opérationnelle, sans affecter la campagne de base. Ce processus, appelé graduation, se termine immédiatement et nécessite de définir un nouveau budget.
const budget = AdsApp.budgets() .withCondition(`campaign_budget.id = ${budgetId}`) .get() .next(); experiment.graduate(budget);
La nouvelle campagne ne peut plus partager de budget avec la campagne de base, ce qui nécessite un nouveau budget. Les campagnes graduées sont comme les campagnes normales en ce sens que tous leurs champs sont modifiables et qu'elles peuvent servir de campagne de base pour d'autres brouillons et tests.
Autres points à noter
Entités de base
L'introduction des brouillons et des tests dans les scripts Google Ads introduit également la notion d'entités de base. Les campagnes fictives et tests, ainsi que les groupes d'annonces qu'elles contiennent, sont distincts de leurs campagnes de base d'origine. C'est pourquoi Campaign
et AdGroup
disposent désormais de méthodes pour accéder à leur campagne de base et à leur groupe d'annonces : getBaseCampaign()
et getBaseAdGroup()
.
Ces méthodes renvoient l'entité appelante si elles sont appelées par une campagne ou un groupe d'annonces de base. Des méthodes similaires ont également été appliquées aux entités des campagnes et des groupes d'annonces, telles que les mots clés et les annonces.
Pour faciliter le suivi des entités de base, les campagnes ont reçu les méthodes isBaseCampaign()
, isDraftCampaign()
et isExperimentCampaign()
.
Les nouvelles méthodes Campaign.draftCampaigns()
et Campaign.experimentCampaigns()
vous permettent d'accéder à toutes les campagnes brouillons et tests dont la campagne d'appel est la campagne de base. Toutefois, vous ne pouvez pas sélectionner de campagnes d'avant-première avec CampaignSelector.withCondition()
. Utilisez plutôt AdsApp.drafts()
.
Gestion des exceptions
Les méthodes suivantes impliquant des brouillons et des tests sont exécutées lorsque le script est exécuté, mais peuvent échouer de manière asynchrone :
Draft.startApplying()
Experiment.startApplying()
Experiment.startScheduling()
Vous devez attendre pour vérifier si ces opérations réussissent. L'UI Google Ads affiche les états Appliquée ou Active une fois que startApplying()
et startScheduling()
ont bien été exécutés, respectivement. En cas d'échec, il indique Impossible d'appliquer ou Impossible de créer, ce qui vous permet de cliquer pour afficher les erreurs.
Il est également possible que certaines méthodes échouent à l'étape de prévisualisation, mais réussissent après leur exécution. Par exemple, après avoir créé un brouillon :
const draftCampaign = draft.getDraftCampaign();
draftCampaign.createNegativeKeyword("shoes"); // Will fail in preview.
Cette opération échoue en mode Aperçu, car elle ne peut pas accéder immédiatement à la campagne brouillon.
De même, si vous créez un test et essayez immédiatement d'extraire sa campagne de prévisualisation, cela échouera, car le brouillon n'est pas réellement créé.
Pour cette raison, vérifiez les journaux sous votre liste de scripts après les avoir exécutés et ne poursuivez avec un script ayant échoué en mode Preview que si vous pensez que la cause est due à des limites du mode Preview.