Google Ads-Skripts unterstützen Kampagnenentwürfe und ‑tests, mit denen Änderungen an Such- und Displaykampagnen vorbereitet und getestet werden können.
In diesem Leitfaden wird der grundlegende Workflow für die Arbeit mit Entwürfen und Tests in einem Skript erläutert.
Entwürfe
Ein Entwurf ist ein Klon einer bestehenden Kampagne, in der keine Anzeigen ausgeliefert werden. Er kann verwendet werden, um Änderungen vorzubereiten, ohne die ursprüngliche Kampagne zu ändern. Die vorbereiteten Änderungen können dann auf die Ausgangskampagne angewendet werden.
Entwurf erstellen
Ein Entwurf wird aus einer bestehenden Ausgangskampagne erstellt. Dazu wird ein DraftBuilder
und ein eindeutiger Name angegeben. Die Ausgangskampagne muss eine Suchkampagne, eine Suchkampagne 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 ein DraftOperation zurück, eine typische Operation
in Skripts. Weitere Informationen finden Sie in unserem Leitfaden zu Builder-Klassen.
Ein draft wird eindeutig durch die Kombination aus der ID der Ausgangskampagne und der Entwurfs-ID identifiziert. Weitere Informationen finden Sie unter DraftSelector.withIds().
Entwurfskampagne bereitstellen
Ein draft-Objekt verknüpft eine Ausgangskampagne und eine Entwurfskampagne. Wenn Sie Änderungen an der Ausgangskampagne vorbereiten möchten, übertragen Sie die Änderungen über die Entwurfskampagne.
Wie jede andere Kampagne hat auch eine Entwurfskampagne Methoden zum Abrufen und Festlegen ihrer verschiedenen Attribute wie Kriterien, Anzeigengruppen, Gebote und Anzeigen.
const draftCampaign = draft.getDraftCampaign();
draftCampaign.setAdRotationType("CONVERSION_OPTIMIZE");
draftCampaign.createNegativeKeyword("shoes");
Die Anzeigenrichtlinien werden für eine Entwurfskampagne genauso überprüft wie für die Ausgangskampagne. Sie können keinen Test aus einer Entwurfskampagne ausführen, die Anzeigen enthält, die gegen die Richtlinien verstoßen.
Entwurf ausführen
Nachdem Sie die Entwurfskampagne 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 angezeigt werden.
draft.remove();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 Ausgangskampagne gestartet. Der Entwurf hat in der Google Ads-Benutzeroberfläche den Status Wird angewendet.... Sie werden jedoch nicht benachrichtigt, wenn der Vorgang abgeschlossen ist.
Wenn Sie die Änderungen zuerst testen möchten, können Sie mit dem Entwurf einen Test erstellen.
Tests
Bei einem Test wird eine anpassbare Kampagne parallel zur ursprünglichen Kampagne ausgeführt und 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.
Test erstellen
Ein experiment ähnelt einem Entwurf und wird ebenfalls aus einer Ausgangskampagne erstellt.
Sie erstellen einen experiment mit einem ExperimentBuilder. Dabei wird automatisch ein Test mit zwei „Armen“ erstellt, die die verschiedenen Teile des Tests darstellen. Ein Arm (der Kontrollarm) enthält die Ausgangskampagne und der andere (der Testarm) eine neue Entwurfskampagne, die Sie anpassen (gemäß den Schritten für den Entwurf, die weiter oben beschrieben wurden), bevor Sie den Test planen.
Wenn Sie einen Test erstellen, müssen Sie im Builder alle folgenden Einstellungen vornehmen:
withCampaign- Die Kampagne, auf der der Test basieren soll.
withTrafficSplitPercent- Wie viel Traffic an den Testarm weitergeleitet werden soll. Geben Sie für 50 %
50an. withStartDateundwithEndDate- Gibt das Start- und Enddatum der Kampagne an. Geben Sie das Datum im
YYYYMMddFormat an. withType- Je nach verwendetem Netzwerk entweder
SEARCH_CUSTOModerDISPLAY_CUSTOM. withSuffix- Gibt ein Suffix an, das beim Erstellen dem Namen der Testkampagne hinzugefügt wird.
withGoals- Gibt die Ziele für diesen Test an. Dies dient nur als Erinnerung an Ihre Ziele beim Erstellen des Tests. Ein guter Standardwert ist
[{metric: 'CLICKS', direction: 'INCREASE'}].
Der Prozentsatz für die Aufteilung des Traffics bestimmt, für welchen Teil des Traffics Anzeigen aus der Testkampagne anstelle der Ausgangskampagne ausgeliefert werden. Aus diesem Grund kann für jede Ausgangskampagne nur ein Test gleichzeitig 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 eindeutig durch eine einzelne ID identifiziert. Weitere Informationen finden Sie unter
ExperimentSelector.withIds().
Testkampagne bereitstellen
Ähnlich wie ein draft ist ein experiment selbst keine Kampagne. Vielmehr verknüpft es die Ausgangskampagne, den Entwurf und die Testkampagne. Die Felder einer Testkampagne können mit den 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");
Änderungen am Namen, Startdatum und Enddatum können am Test vorgenommen werden. Sie werden dann 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() auf, um den Test zu starten. Dies ist ein asynchroner Prozess, 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 abzuschließen. Dann werden keine Anzeigen mehr ausgeliefert, Sie können aber weiterhin damit interagieren. Ein abgeschlossener Test kann weiterhin entfernt, angewendet oder umgewandelt werden. Die Leistungsstatistiken der 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 kann nicht rückgängig gemacht werden. Er kann aber weiterhin auf dem Tab „Tests“ in der Google Ads-Benutzeroberfläche unter Alle Tests angezeigt werden.
experiment.remove();Wenn Sie mit den Testergebnissen zufrieden sind, haben Sie zwei Möglichkeiten:
Sie können die Änderungen anwenden. Wie bei Entwürfen werden Sie nicht benachrichtigt, wenn der Vorgang abgeschlossen ist.
experiment.startApplying();Sie können die Testkampagne in eine unabhängige, voll funktionsfähige Kampagne umwandeln, ohne die Ausgangskampagne zu beeinflussen. Dieser Prozess, die sogenannte Umwandlung, 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 Budget mehr mit der Ausgangskampagne teilen. Daher ist ein neues Budget erforderlich. Umwandlungskampagnen sind wie normale Kampagnen. Alle Felder können geändert werden und sie können als Ausgangskampagne für weitere Entwürfe und Tests dienen.
Weitere Hinweise
Basisentitäten
Mit der Einführung von Entwürfen und Tests in Google Ads-Skripts wird auch das Konzept der Basisentitäten eingeführt. Entwurfs- und Testkampagnen sowie die darin enthaltenen Anzeigengruppen unterscheiden sich von ihren ursprünglichen Ausgangskampagnen. Daher haben
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 Ausgangskampagne oder ‑anzeigengruppe aufgerufen werden. Entitäten in Kampagnen und Anzeigengruppen wie Keywords und Anzeigen haben ebenfalls solche Methoden erhalten.
Um den Überblick über Basisentitäten zu behalten, wurden Kampagnen die
isBaseCampaign(), isDraftCampaign() und
isExperimentCampaign() Methoden hinzugefügt.
Mit den neuen Campaign.draftCampaigns() und
Campaign.experimentCampaigns() Methoden können Sie auf alle Entwurfs- und
Testkampagnen zugreifen, die die aufrufende Kampagne als Ausgangskampagne haben.
Sie können Entwurfskampagnen jedoch nicht mit
CampaignSelector.withCondition() auswählen. Verwenden Sie stattdessen AdsApp.drafts().
Fehlerbehandlung
Die folgenden Methoden für Entwürfe und Tests werden beim Ausführen des Skripts ausgeführt, können aber asynchron fehlschlagen:
Draft.startApplying()Experiment.startApplying()Experiment.startScheduling()
Sie sollten warten, um zu prüfen, ob diese Vorgänge erfolgreich sind. In der Google Ads-Benutzeroberfläche werden nach erfolgreichem Abschluss von startApplying() bzw. startScheduling() die Status Angewendet oder Aktiv angezeigt. Bei einem Fehler wird Kann nicht angewendet werden oder Kann nicht erstellt werden angezeigt. Sie können 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.
Dieser Aufruf schlägt im Vorschaumodus fehl, da nicht sofort auf die Entwurfskampagne zugegriffen werden kann.
Ebenso schlägt das Erstellen eines Tests und der sofortige Versuch, die zugehörige Entwurfskampagne abzurufen, im Vorschaumodus fehl, da der Entwurf nicht tatsächlich erstellt wird.
Prüfen Sie daher nach dem Ausführen der Skripts die Logs unter der Liste der Skripts. Fahren Sie nur mit einem Skript fort, das in der Vorschau fehlgeschlagen ist, wenn Sie der Meinung sind, dass die Ursache in den Einschränkungen des Vorschaumodus liegt.