Wenn Sie mit kleineren Accounts arbeiten oder nur wenige Konten betreuen, sind Sie auch ohne Google-Ads-Skripte bisher vermutlich gut gefahren.
Spätestens ab einer gewissen Konto-Anzahl und dem verbundenen Verwaltungsaufwand sollte sich aber jeder PPC Account Manager mit Google-Ads-Skripten auseinandersetzen.
Hier erfahrt Ihr ganz konkret, wie Google Ads-Scripte arbeiten, was man bei Ihnen beachten muss und wie Sie zielgerichtet eingesetzt werden können.
Ein Gastbeitrag von Annika Wurm
Annika Wurm
Online Marketing-Beraterin bei der ReachX GmbH
Nach Abschluss ihres Studiums in Journalism & Business Communication ist sie über drei Jahre im Bereich Online-PR für eine Online-Marketing-Agentur tätig gewesen. So hat sie den Weg Richtung Digital-Branche eingeschlagen.
Seit 2017 ist sie Teil der ReachX und unterstützt das Team darüber hinaus beim OMT – dem Weiterbildungsnetzwerk sowie der gleichnamigen Eintageskonferenz.
Fleißiger Code: Wie arbeiten Google-Ads-Scripts?
Und das Beste: Durch das bessere Verständnis haben Sie sicher mehr Freude an Skripten!
Denn sicher haben auch Sie schon mal das ein oder andere Stoßgebet losgelassen in der Hoffnung, das Skript-Protokoll möge bloß ohne Fehler sauber durchlaufen, oder?
Klicken Sie auf den unteren Button, um den Inhalt von giphy.com zu laden.
Darüber hinaus stelle ich Ihnen exemplarisch die N-Gram-Analyse vor und zeige, wie das Skript implementiert wird.
Beginnen wir aber mit dem Aufbau der Skripte.
Google-Ads-Skripte: Aufbau und Funktionsweise
Im Folgenden ein Ausblick auf den Code der N-Gram-Analyse, die ich anschließend vorstellen werde. Mit der N-Gram-Analyse können Sie herausfinden, wie viele Einzelbegriffe die tatsächlichen Suchanfragen in welcher Häufigkeit enthalten.
Der Screenshot bildet aber nur einen ersten Überblick zum Code. Es ist nicht notwendig, den gesamten Code jetzt an dieser Stelle bereits eins zu eins nachzuvollziehen:
Der JavaScript-Code ist vollgespickt mit Anweisungen und Bedingen. Schauen wir uns nun die Einzelteile von Google-Ads-Scripts an.
Funktionen
function main() { … (Der Rest vom Fest: Hier folgt der weitere Skript-Code) … }
Die geschwungenen Klammern bilden den Rahmen für den gesamten folgenden Code. Dieser fungiert wie eine Art Anleitung, was genau das Skript analysieren und reporten soll und wann es gegebenenfalls Änderungen im Konto vornehmen soll (Script-abhängig).
Die Funktion kann aus beliebig vielen Zeilen Code bestehen. Das Script arbeitet sich fleißig Zeile für Zeile vor entsprechend der enthaltenen Bausteine.
Variablen
- Zahl → Beispiel: 29
- Text → Beispiel „reachx“
- boolescher Wert → true oder false
Hier zwei Beispiel-Variablen aus der N-Gram-Analyse:
var startDate = "2019-01-01"; var endDate = "2019-01-31";
In Skript-Vorlagen finden Sie in der Regel jede Menge vorgegebene Variablen, an denen Sie nur wenige bis keine Änderungen vornehmen müssen. Im Fall der N-Gram-Analyse würden Sie mithilfe der obigen Variablen den Zeitraum für die Analyse selbst definieren.
Eine Variable kann aber auch so aussehen:
var ignorePausedCampaigns = true;
In diesem Fall wäre der dazugehörige Teil der Funktion so konfiguriert, dass pausierte Kampagnen nicht mit einbezogen werden. Verändert man den Wert „true“ auf „false“, würden pausierte Kampagnen mit einbezogen werden.
Befehle werden bei JavaScript übrigens immer mit einem Semikolon abgeschlossen, wie hier im Beispiel zu erkennen:
Objekte
1. AdWordsApp
2. SpreadsheetApp
3. MccApp
4. UrlFetchApp
AdWordsApp ist das elementarste Objekt jedes Skripts: Es ist die Grundvoraussetzung, um auf Informationen aus Google Ads zugreifen zu können.
Grundsätzlich können Objekte verschiedene Eigenschaften beziehungsweise Entitäten besitzen.
Entitäten
var campaignReport = AdWordsApp.report( "SELECT CampaignName, CampaignId " + "FROM CAMPAIGN_PERFORMANCE_REPORT " + "WHERE CampaignName CONTAINS_IGNORE_CASE '" + campaignNameContains + "' " + "AND Impressions > 0 " + whereStatements + "DURING " + dateRange );
Die Variable kann eine beliebige Bezeichnung tragen, in diesem Fall „campaignReport“. Das dazugehörige Objekt soll und kann nun aufgrund der Entität-Auswahl „report“ und der Vorgaben in folgenden Zeilen auf Kampagnen-Reports zugreifen. Eine dieser Vorgaben ist beispielsweise eine Impressionen-Anzahl höher 0.
Viele Skript-Vorlagen enthalten übrigens sehr praktische Kommentare, die die Funktionalität des Skripts beschreiben, aber natürlich nicht beeinträchtigen. Sie sind mit einem // am Anfang einer Zeile gekennzeichnet.
Ein Beispiel:
// Get the IDs of the campaigns to look at
Diese Zeile ist eine Erklärung an den Skript-Nutzer, was gerade im Code passiert. Das Skript würde in diesem Fall Kampagnen-IDs herausfiltern gemäß Bedingungen, die der Code im Folgenden beinhaltet.
Der obige Code-Schnipsel zur Variable „var campaignReport“ ist übrigens einer der Bausteine dieses Schrittes:
Mithilfe von Variablen, Objekten und Entitäten können Sie noch keine Eingrenzungen vornehmen: Soll das Skript beispielsweise nur Kampagnen mit einer bestimmten Anzahl an Impressionen herausfiltern, können Sie dies über Selektoren lösen.
Selektoren
Selektor | Bedeutung |
withCondition()
|
Der Selektor gibt nur Entitäten aus, die diese Bedingung erfüllen. Mehrere Bedingungen werden durch „UND“ verknüpft. |
withIds() | Gibt IDs als Bedingung vor. |
forDateRange() | Wird beispielsweise auf statistische Daten wie Impressionen oder CTRs verwiesen, muss ein Analyse-Zeitraum dafür vorgegeben werden. |
orderBy() | Gibt die Reihenfolge an, in der der Selektor die Entitäten zurückgibt. |
withLimit() | Beschränkt die Anzahl der Entitäten, die der Selektor zurückgibt. |
var accountSelector = getAccounts(false).withLimit(50);
if (accountSelector.get().hasNext()) {
accountSelector.executeInParallel('processAccount', 'processResults',
JSON.stringify(options));
Das Beispiel stammt aus einem weiteren, von der N-Gram-Analyse unabhängigen Skript: das Link Checker Skript.
Das Limit ist erst von Relevanz, wenn Sie beispielsweise als Dienstleister mehrere Konten unter einem MCC-Konto (Verwaltungskonto) betreuen. Wenn Sie nur Ihr eigenes Google-Ads-Konto verwalten, benötigen Sie diese Einschränkung natürlich nicht. In einem anderen Zusammenhang könnten Sie aber mithilfe der Limitierung auch die Anzahl von Anzeigen, Keywords o. ä. einschränken.
Mehrere Selektoren können zudem miteinander kombiniert werden, die Trennung erfolgt durch einen Punkt.
Wichtig:
Werden mehrere Selektoren verwendet, fungieren sie wie eine und-Bedingung. Dementsprechend werden nur Elemente mit einbezogen, die alle Bedingungen gemäß der Selektoren erfüllen.
Methoden
Methoden dienen dazu, das Skript bestimmte Aktionen auszuführen zu lassen: „get“, „set“ und „ad“ gehören mitunter dazu. So werden beispielsweise mithilfe von
getStatsFor„LAST_MONTH“)
Leistungswerte des vergangen Monats herangezogen.
Das sehr wichtige Objekt AdWords App kann mithilfe von Methoden überhaupt erst auf einzelne Elemente im Konto zugreifen.
Hier finden Sie einen Überblick der Methoden in Googles Developer-Bereich:
https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp
Mithilfe von Variablen, Objekten und Entitäten können Sie noch keine Eingrenzungen vornehmen: Soll das Skript beispielsweise nur Kampagnen mit einer bestimmten Anzahl an Impressionen herausfiltern, können Sie dies über Selektoren lösen.
Iteratoren
Auch hier ein Beispiel:
Der Code in der folgenden geschweiften Klammer wird solange ausgeführt und wiederholt, bis das durch den Selektor vorgegebene Kampagnen-Limit überschritten würde.
Beispielcode:
var accountSelector = getAccounts(false).withLimit(50);
if (accountSelector.get().hasNext()) {
accountSelector.executeInParallel('processAccount', 'processResults',
JSON.stringify(options));
Bedeutung von „Case sensitiv“
Bestimmt sind Sie im Zusammenhang mit Google-Ads-Skripten schon mal auf den Begriff „Case Sensitivity“ gestoßen. Damit ist die Berücksichtigung von Groß- und Kleinschreibung gemeint.
Bei Fehlermeldungen im Skript-Protokoll kann es zum Beispiel sein, dass im Code wichtige Groß- oder Kleinschreibungen nicht beachtet wurden:
In diesem Fall spricht man von case sensitive.
Nimmt die Schreibweise eines Code-Elements keinen Einfluss auf die Funktionstüchtigkeit des Skripts, so ist es entsprechend nicht case sensitive.
Das N-Gram-Script: Suchphrasen auf der Goldwaage
Was verbirgt sich hinter dem N-Gram-Script?
Die N-Gram-Analyse oder auch Search Query Mining Tool legt im wahrsten Sinne des Wortes jedes Wort auf die Goldwaage. Denn jede Suchanfrage wird in ihre Einzelteile – also einzelne Wörter innerhalb der Anfrage – zerlegt und auf ihre Anzahl hin analysiert.
Auf Basis des N-Gram Scripts erhalten Sie Wissen darüber, wie häufig einzelne Begriffe oder Begriffs-Kombination innerhalb verschiedener Suchanfragen enthalten waren.
„Kann ich nicht auch einfach in den Suchanfragenbericht schauen?“
Im Suchanfragenbericht sehen Sie nur die Anfragen an sich. Sie erhalten dort keinen Einblick, wie oft ein und derselbe Begriff in verschiedenen Anfragen vorkam und welche Performance-Unterschiede beispielsweise Zwei- oder Drei-Wort-Phrasen aufweisen.
Dabei können Sie Einfluss darauf nehmen, wie tief die N-Gram-Analyse gehen soll, beispielsweise:
- 1-gram: Einzelner Begriff
- 2-gram: Zwei Begriffe
- 3-gram: Drei Begriffe
- Usw. …
Anwendungsbeispiel für die N-Gram-Analyse
Aufgrund der N-Gram-Analyse haben Sie herausgefunden, dass der Großteil der Suchanfragen Ihrer Shopping-Kampagne aus längeren Anfragen von drei bis vier Begriffen besteht: Häufig geben die Nutzer auch die Marke und Farbe in ihrer Suche mit an.
Zudem haben Sie analysiert, dass Ihnen diese Anfragen viele Verkäufe und hohe Umsätze einbringen bei verhältnismäßig geringen Werbekosten. Ein ziemlich gutes Argument, die Title-Struktur Ihrer Google-Shopping-Kampagne zu überdenken.
Geben Sie in den Titeln bereits Marke und Farbe mit an? Falls nicht, sollten Sie es testen. Vielleicht stellen Sie bei der N-Gram-Analyse auch fest, dass häufig die Begriffe „günstig“ und „umsonst“ in Suchphrasen enthalten sind. Falls das nicht zu Ihrem Angebot passt, sollten Sie solche Begriffe ausschließen.
Je besser der Match zwischen Anfrage und Title, desto die höher die Klick- und Kaufwahrscheinlichkeit. Der Title gehört im Shopping-Bereich außerdem zu den wichtigsten Optimierungsfaktoren.
Aber nun zurück zum Script und Aufbau.
N-Gram-Analyse: Ran an den Code
Den JavaScript-Code bekommen Sie als Vorlage beispielsweise bei Search Engine Land oder hier auf GitHub:
Die N-Gram-Analyse beinhaltet allerlei Variablen. Glücklicherweise hat uns der Script-Coder bereits viele Kommentare mitgeliefert als Hinweis, welche Variablen manuell anzupassen sind. Einige davon haben Sie bereits kennengelernt:
Variable (Bezeichnung) | Erklärung |
var startDate | Startdatum der N-Gram-Analyse: Tragen Sie hier manuell das Datum Ihrer Wahl ein. |
var endDate | Enddatum der N-Gram-Analyse: Tragen Sie hier manuell das Datum Ihrer Wahl ein. |
var currencySymbol | Die Währung für Umsatz- und Kosten-relevante KPIs in der Auswertung: Stellen Sie hier „€“ beziehungsweise Ihre gewünschte Währung ein. |
var campaignNameContains campaignNameDoesNotContain |
Können verwendet werden, sofern das Skript nur bestimmte Kampagnen (nicht) analysieren soll: Ansonsten bleibt der Eintrag leer, Sie ändern nichts. |
var ignorePausedCampaigns var ignorePausedAdGroups |
Sind standardmäßig mit „true“ angegeben. Möchten Sie pausierte Kampagnen oder Anzeigengruppen mit einbeziehen, ersetzen Sie den Wert im Skript durch „false“. |
var checkNegatives | Hier geben Sie dem Skript HHier geben Sie dem Skript vor, ob es ausgeschlossenen Keywords berücksichtigen soll, auch wenn diese im Laufe des Analyse-Zeitraums als Negatives hinterlegt wurden. |
var spreadsheetUrl | Im Platzhalter tragen Sie die URL Ihres Google Sheets ein, in dem die Analyse-Ergebnisse einlaufen sollen. Dazu können Sie einfach ein neues Sheet anlegen. Wichtig ist, dass die Zugriffsrechte eine Bearbeitung zulassen. |
var minNGramLength var maxNGramLength |
An dieser Stelle definieren Sie, wie viele Wörter die zu analysierenden Suchphrasen mindestens und maximal beinhalten sollen. Sie erinnern sich? 2-gram, 3-gram, 4-gram usw. |
var clearSpreadsheet | Bei „true“ werden ältere Einträge im Google Sheet überschrieben. Stellen Sie es auf „false“, werden neue Einträge unten im Sheet ergänzt. |
Thresholds festlegen
// Thresholds var queryCountThreshold = 0; var impressionThreshold = 10; var clickThreshold = 0; var costThreshold = 0; var conversionThreshold = 0; // Words will be ignored if their statistics are lower than any of these thresholds
In diesem Fall muss also eine Phrase mindestens 10 Impressionen erzielt haben, um in die N-Gram-Analyse aufgenommen zu werden.
Haben Sie alle Optionen angepasst und ist das Skript erfolgreich durchgelaufen, erhalten Sie folgende Meldung im Protokoll:
Innerhalb Ihres Sheets haben Sie nun mehrere Reiter – je nachdem, wie feingliedrig Sie die N-Gram-Analyse eingerichtet haben.
Nun können Sie endlich einsehen, welche Begriffe an der Spitze der Suchanfragen stehen. Parallel erhalten Sie durch die N-Gram-Analyse diese KPIs:
- Impressionen
- Klicks
- Kosten
- Conversions
- Umsatz
- CTR
- CPC
- CR
- Kosten/Conversion
- Umsatz/Kosten
Genial!
Klicken Sie auf den unteren Button, um den Inhalt von giphy.com zu laden.
Ihre N-Gram-Analyse ist erfolgreich aufgesetzt. Von nun an können Sie einen neuen Blickwinkel auf Suchanfragen werfen. Sicher finden Sie ab jetzt neue Ansätze, Suchbegriffe auszuschließen oder in Ihre Keywords oder auch Anzeigen zu integrieren.
Abschließend habe ich noch ein paar Tipps für Sie parat. Denn nicht immer laufen Skripte problemlos durch.
Google-Ads-Scripte: Tipps und Limits
- Lassen Sie sich vorab immer die Vorschau des Skripts anzeigen, bevor Sie es ausführen lassen. Behalten Sie dadurch beeinflusste Konten und Kampagnen danach unbedingt im Auge.
- Skripte laufen maximal 30 Minuten, danach kommt es zum Timout. Zur Not ein Skripte lieber für Einzel-Accounts implementieren als auf MMC-Level.
- Maximal 250.000 Bestandteile kann ein Skript durchackern, dann ist es am Limit. Dieser Punkt ist übrigens auch hinsichtlich des Iterators „hasNext“ relevant, der ja auf wiederholte Abfragen ausgelegt ist. Sollte das Limit überschritten werden, wird eine Fehlermeldung ausgespuckt. Mehr zu den Limits der Google-Ads-Skripte finden Sie hier im Developer-Bereich.
- Schauen Sie regelmäßig in Foren und Communities zu dem Thema vorbei. Viele typische Fragestellungen sind dort bereits aufgeploppt und diskutiert worden. Hier ein paar Anlaufstellen zum Folgen, Nachlesen und Mitdiskutieren:
- Google Ads Scripts Forum (Google-Gruppe)
- Google Ads Facebook-Gruppe mit fast 1.000 Mitgliedern
- Offizielle Facebook-Seite von Google-Ads
- OMT-Club – Community zum Austausch rund um Online-Marketing im Web und auf Facebook
Übrigens – kennen Sie schon die anderen Beiträge bei Reach X ?
Eine gute Möglichkeit, Ihren Überblick über Google-Ads-Skripte weiter zu vertiefen!
Diese 88 Google AdWords Skripte sollten Sie kennen!