Kampagnenentwürfe und -tests

Google Ads-Skripts unterstützen Kampagnenentwürfe und -tests, mit denen Änderungen an Kampagnen im Such- und Displaynetzwerk vorbereitet und getestet werden.

Ein Entwurf ist ein Klon einer vorhandenen Kampagne, bei dem keine eigenen Anzeigen ausgeliefert werden. Er kann jedoch verwendet werden, um Änderungen durchzuführen, ohne die ursprüngliche Kampagne zu ändern. Die gestaffelten Änderungen können dann auf die Ausgangskampagne angewendet werden.

Bei einem Test wird eine anpassbare Kampagne parallel zur ursprünglichen Kampagne durchgeführt und Anzeigen werden für einen bestimmten Prozentsatz der Zugriffe ausgeliefert. Basierend auf den Testergebnissen können Sie die Änderungen auf die ursprüngliche Kampagne anwenden, den Test in eine unabhängige Kampagne verzweigen oder die Testkampagne abbrechen.

In diesem Leitfaden wird der grundlegende Workflow für die Arbeit mit Entwürfen und Tests in einem Skript erläutert.

Entwürfe

Entwurf erstellen

Ein Entwurf wird aus einer vorhandenen Basiskampagne erstellt. Dazu wird ein DraftBuilder verwendet und ein eindeutiger Name angegeben. Die Ausgangskampagne muss eine Such- oder Suchkampagne mit Displaynetzwerk-Aktivierung oder eine Displaykampagne sein (ausgenommen Kampagnen für mobile Apps für das Displaynetzwerk). Sie darf kein gemeinsames Budget haben.

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() gibt einen DraftOperation zurück, ein typischer Vorgang in Scripts. Weitere Informationen finden Sie in unserem Leitfaden für Builder.

Ein draft ist durch die Kombination aus seiner Basiskampagnen-ID und der Entwurfs-ID eindeutig identifiziert. Weitere Informationen finden Sie unter DraftSelector.withIds().

Kampagnenentwurf bereitstellen

Ein draft-Objekt ist mit einer Ausgangskampagne und einem Kampagnenentwurf verknüpft. Um Aktualisierungen an der Basiskampagne stufenweise vorzunehmen, übernehmen Sie die Änderungen über den Kampagnenentwurf.

Wie bei jeder anderen Kampagne verfügt auch ein Kampagnenentwurf über Methoden zum Abrufen und Festlegen der verschiedenen Attribute wie Kriterien, Anzeigengruppen, Gebote und Anzeigen.

const draftCampaign = draft.getDraftCampaign();

draftCampaign.setAdRotationType("CONVERSION_OPTIMIZE");
draftCampaign.createNegativeKeyword("shoes");

Die Anzeigenrichtlinien werden für einen Kampagnenentwurf genau wie für die Ausgangskampagne überprüft. Kampagnenentwürfe mit Anzeigen, die gegen die Richtlinien verstoßen, können nicht getestet werden.

Entwurf ausführen

Nachdem Sie den Kampagnenentwurf bereitgestellt haben, haben Sie folgende Möglichkeiten:

  1. Wenn Sie die Änderungen nicht verwenden möchten, können Sie den Entwurf einfach entfernen. Der Entwurf kann nicht rückgängig gemacht werden. Sie finden ihn aber in der Google Ads-Benutzeroberfläche auf dem Tab „Entwürfe“ unter Alle Entwürfe.

    draft.remove();
    
  2. Wenn Sie die im Entwurf vorgenommenen Änderungen beibehalten möchten, können Sie sie direkt übernehmen:

    draft.startApplying();
    

    Mit dieser Methode werden die Aktualisierungen auf die Basiskampagne angewendet, sodass der Entwurf in der Google Ads-Benutzeroberfläche den Status Wird angewendet... hat. Sie werden dabei jedoch nicht benachrichtigt, wenn der Vorgang abgeschlossen ist.

  3. Wenn Sie Ihre Änderungen zuerst testen möchten, können Sie mithilfe des Entwurfs einen Test erstellen.

Tests

Test erstellen

Ein experiment ähnelt einem Entwurf und wird aus einer Basiskampagne erstellt. Sie erstellen ein experiment mit ExperimentBuilder. Dadurch wird automatisch ein Test mit zwei „Verzweigungen“ erstellt, die die verschiedenen Teile des Tests repräsentieren. Eine Verzweigung (Kontrollverzweigung) umfasst die Ausgangskampagne und die andere (Testverzweigung) einen neuen Kampagnenentwurf, den Sie vor der Planung des Tests wie für den Entwurf oben beschrieben anpassen.

Wenn Sie einen Test erstellen, müssen Sie Folgendes im Builder festlegen:

withCampaign
Die Kampagne, auf der der Test basieren soll
withTrafficSplitPercent
Der Anteil der Zugriffe für die Testverzweigung. Für 50 % geben Sie 50 an.
withStartDate und withEndDate
Das Start- und Enddatum der Kampagne. Geben Sie das Format im YYYYMMdd-Format an.
withType
Je nachdem, welches Netzwerk Sie verwenden, entweder SEARCH_CUSTOM oder DISPLAY_CUSTOM.
withSuffix
Gibt ein Suffix an, das dem Namen der Testkampagne bei ihrer Erstellung hinzugefügt wird.
withGoals
Gibt die Ziele für diesen Test an. Dies dient nur dazu, sich daran zu erinnern, welche Ziele Sie beim Erstellen hatten. Ein guter Standardwert ist [{metric: 'CLICKS', direction: 'INCREASE'}].

Mit dem Prozentsatz für die Aufteilung der Zugriffe wird festgelegt, welchem Anteil der Zugriffe Anzeigen aus der Testkampagne und nicht aus der Ausgangskampagne präsentiert werden. Aus diesem Grund kann für jede Ausgangskampagne jeweils nur ein Test ausgeführt werden.

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();

Im Gegensatz zu Entwürfen werden Tests durch eine einzelne ID eindeutig identifiziert. Weitere Informationen finden Sie unter ExperimentSelector.withIds().

Testkampagne bereitstellen

Ähnlich wie ein draft ist ein experiment selbst keine Kampagne. Vielmehr bezieht er sich auf die Ausgangskampagne, den Entwurf und die Testkampagne. Die Felder einer Testkampagne können geändert werden. Es gibt jedoch folgende Ausnahmen:

  • name
  • status
  • Startdatum
  • Enddatum
  • Budget
const experimentCampaign = experiment.getExperimentCampaign();

// Will succeed.
experimentCampaign.setAdRotationType("ROTATE_FOREVER");
experimentCampaign.createNegativeKeyword("sneakers");

// Will fail.
experimentCampaign.setName("INSERT_EXPERIMENT_NAME_HERE");

Sie können den Namen, das Start- und das Enddatum des Tests ändern. Danach werden sie in die Testkampagne übernommen.

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

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

Rufen Sie experiment.startScheduling() auf, um den Test zu starten. Dies ist ein asynchroner Prozess, da alle Einstellungen aus der Basiskampagne kopiert werden müssen.

Nach dem Ende des Tests

Wenn der Test abgeschlossen ist, haben Sie mehrere Möglichkeiten. Wir empfehlen, den Test vollständig abzuschließen. Dann werden keine Anzeigen mehr ausgeliefert, Sie können aber weiterhin damit interagieren. Ein Test mit dem Status Abgeschlossen kann weiterhin entfernt, angewendet oder hochgestuft werden und die Leistungsstatistiken der zugehörigen Kampagne sind weiterhin zugänglich.

experiment.finish();
const stats = experimentCampaign.getStatsFor("INSERT_TIME_PERIOD_HERE");
  • Wenn Sie anhand der Statistiken nicht zufrieden sind, können Sie den Test entfernen. Dadurch wird auch die Testkampagne entfernt. Das Entfernen des Tests kann nicht rückgängig gemacht werden. Sie finden ihn aber auf der Google Ads-Benutzeroberfläche auf dem Tab „Tests“ unter Alle Tests.

    experiment.remove();
    
  • Wenn Sie mit den Ergebnissen des Tests zufrieden sind, haben Sie zwei Möglichkeiten:

    1. Sie können mit dem Übernehmen der Änderungen beginnen. Wie bei Entwürfen werden Sie nicht benachrichtigt, wenn der Vorgang abgeschlossen ist.

      experiment.startApplying();
      
    2. Sie können eine Testkampagne als unabhängige, voll funktionsfähige Kampagne einrichten, ohne dass sich dies auf die Ausgangskampagne auswirkt. Dieser Vorgang, der als Erweiterung bezeichnet wird, wird sofort abgeschlossen und erfordert die Festlegung eines neuen Budgets.

      const budget = AdsApp.budgets()
          .withCondition(`campaign_budget.id = ${budgetId}`)
          .get()
          .next();
      
      experiment.graduate(budget);
      

      Die neue Kampagne kann kein gemeinsames Budget mehr mit der Ausgangskampagne teilen. Dafür ist ein neues Budget erforderlich. Abgestufte Kampagnen funktionieren genau wie normale Kampagnen insofern, als alle Felder geändert werden können und als Basiskampagne für weitere Entwürfe und Tests dienen.

Weitere Aspekte

Basisentitäten

Mit der Einführung von Entwürfen und Tests in Google Ads-Skripts wird auch das Konzept der Basisentitäten vorgestellt. Entwurfs- und Testkampagnen sowie die darin enthaltenen Anzeigengruppen unterscheiden sich von den ursprünglichen Basiskampagnen. Deshalb bieten Campaign und AdGroup jetzt Methoden für den Zugriff auf die Ausgangskampagne und Anzeigengruppe: getBaseCampaign() und getBaseAdGroup().

Diese Methoden geben die aufrufende Entität zurück, wenn sie von einer Basiskampagne oder Anzeigengruppe aufgerufen werden. Entitäten innerhalb von Kampagnen und Anzeigengruppen, wie Keywords und Anzeigen, erhalten solche Methoden ebenfalls.

Damit Sie den Überblick über Basisentitäten behalten, wurden Kampagnen die Methoden isBaseCampaign(), isDraftCampaign() und isExperimentCampaign() zugewiesen.

Mit den neuen Methoden Campaign.draftCampaigns() und Campaign.experimentCampaigns() können Sie auf alle Kampagnenentwürfe und -tests zugreifen, bei denen die aufrufende Kampagne die Basiskampagne ist. Sie können jedoch keine Kampagnenentwürfe mit CampaignSelector.withCondition() auswählen. Verwenden Sie stattdessen AdsApp.drafts().

Fehlerbehandlung

Die folgenden Methoden mit Entwürfen und Tests werden fortgesetzt, wenn das Skript ausgeführt wird. Sie schlagen jedoch möglicherweise asynchron fehl:

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

Sie sollten abwarten, um zu prüfen, ob diese Vorgänge erfolgreich waren. In der Google Ads-Benutzeroberfläche wird nach Abschluss von startApplying() bzw. startScheduling() der Status Angewendet oder Aktiv angezeigt. Außerdem wird bei einem Fehler Fehler beim Anwenden oder Erstellen nicht möglich angezeigt. So können Sie sich die Fehler ansehen.

Es ist auch möglich, dass einige Methoden in der Vorschauphase fehlschlagen, aber nach ihrer Ausführung erfolgreich sind. Beispiel: Nachdem ein Entwurf erstellt wurde:

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

Dieser Vorgang schlägt im Vorschaumodus fehl, da nicht sofort auf den Kampagnenentwurf zugegriffen werden kann.

Ebenso schlägt das Erstellen eines Tests und der sofortige Abruf des Kampagnenentwurfs im Vorschaumodus fehl, da der Entwurf nicht tatsächlich erstellt wird.

Prüfen Sie daher die Logs unter der Liste der Skripts, nachdem Sie sie ausgeführt haben, und fahren Sie nur dann mit einem fehlgeschlagenen Vorschau-Skript fort, wenn Sie glauben, dass die Ursache auf Einschränkungen im Vorschaumodus zurückzuführen ist.