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:
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();
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.
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
undwithEndDate
- Das Start- und Enddatum der Kampagne. Geben Sie das Format im
YYYYMMdd
-Format an. withType
- Je nachdem, welches Netzwerk Sie verwenden, entweder
SEARCH_CUSTOM
oderDISPLAY_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:
Sie können mit dem Übernehmen der Änderungen beginnen. Wie bei Entwürfen werden Sie nicht benachrichtigt, wenn der Vorgang abgeschlossen ist.
experiment.startApplying();
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.