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 vorhandenen Kampagne, über den keine Anzeigen ausgeliefert werden. Er kann jedoch verwendet werden, um Änderungen zu planen, 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 Script 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");
Die Prüfung der Werberichtlinien erfolgt für eine Entwurfskampagne genauso wie für die Basiskampagne. Sie können keinen Test für einen Kampagnenentwurf ausführen, der Anzeigen mit Richtlinienverstößen enthält.
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 darüber informiert, wenn der Vorgang abgeschlossen ist.
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 einer ExperimentBuilder
.
Dadurch wird automatisch ein Test mit zwei „Armen“ erstellt, die die verschiedenen Teile des Tests darstellen. 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 den Wert 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 an Ihre Ziele bei der Erstellung. Ein guter Standardwert ist
[{metric: 'CLICKS', direction: 'INCREASE'}]
.
Mit dem Prozentsatz der Zugriffsaufteilung wird festgelegt, für welchen Anteil der Zugriffe Anzeigen aus der Test- statt 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 bei einer draft
ist eine experiment
keine Kampagne. Stattdessen bezieht er sich auf die Basiskampagne, den Entwurf und die Testkampagne. Die Felder einer Testkampagne können mit folgenden Ausnahmen geändert werden:
- 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 dem Test
Nach Abschluss des Tests haben Sie mehrere Möglichkeiten. Wir empfehlen, den Test vollständig abzuschließen, damit keine Anzeigen mehr ausgeliefert werden, Sie aber weiterhin damit interagieren können. Ein abgeschlossener Test kann weiterhin entfernt, angewendet oder abgeschlossen werden. Die Leistungsstatistiken der 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 Testergebnissen zufrieden sind, haben Sie zwei Möglichkeiten:
Sie können mit der Anwendung der Änderungen beginnen. Wie bei Entwürfen 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. Daher ist ein neues Budget erforderlich. Sie ähneln normalen Kampagnen, da alle 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 und die darin enthaltenen Anzeigengruppen unterscheiden sich von den ursprünglichen Basiskampagnen. Deshalb gibt es jetzt für Campaign
und AdGroup
Methoden, um auf die Basiskampagne und die Basisanzeigengruppe zuzugreifen: getBaseCampaign()
und getBaseAdGroup()
.
Diese Methoden geben die aufrufende Entität zurück, wenn sie von einer Basiskampagne oder -Anzeigengruppe aufgerufen werden. Auch Elemente in Kampagnen und Anzeigengruppen wie Keywords und Anzeigen wurden solche Methoden hinzugefügt.
Um den Überblick über Basisentitäten zu behalten, wurden Kampagnen die Methoden isBaseCampaign()
, isDraftCampaign()
und isExperimentCampaign()
zugewiesen.
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, sie können aber 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, 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 Vorschaumodus funktioniert das nicht, da nicht sofort auf die Kampagnenvorlage zugegriffen werden kann.
Wenn Sie einen Test erstellen und sofort versuchen, den Entwurf der Kampagne abzurufen, schlägt dies im Vorschaumodus fehl, da der Entwurf nicht erstellt wurde.
Prüfen Sie daher nach der Ausführung die Protokolle unter der Liste der Scripts und fahren Sie nur dann mit einem Script fort, das in der Vorschau fehlgeschlagen ist, wenn Sie der Meinung sind, dass die Ursache auf Einschränkungen im Vorschaumodus zurückzuführen ist.