Google Ads-Scripts unterstützen Kampagnenentwürfe und ‑tests, mit denen Änderungen an Such- und Displaykampagnen vorbereitet und getestet werden können.
Ein Entwurf ist ein Klon einer bestehenden Kampagne. Hier werden keine eigenen Anzeigen ausgeliefert, aber der Entwurf kann für die Bereitstellung von Änderungen verwendet werden, ohne die ursprüngliche Kampagne zu ändern. Die geplanten Änderungen können dann auf die Ausgangskampagne angewendet werden.
Bei einem Test wird eine anpassbare Kampagne parallel zur ursprünglichen Kampagne ausgeliefert. Anzeigen werden dabei einem bestimmten Prozentsatz der Zugriffe präsentiert. Anhand der Testergebnisse können Sie die Änderungen auf die ursprüngliche Kampagne anwenden, den Test in eine unabhängige Kampagne verzweigen oder die Testkampagne beenden.
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. Verwenden Sie dazu einen DraftBuilder
und geben Sie einen eindeutigen Namen an. Die Basiskampagne muss eine Such-, Suchnetzwerk-Kampagne mit Displaynetzwerk-Aktivierung oder eine Displaykampagne sein (ausgenommen mobile App-Kampagnen für das Displaynetzwerk). Außerdem darf sie 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, was ein typischer Vorgang in Scripts ist. Weitere Informationen finden Sie in unserem Leitfaden zu Bauherren.
Eine draft
wird durch die Kombination aus der Basiskampagnen-ID und der ID des Entwurfs eindeutig identifiziert. Weitere Informationen finden Sie unter DraftSelector.withIds()
.
Kampagnenentwurf bereitstellen
Ein draft
-Objekt verknüpft eine Ausgangs- und eine Entwurfskampagne. Wenn Sie Änderungen an der Ausgangskampagne vornehmen möchten, müssen Sie sie über die Kampagnenvorlage übertragen.
Wie bei jeder anderen Kampagne gibt es auch für eine Kampagnenvorlage Methoden zum Abrufen und Festlegen verschiedener Attribute wie Kriterien, Anzeigengruppen, Gebote und Anzeigen.
const draftCampaign = draft.getDraftCampaign();
draftCampaign.setAdRotationType("CONVERSION_OPTIMIZE");
draftCampaign.createNegativeKeyword("shoes");
Hinweis: Die Überprüfung der Werberichtlinien wird für einen Kampagnenentwurf genauso durchgeführt wie für die Ausgangskampagne. Sie können keinen Test für einen Kampagnenentwurf ausführen, der Anzeigen enthält, die gegen die Richtlinien verstoßen.
Entwurf ausführen
Nachdem Sie die Kampagnenvorlage bereitgestellt haben, haben Sie folgende Möglichkeiten:
Wenn Sie die Änderungen nicht verwenden möchten, können Sie den Entwurf einfach entfernen. Das Entfernen des Entwurfs kann nicht rückgängig gemacht werden. Er kann aber weiterhin auf dem Tab „Entwürfe“ in der Google Ads-Benutzeroberfläche unter Alle Entwürfe aufgerufen werden.
draft.remove();
Wenn Sie die im Entwurf vorgenommenen Änderungen beibehalten möchten, können Sie sie so anwenden:
draft.startApplying();
Dadurch werden die Änderungen auf die Ausgangskampagne angewendet. Der Entwurf hat dann in der Google Ads-Benutzeroberfläche den Status Wird angewendet…. Sie werden jedoch nicht über den Abschluss des Vorgangs benachrichtigt.
Wenn Sie Ihre Änderungen zuerst testen möchten, können Sie mit dem Entwurf einen Test erstellen.
Tests
Test erstellen
Eine experiment
ähnelt einem Entwurf und wird ebenfalls aus einer Basiskampagne erstellt. Sie erstellen eine experiment
mit einem ExperimentBuilder
.
Dadurch wird automatisch ein Test mit zwei „Verzweigungen“ erstellt, die die verschiedenen Teile des Tests repräsentieren. Eine Verzweigung (Kontrollverzweigung) enthält die Basiskampagne und die andere (Testverzweigung) eine neue Entwurfskampagne, die Sie gemäß den Schritten für den Entwurf oben anpassen, bevor Sie den Test planen.
Achten Sie beim Erstellen eines Tests darauf, im Builder Folgendes festzulegen:
withCampaign
- Die Kampagne, auf der der Test basieren soll.
withTrafficSplitPercent
- Wie viel Prozent des Traffics werden an die Testverzweigung weitergeleitet. Geben Sie für 50 %
50
an. withStartDate
undwithEndDate
- Das Start- und Enddatum der Kampagne. Geben Sie sie im Format
YYYYMMdd
an. withType
- Entweder
SEARCH_CUSTOM
oderDISPLAY_CUSTOM
, je nachdem, welches Netzwerk Sie verwenden. withSuffix
- Gibt ein Suffix an, das dem Namen der Kontrollkampagne hinzugefügt wird, wenn sie erstellt wird.
withGoals
- Die Ziele für diesen Test. Dies ist nur eine Erinnerung daran,
welche Ziele Sie bei der Erstellung verfolgt haben. Ein guter Standardwert ist
[{metric: 'CLICKS', direction: 'INCREASE'}]
.
Mit dem Prozentsatz der Aufteilung der Zugriffe wird festgelegt, für welchen Teil der Zugriffe Anzeigen aus der Testkampagne und nicht aus der Ausgangskampagne ausgeliefert 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 eindeutige ID identifiziert. Weitere Informationen finden Sie unter ExperimentSelector.withIds()
.
Testkampagne bereitstellen
Ähnlich wie eine draft
ist auch eine experiment
selbst keine Kampagne. Stattdessen bezieht er sich auf die Basiskampagne, den Entwurf und die Testkampagne. Die Felder einer Testkampagne können geändert werden, mit 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");
Sie können den Namen, das Start- und das Enddatum des Tests ändern. Die Änderungen werden dann auf die Testkampagne angewendet.
// Will succeed.
experiment.setName("INSERT_EXPERIMENT_NAME_HERE");
// Will succeed if date is acceptable.
const date = "20220601";
experiment.setStartDate(date);
Wenn Sie den Test starten möchten, wählen Sie experiment.startScheduling()
. Dies ist ein asynchroner Vorgang, da alle Einstellungen aus der Ausgangskampagne kopiert werden müssen.
Nach Ende des Tests
Nach Abschluss des Tests haben Sie mehrere Möglichkeiten. Wir empfehlen, den Test vollständig zu warten, damit keine Anzeigen mehr ausgeliefert werden. Sie können aber weiterhin mit dem Test interagieren. Ein Test mit dem Status Abgeschlossen kann weiterhin entfernt, angewendet oder erweitert werden. Die Leistungsstatistiken der zugehörigen Kampagne sind weiterhin verfügbar.
experiment.finish();
const stats = experimentCampaign.getStatsFor("INSERT_TIME_PERIOD_HERE");
Wenn Sie mit den Ergebnissen des Tests nicht zufrieden sind, können Sie ihn entfernen. Dadurch wird auch die Testkampagne entfernt. Das Entfernen des Tests ist nicht rückgängig zu machen. Sie können ihn aber weiterhin auf dem Tab „Tests“ in der Google Ads-Benutzeroberfläche unter Alle Tests aufrufen.
experiment.remove();
Wenn Sie mit den Ergebnissen des Tests zufrieden sind, haben Sie zwei Möglichkeiten:
Sie können die Änderungen anwenden. Wie bei einem Entwurf werden Sie nicht benachrichtigt, wenn der Vorgang abgeschlossen ist.
experiment.startApplying();
Sie können die Testkampagne als unabhängige, voll funktionsfähige Kampagne einrichten, ohne dass sich das auf die Ausgangskampagne auswirkt. Dieser Vorgang, der als Skalierung bezeichnet wird, ist 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 Budget mehr mit der Basiskampagne teilen. Dafür ist ein neues Budget erforderlich. Stufenbasierte Kampagnen sind wie normale Kampagnen, da alle ihre Felder geändert werden können und sie als Ausgangskampagne für weitere Entwürfe und Tests dienen können.
Weitere Hinweise
Basisentitäten
Mit der Einführung von Entwürfen und Tests in Google Ads-Scripts werden auch Basisentitäten eingeführt. Entwurfs- und Testkampagnen sowie die darin enthaltenen Anzeigengruppen unterscheiden sich von den ursprünglichen Ausgangskampagnen. Deshalb gibt es für Campaign
und AdGroup
jetzt Methoden für den Zugriff auf die Ausgangskampagne und die Anzeigengruppe: getBaseCampaign()
und getBaseAdGroup()
.
Diese Methoden geben die aufrufende Entität zurück, wenn sie von einer Basiskampagne oder -Anzeigengruppe aufgerufen werden. Elemente innerhalb von Kampagnen und Anzeigengruppen, z. B. Keywords und Anzeigen, wurden ebenfalls auf diese Weise angewendet.
Kampagnen wurden die Methoden isBaseCampaign()
, isDraftCampaign()
und isExperimentCampaign()
zugewiesen, um den Überblick über Basisentitäten zu behalten.
Mit den neuen Methoden Campaign.draftCampaigns()
und Campaign.experimentCampaigns()
können Sie auf alle Entwurfs- und Testkampagnen zugreifen, deren Basiskampagne die aufrufende Kampagne ist. Mit CampaignSelector.withCondition()
können Sie jedoch keine Entwurfskampagnen auswählen. Verwenden Sie stattdessen AdsApp.drafts()
.
Fehlerbehandlung
Bei den folgenden Methoden mit Entwürfen und Tests werden die Aktionen ausgeführt, wenn das Script ausgeführt wird, aber sie können asynchron fehlschlagen:
Draft.startApplying()
Experiment.startApplying()
Experiment.startScheduling()
Sie sollten warten, bis Sie sehen, ob diese Vorgänge erfolgreich waren. In der Google Ads-Benutzeroberfläche werden die Status Angewandt oder Aktiv angezeigt, nachdem startApplying()
bzw. startScheduling()
erfolgreich abgeschlossen wurde. Außerdem wird bei einem Fehler Kann nicht angewendet werden oder Kann nicht erstellt werden angezeigt. Sie können dann darauf klicken, um die Fehler zu sehen.
Es ist auch möglich, dass einige Methoden in der Vorschauphase fehlschlagen, nach ihrer Ausführung jedoch erfolgreich sind. Ein Beispiel hierfür ist die Erstellung eines Entwurfs:
const draftCampaign = draft.getDraftCampaign();
draftCampaign.createNegativeKeyword("shoes"); // Will fail in preview.
Im Vorschaumodus funktioniert das nicht, da nicht sofort auf die Kampagnenvorlage zugegriffen werden kann.
Ebenso schlägt das Erstellen eines Tests und das sofortige Abrufen des Kampagnenentwurfs im Vorschaumodus fehl, da der Entwurf nicht tatsächlich erstellt wird.
Aus diesem Grund sollten Sie die Logs unter der Skriptliste nach der Ausführung prüfen und mit einem Script, das in der Vorschau nicht ausgeführt wurde, nur dann fortsetzen, wenn Sie glauben, dass die Ursache durch Einschränkungen im Vorschaumodus verursacht wurde.