Campagnes brouillons et tests

Les scripts Google Ads acceptent les campagnes brouillons et tests, qui permettent de préparer et de tester les modifications apportées à vos campagnes sur les Réseaux de Recherche et Display.

Un brouillon est un clone d'une campagne existante qui ne diffusera pas ses propres annonces, mais qui permet d'effectuer des modifications par étapes sans modifier la campagne d'origine. Les modifications par étapes 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écifié du trafic. En fonction des résultats du test, vous pouvez appliquer les modifications à la campagne d'origine, associer le test à une campagne indépendante ou l'abandonner.

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

Brouillons

Créer un brouillon

Un brouillon est créé à partir d'une campagne de base existante, avec un élément DraftBuilder et un nom unique. La campagne de base doit être une campagne avec expansion au Réseau de Recherche, une campagne sur le Réseau de Recherche avec expansion au Réseau Display ou une campagne display (à l'exception de la campagne destinée aux applications mobiles pour le Réseau Display). Elle ne doit pas être partagée.

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. Consultez notre guide des compilateurs pour plus de détails.

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 la documentation sur l'option DraftSelector.withIds().

Provisionner la campagne brouillon

Un objet draft concerne une campagne de base et une campagne brouillon. Pour échelonner les mises à jour de la campagne de base, vous devez appliquer les modifications à la campagne brouillon.

Comme toute autre campagne, une campagne brouillon dispose de méthodes pour obtenir et 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 ces vérifications sont effectuées pour un brouillon de campagne de la même manière que pour la campagne de base. Vous ne pouvez pas effectuer de test à partir d'une campagne brouillon contenant des annonces qui ne respectent pas les règles.

Exécuter le brouillon

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

  1. Si vous ne souhaitez pas appliquer ces modifications, il vous suffit de supprimer le brouillon. La suppression d'un 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 apportées dans le brouillon, vous pouvez les appliquer:

    draft.startApplying();
    

    Cette méthode lance le processus d'application des mises à jour à la campagne de base. L'état du brouillon est donc Applying... (Application en cours) dans l'interface utilisateur Google Ads. Cependant, la méthode ne vous avertit pas lorsque le processus est terminé.

  3. Si vous souhaitez commencer par tester vos modifications, vous pouvez utiliser la version brouillon pour créer un test.

Tests

Créer un test.

Un élément 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ée automatiquement un test avec deux "groupes" qui représentent les différentes parties du test. Un groupe (appelé groupe de contrôle) contiendra la campagne de base, et l'autre (le groupe de traitement) contiendra un nouveau brouillon de campagne que vous personnaliserez en suivant les étapes du brouillon ci-dessus avant de planifier le test.

Lorsque vous créez un test, assurez-vous de définir tous les éléments suivants dans l'outil de création:

withCampaign
Campagne sur laquelle doit porter le test.
withTrafficSplitPercent
Quelle part du trafic sera affectée au groupe de test ? Pour 50%, spécifiez 50.
withStartDate et withEndDate
Indique les dates de début et de fin de la campagne. Spécifiez-la 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 de traitement lors de sa création.
withGoals
Spécifie les objectifs de ce test. Ceci est juste un rappel à vous-même quels étaient vos objectifs lors de sa création. [{metric: 'CLICKS', direction: 'INCREASE'}] est une bonne valeur par défaut.

Le pourcentage de répartition du trafic détermine la partie du trafic qui verra les annonces de la campagne test plutôt que 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 identifiant unique. Pour en savoir plus, consultez ExperimentSelector.withIds().

Provisionner la campagne test

Tout comme une draft, une experiment en elle-même n'est pas une campagne. Il fait plutôt référence à la campagne de base, à la campagne brouillon et à la campagne test. Les champs d'une campagne test peuvent être modifiés, à quelques exceptions près:

  • name
  • status
  • 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, les dates de début et de fin du test. Une fois qu'elles sont appliquées, elles sont 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 lancer le test, appelez experiment.startScheduling(). Ce processus est asynchrone, car il doit copier tous les paramètres de la campagne de base.

À la fin du test

Une fois le test terminé, plusieurs options s'offrent à vous. Nous vous recommandons de laisser le test se terminer pour qu'il arrête de diffuser des annonces, mais que vous puissiez continuer à interagir avec celui-ci. Un test Terminé peut toujours être supprimé, appliqué ou validé. 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 résultats du test, vous pouvez supprimer le test, ce qui a également pour effet de supprimer la campagne test. La suppression du test est irréversible, mais 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, deux options s'offrent à vous:

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

      experiment.startApplying();
      
    2. Vous pouvez configurer la campagne test comme une campagne indépendante et entièrement opérationnelle, sans affecter la campagne de base. Ce processus, appelé remise de diplôme, se termine 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 catégorisées sont semblables aux campagnes standards, dans la mesure où tous leurs champs peuvent être modifiés et qu'elles peuvent servir de campagne de base pour d'autres brouillons et tests.

Autres points à prendre en compte

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 différents des 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 une campagne ou un groupe d'annonces de base sont appelés. Les entités des campagnes et des groupes d'annonces, telles que les mots clés et les annonces, disposent également de ces méthodes.

Pour faciliter le suivi des entités de base, les méthodes isBaseCampaign(), isDraftCampaign() et isExperimentCampaign() ont été attribuées aux campagnes.

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 AdsApp.drafts() à la place.

Gestion des exceptions

Les méthodes suivantes impliquant des brouillons et des tests continuent de fonctionner 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 aboutissent. L'interface utilisateur Google Ads affiche les états Applied (Appliqué) ou Active (Actif) une fois que les valeurs startApplying() et startScheduling() sont remplies. En cas d'échec, il indique Impossible d'appliquer ou Impossible de créer, vous permettant ainsi d'afficher les erreurs.

Il est également possible que certaines méthodes échouent à l'étape d'aperçu, mais qu'elles aboutissent 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 échoue en mode Aperçu, car elle 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 la campagne brouillon échoueront en mode Aperçu, car le brouillon n'a pas été réellement créé.

C'est pourquoi nous vous invitons à consulter les journaux figurant sous votre liste de scripts après les avoir exécutés et à ne procéder à l'échec d'un script en preview que si vous pensez que le problème est dû aux limites du mode Aperçu.