Campagnes brouillons et tests

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 préparer des modifications sans modifier la campagne d'origine. Les modifications préparées 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 spécifique 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.

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 à l'aide de DraftBuilder et en fournissant un nom unique. La campagne de base doit être une campagne sur le Réseau de Recherche (avec expansion au Réseau Display ou non) ou une campagne display (à l'exception des campagnes pour applications mobiles sur le Réseau Display). Elle ne doit pas utiliser 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 DraftOperation, une opération typique dans les scripts. Pour en savoir plus, consultez notre guide sur les outils de création.

Un draft est identifié de manière unique par la combinaison de l'ID de sa campagne de base et de son ID de brouillon. 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 préparer les modifications à apporter à la campagne de base, propagez-les dans 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 effectuer de test à partir d'une campagne brouillon contenant des annonces qui ne respectent pas le règlement.

Exécuter le brouillon

Une fois la campagne brouillon provisionnée, 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 d'un brouillon est irréversible. Toutefois, vous pouvez toujours le consulter sous Tous les brouillons dans l'onglet "Brouillons" de l'UI Google Ads.

        draft.remove();
    
  2. Si vous décidez de conserver les modifications 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 du brouillon est alors Application en cours… dans l'UI Google Ads. Toutefois, cette 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

Créer un test

Une experiment est semblable à un brouillon et est également créée à 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 bras (appelé bras de contrôle) contiendra la campagne de base, et l'autre (appelé bras de traitement) contiendra une nouvelle campagne brouillon que vous personnaliserez en suivant les étapes 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
La campagne sur laquelle vous souhaitez baser le test.
withTrafficSplitPercent
Pourcentage du trafic qui sera redirigé vers le bras de test. Pour 50 %, spécifiez 50.
withStartDate et withEndDate
Indique les dates de début et de fin de la campagne. Spécifiez-le au format YYYYMMdd.
withType
 : SEARCH_CUSTOM ou DISPLAY_CUSTOM, selon le réseau que vous utilisez.
withSuffix
Spécifie un suffixe qui sera ajouté au nom de la campagne test lors de sa création.
withGoals
Spécifie les objectifs de ce test. Il s'agit simplement 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 qui verra les annonces de la campagne test au lieu de celles de la campagne de base. C'est pourquoi chaque campagne de base ne peut comporter qu'un seul test en cours à 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

Comme pour une draft, une experiment n'est pas une campagne. Il établit plutôt un lien entre 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. Ces modifications seront ensuite appliqué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 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 que les annonces cessent d'être diffusées, mais que vous puissiez toujours interagir avec lui. Un test terminé peut toujours être supprimé, appliqué ou promu. 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 vous pouvez toujours le consulter sous Tous les tests dans l'onglet "Tests" de l'UI Google Ads.

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

    1. Vous pouvez commencer à appliquer les modifications. Comme pour les brouillons, vous ne recevrez pas de notification une fois le processus terminé.

          experiment.startApplying();
      
    2. 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é transition, 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 diplômé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 tests et fictives, 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 et à leur groupe d'annonces de base : 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, comme 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 méthodes isBaseCampaign(), isDraftCampaign() et isExperimentCampaign() ont été ajoutées aux campagnes.

Les nouvelles méthodes Campaign.draftCampaigns() et Campaign.experimentCampaigns() vous permettent d'accéder à toutes les campagnes brouillons et tests qui utilisent la campagne appelante comme 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 poursuivent lorsque le script est exécuté, mais peuvent échouer de manière asynchrone :

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

Vous devez attendre de voir si ces opérations ont réussi. L'UI Google Ads affiche les états Appliqué ou Actif une fois les tâches startApplying() et startScheduling() respectivement effectuées. 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 lors de la phase d'aperçu, mais réussissent après leur exécution (par exemple, après la création d'un brouillon) :

const draftCampaign = draft.getDraftCampaign();
draftCampaign.createNegativeKeyword("shoes"); // Will fail in preview.

Cette opération échouera 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 que vous essayez immédiatement de récupérer sa campagne brouillon, l'opération échouera en mode Aperçu, 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. Ne poursuivez avec un script ayant échoué en mode Aperçu que si vous pensez que la cause est due à des limites du mode Aperçu.