Campagnes brouillons et tests

Les scripts Google Ads sont compatibles avec les campagnes brouillons et les campagnes tests, qui permettent de préparer et de tester des modifications dans les campagnes sur le Réseau de Recherche et sur le Réseau Display.

Ce guide explique le workflow de base pour utiliser des brouillons et des tests dans un script.

Brouillons

Un brouillon est un clone d'une campagne existante qui ne diffuse pas ses propres annonces, mais qui peut être utilisé pour préparer des modifications sans modifier la campagne d'origine. Les modifications préparées peuvent ensuite être appliquées à la campagne de base.

Créer un brouillon

Un brouillon est créé à partir d'une campagne de base existante à l'aide d'un DraftBuilder et en fournissant 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'exclusion des campagnes pour applications mobiles sur le Réseau Display), et 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 sur les builders.

Un draft est identifié de manière unique par la combinaison de son ID de campagne de base et de son ID de brouillon. Pour en savoir plus, consultez DraftSelector.withIds().

Provisionner la campagne brouillon

Un objet draft associe une campagne de base et une campagne brouillon. Pour préparer les mises à jour de la campagne de base, vous propagez les modifications via la campagne brouillon.

Comme toute autre campagne, une campagne brouillon 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");

Les vérifications des règles relatives aux annonces sont effectuées pour une campagne brouillon comme pour la campagne de base. Vous ne pourrez pas exécuter de test à partir d'une campagne brouillon dont les annonces ne respectent pas le règlement.

Exécuter le brouillon

Après avoir provisionné la campagne brouillon, vous pouvez effectuer l'une des opérations suivantes :

  1. Si vous ne souhaitez pas utiliser les modifications, vous pouvez simplement supprimer le brouillon. La suppression du brouillon est irréversible, mais il reste visible sous Tous les brouillons dans l'onglet "Brouillons" de l'interface utilisateur Google Ads.

        draft.remove();
    
  2. 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 mises à jour à la campagne de base. Le brouillon aura donc l'état Application en cours... dans l'interface utilisateur Google Ads. Toutefois, la méthode ne vous avertira pas lorsque le processus sera terminé.

  3. Si vous souhaitez d'abord tester vos modifications, vous pouvez utiliser le brouillon pour créer un test.

Tests

Un test exécute une campagne personnalisable en parallèle de la campagne d'origine et diffuse des annonces à un pourcentage spécifié du trafic. En fonction des résultats du test, vous pouvez appliquer les modifications à la campagne d'origine, créer une campagne indépendante à partir du test ou abandonner la campagne test.

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. Cela créera automatiquement un test avec deux "bras" qui représentent les différentes parties du test. Un groupe (appelé groupe de contrôle) contiendra la campagne de base, et l'autre (appelé groupe de traitement) contiendra une nouvelle campagne brouillon que vous personnaliserez (conformément aux étapes du brouillon présentées précédemment) avant de planifier le test.

Lorsque vous créez un test, veillez à définir tous les éléments suivants dans le builder :

withCampaign
La campagne sur laquelle vous souhaitez baser le test.
withTrafficSplitPercent
La part du trafic qui sera redirigée vers le groupe de test. Pour 50%, spécifiez 50.
withStartDate et withEndDate
Spécifie les dates de début et de fin de la campagne. Spécifiez au format YYYYMMdd.
withType
`SEARCH_CUSTOM` ou `DISPLAY_CUSTOM`, selon le réseau que vous utilisez.
SEARCH_CUSTOMDISPLAY_CUSTOM
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 s'agit simplement d'un rappel de vos objectifs lors de la création. Une bonne valeur par défaut est [{metric: 'CLICKS', direction: 'INCREASE'}].

Le pourcentage de répartition du trafic détermine la part du trafic qui verra les annonces de la campagne test au lieu de la campagne de base. Pour cette raison, chaque campagne de base ne peut avoir qu'un seul test en cours d'exécution à 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 ExperimentSelector.withIds().

Provisionner la campagne test

Comme un draft, un experiment n'est pas une campagne en soi. Il associe plutôt la campagne de base, le brouillon et la campagne test. Les champs d'une campagne test sont modifiables, à l'exception des suivants :

  • 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, après quoi ils seront propagés à la campagne test.

// Will succeed.
experiment.setName("INSERT_EXPERIMENT_NAME_HERE");

// Will succeed if date is acceptable.
const date = "20220601";
experiment.setStartDate(date);

Pour démarrer 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.

Après la fin du test

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 que vous puissiez toujours interagir avec lui. Un test terminé peut toujours être supprimé, appliqué ou finalisé, et les statistiques sur les performances de sa campagne restent accessibles.

experiment.finish();
const stats = experimentCampaign.getStatsFor("INSERT_TIME_PERIOD_HERE");
  • Si vous n'êtes pas satisfait du test en fonction des statistiques, vous pouvez le supprimer, ce qui supprime également la campagne test. La suppression du test est irréversible, mais il reste visible sous Tous les tests dans l'onglet "Tests" de l'interface utilisateur Google Ads.

        experiment.remove();
    
  • Si vous êtes satisfait des résultats du test, vous avez deux options :

    1. Vous pouvez commencer à appliquer les modifications. Comme pour les brouillons, vous ne serez pas averti lorsque le processus sera terminé.

          experiment.startApplying();
      
    2. Vous pouvez établir la campagne test en tant que campagne indépendante et entièrement opérationnelle, sans affecter la campagne de base. Ce processus, appelé finalisation, s'effectue immédiatement et nécessite la définition d'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 finalisées sont identiques aux campagnes normales : tous leurs champs sont modifiables et 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 brouillons 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 permettant d'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 de base ou un groupe d'annonces. Les entités des campagnes et des groupes d'annonces, telles que les mots clés et les annonces, ont également reçu de telles méthodes.

Pour vous aider à suivre les entités de base, les campagnes ont reçu les isBaseCampaign(), isDraftCampaign() et isExperimentCampaign() méthodes.

Les nouvelles méthodes Campaign.draftCampaigns() et Campaign.experimentCampaigns() vous permettent d'accéder à toutes les campagnes brouillons et tests dont la campagne appelante est la campagne de base. Toutefois, vous ne pouvez pas sélectionner de campagnes brouillons avec CampaignSelector.withCondition(). Utilisez plutôt AdsApp.drafts().

Gestion des exceptions

Les méthodes suivantes impliquant des brouillons et des tests se déroulent lorsque le script est exécuté, mais peuvent échouer de manière asynchrone :

  • Draft.startApplying()
  • Experiment.startApplying()
  • Experiment.startScheduling()

Vous devez attendre de vérifier si ces opérations ont réussi. L'interface utilisateur Google Ads affiche les états Appliqué ou Actif une fois que startApplying() et startScheduling() ont réussi, respectivement. En cas d'échec, elle 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 lors de l'étape d'aperçu, 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.

Cela échouera en mode Aperçu, car il ne peut pas accéder immédiatement à la campagne brouillon.

De même, la création d'un test et la tentative immédiate de récupération de sa campagne brouillon échoueront en mode Aperçu, car le brouillon n'est pas réellement créé.

Pour cette raison, consultez les journaux sous votre liste de scripts après les avoir exécutés, et ne poursuivez avec un script ayant échoué en aperçu que si vous pensez que la cause est due à des limitations du mode Aperçu.