Kampagnenentwürfe und -tests

Google Ads-Scripts unterstützen Kampagnenentwürfe und ‑tests, mit denen Änderungen an Such- und Displaykampagnen vorbereitet und getestet werden.

Ein Entwurf ist ein Klon einer bestehenden Kampagne, in der keine eigenen Anzeigen ausgeliefert werden. Er kann verwendet werden, um Änderungen vorzunehmen, ohne die ursprüngliche Kampagne zu bearbeiten. Die vorbereiteten Änderungen können dann auf die Ausgangskampagne angewendet werden.

Bei einem Test wird eine anpassbare Kampagne parallel zur ursprünglichen Kampagne ausgeführt. Anzeigen werden für einen bestimmten Prozentsatz des Traffics ausgeliefert. Anhand der Testergebnisse können Sie die Änderungen auf die ursprüngliche Kampagne anwenden, den Test in eine unabhängige Kampagne umwandeln oder die Testkampagne beenden.

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

Entwürfe

Entwurf erstellen

Ein Entwurf wird aus einer vorhandenen Basiskampagne erstellt, indem Sie DraftBuilder verwenden und einen eindeutigen Namen angeben. Die Basiskampagne muss eine Suchkampagne, eine Suchkampagne mit Displaynetzwerk-Aktivierung oder eine Displaykampagne (mit Ausnahme von Kampagnen für mobile Apps im Displaynetzwerk) sein und 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 DraftOperation zurück, einen typischen Vorgang in Scripts. Weitere Informationen finden Sie in unserem Leitfaden zu Buildern.

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

Kampagnenentwurf bereitstellen

Ein draft-Objekt verknüpft eine Basiskampagne mit einer Entwurfskampagne. Wenn Sie Änderungen an der Ausgangskampagne vornehmen möchten, übertragen Sie sie über die Testkampagne.

Für eine Kampagne im Entwurfsstatus gibt es wie für jede andere Kampagne 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 genauso geprüft wie für die Basiskampagne. Sie können keinen Test mit einem Kampagnenentwurf durchführen, der Anzeigen mit Richtlinienverstößen enthält.

Entwurf ausführen

Nachdem Sie die Kampagne im Entwurf bereitgestellt haben, können Sie einen der folgenden Schritte ausführen:

  1. Wenn Sie die Änderungen nicht verwenden möchten, können Sie den Entwurf einfach entfernen. Das Entfernen des Entwurfs ist nicht rückgängig zu machen. Er kann aber weiterhin in der Google Ads-Benutzeroberfläche auf dem Tab „Entwürfe“ unter Alle Entwürfe aufgerufen werden.

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

        draft.startApplying();
    

    Mit dieser Methode wird der Prozess zum Anwenden der Änderungen auf die Basiskampagne gestartet. Der Entwurf hat in der Google Ads-Benutzeroberfläche den Status Wird angewendet…. Bei dieser Methode werden Sie jedoch nicht benachrichtigt, wenn der Vorgang abgeschlossen ist.

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

Tests

Test erstellen

Ein experiment ähnelt einem Entwurf und wird ebenfalls aus einer Basiskampagne erstellt. Sie erstellen ein experiment mit einem ExperimentBuilder. Dabei wird automatisch ein Test mit zwei Gruppen erstellt, die die verschiedenen Teile des Tests darstellen. Eine Gruppe (die Kontrollgruppe) enthält die Basiskampagne und die andere (die Testgruppe) eine neue Entwurfskampagne, die Sie gemäß der Anleitung für den Entwurf oben anpassen, bevor Sie den Test planen.

Achten Sie beim Erstellen eines Tests darauf, dass Sie im Builder Folgendes festlegen:

withCampaign
Die Kampagne, auf der der Test basieren soll.
withTrafficSplitPercent
Wie viel Traffic wird an die Testgruppe weitergeleitet? Geben Sie für 50 % 50 an.
withStartDate und withEndDate
Gibt das Start- und Enddatum der Kampagne an. Geben Sie das Format YYYYMMdd an.
withType
Entweder SEARCH_CUSTOM oder DISPLAY_CUSTOM, je nachdem, welches Netzwerk Sie verwenden.
withSuffix
Gibt ein Suffix an, das dem Namen der Testkampagne hinzugefügt wird, wenn sie erstellt wird.
withGoals
Gibt die Ziele für diesen Test an. Das ist nur eine Erinnerung für Sie selbst, welche Ziele Sie beim Erstellen verfolgt haben. Ein guter Standardwert ist [{metric: 'CLICKS', direction: 'INCREASE'}].

Der Prozentsatz für die Traffic-Aufteilung bestimmt, welcher Anteil des Traffics Anzeigen aus der Testkampagne anstelle der Ausgangskampagne sieht. Aus diesem Grund kann für jede ursprüngliche Kampagne 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 Testentwürfen werden Tests durch eine einzelne ID eindeutig identifiziert. Weitere Informationen finden Sie unter ExperimentSelector.withIds().

Testkampagne bereitstellen

Ähnlich wie bei einer draft ist eine experiment selbst keine Kampagne. Stattdessen wird die Basiskampagne mit dem Entwurf und der Testkampagne in Beziehung gesetzt. Die Felder einer Testkampagne können geändert werden, mit den folgenden 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");

Änderungen am Namen, Startdatum und Enddatum des Tests werden auf die Testkampagne übertragen.

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

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

Rufen Sie experiment.startScheduling() an, um den Test zu starten. Da alle Einstellungen aus der Ausgangskampagne kopiert werden müssen, ist dies ein asynchroner Vorgang.

Nach Ende des Tests

Nach Abschluss des Tests 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 abgeschlossener Test kann weiterhin entfernt, angewendet oder beendet werden. Die Leistungsstatistiken der zugehörigen Kampagne sind weiterhin verfügbar.

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

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

    1. Sie können die Änderungen anwenden. Wie bei Entwürfen werden Sie nicht benachrichtigt, wenn der Vorgang abgeschlossen ist.

          experiment.startApplying();
      
    2. Sie können die Testkampagne als unabhängige, voll funktionsfähige Kampagne einrichten, ohne dass sich das auf die Ausgangskampagne auswirkt. Dieser Prozess, der als Abschluss bezeichnet wird, wird sofort abgeschlossen und erfordert ein neues Budget.

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

      Die neue Kampagne kann kein Budget mehr mit der Basiskampagne teilen. Daher ist ein neues Budget erforderlich. Abgestufte Kampagnen sind wie normale Kampagnen. Alle Felder können geändert werden und sie können als ursprüngliche Kampagne für weitere Entwürfe und Tests dienen.

Weitere Hinweise

Basisentitäten

Mit der Einführung von Entwürfen und Tests in Google Ads-Scripts wird auch das Konzept von Basiseinheiten eingeführt. Entwurfs- und Testkampagnen sowie die Anzeigengruppen darin unterscheiden sich von den ursprünglichen Basiskampagnen. Aus diesem Grund haben Campaign und AdGroup jetzt Methoden für den Zugriff auf die zugehörige Basiskampagne und ‑anzeigengruppe: getBaseCampaign() und getBaseAdGroup().

Diese Methoden geben die aufrufende Entität zurück, wenn sie von einer Basiskampagne oder ‑anzeigengruppe aufgerufen werden. Auch für Elemente in Kampagnen und Anzeigengruppen, z. B. Keywords und Anzeigen, wurden solche Methoden eingeführt.

Um die Übersicht über die Basisentitäten zu behalten, wurden die Methoden isBaseCampaign(), isDraftCampaign() und isExperimentCampaign() für Kampagnen eingeführt.

Mit den neuen Methoden Campaign.draftCampaigns() und Campaign.experimentCampaigns() können Sie auf alle Entwurfs- und Testkampagnen 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 für Entwürfe und Tests werden ausgeführt, wenn das Skript ausgeführt wird, können aber asynchron fehlschlagen:

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

Warten Sie, bis Sie prüfen, ob diese Vorgänge erfolgreich waren. In der Google Ads-Benutzeroberfläche werden die Status Angewendet oder Aktiv angezeigt, nachdem startApplying() bzw. startScheduling() erfolgreich abgeschlossen wurden. Bei einem Fehler wird Kann nicht angewendet werden oder Kann nicht erstellt werden angezeigt. Sie können dann auf die Fehlermeldung klicken, um die Fehler zu sehen.

Es ist auch möglich, dass einige Methoden in der Vorschauphase fehlschlagen, aber nach der Ausführung erfolgreich sind, z. B. nach dem Erstellen eines Entwurfs:

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

Im Vorschau-Modus schlägt das fehl, da nicht sofort auf die Kampagne im Entwurf zugegriffen werden kann.

Ebenso schlägt das Erstellen eines Tests und der sofortige Versuch, die zugehörige Kampagne im Entwurf abzurufen, im Vorschaumodus fehl, da der Entwurf nicht tatsächlich erstellt wird.

Prüfen Sie daher nach dem Ausführen der Skripts die Protokolle unter der Liste der Skripts und fahren Sie nur dann mit einem Skript fort, das in der Vorschau fehlgeschlagen ist, wenn Sie der Meinung sind, dass die Ursache in den Einschränkungen des Vorschau-Modus liegt.