In Zeiten von Big Data ist natürlich auch Google längst auf den Trichter kommen, das Thema Automatisierung voranzutreiben: unter anderem in Form von Google-Ads-Scripts.

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

Annika Wurm

Online Marketing-Beraterin bei der ReachX GmbH

Annika Wurm ist Online Marketing-Beraterin bei der ReachX GmbH mit Schwerpunkt Google Ads.

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?

Hier im Artikel werden wir uns den Aufbau von Google-Ads-Scripts näher ansehen: Den Aufbau zu verstehen, wird Ihnen helfen, mögliche Fehlermeldungen schneller nachvollziehen und beheben zu können. Sie erlangen zudem ein besseres Grundverständnis dafür, wie Google-Ads-Skripte arbeiten.

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?

via GIPHY

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

Mit dem Code steht und fällt die Funktionstüchtigkeit Ihrer Skripte. Was also zu Beginn kompliziert erscheinen mag, ist nun mal das Herzstück von Google-Ads-Skripten.

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:

N-Gram-Analyse AdWords Script
Verwenden Sie die N-Gram-Analyse bereits?
Sie sehen oder kennen es bereits:

Der JavaScript-Code ist vollgespickt mit Anweisungen und Bedingen. Schauen wir uns nun die Einzelteile von Google-Ads-Scripts an.

Funktionen

Ein Skript ist nichts anderes als eine Funktion. Daher beginnt jedes Script mit dem Wort „function“. Im Code sieht das folgendermaßen aus:

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.

Google-Ads-Skripte: Mögen kompliziert erscheinen, sind am Ende aber auch nur aufeinander aufbauende Code-Bausteine.
Bausteine Google-Ads-Scripts
Zu diesen Bausteinen gehören unter anderem die Variablen.

Variablen

Variablen tragen im Code das Kürzel „var“ und dienen als Platzhalter für einen der folgenden möglichen Werte:

  1. Zahl Beispiel: 29
  2. Text Beispiel „reachx“
  3. 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:

Code-Ausschnitt N-Gram-Analyse

Objekte

Es gibt vier verschiedene Objekte, die in einem Google-Ads-Skript enthalten sein können:

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

Zu den Entitäten zählen beispielsweise Kampagnen, Anzeigengruppen, Keywords oder auch Labels, Budgets und Reports. Hier ein Auszug aus der N-Gram-Analyse:

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:

Einschränkung Kampagnen-IDs Google-Ads-Script
Google-Ads-Skripte: Mögen kompliziert erscheinen, sind am Ende aber auch nur aufeinander aufbauende Code-Bausteine.
Skripte enthalten aber noch weitere Bausteine:
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

Selektoren helfen, Filter zu setzen beziehungsweise Kriterien hinsichtlich der Entitäten vorzugeben. Folgende stehen zur Verfügung:
SelektorBedeutung
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.
In diesem Fall gibt der Selektor vor, dass das der Selektor maximal 50 Konten einbeziehen soll, die noch nicht auf fehlerhafte Links hin überprüft wurden:

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

Skripte enthalten aber noch weitere Bausteine:
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

Vielleicht ist Ihnen im vorletzten Code-Schnipsel das Element .hasNext()) aufgefallen. Dabei handelt es sich um einen Iterator. Iteratoren sind in der Lage, Skriptbereiche zu wiederholen, solange Werte verfügbar sind.

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.

Falls Sie noch tiefer in die Thematik und Code-Funktionen einsteigen wollen, schauen Sie mal in diesen Artikel auf semtutorials.de rein. Darin sind weitere gute Beispiele und Erklärungen zu finden.

Das N-Gram-Script: Suchphrasen auf der Goldwaage

Verlassen wir die Theorie und knöpfen uns nun ein Skript vor.
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. …
Bagger Sinnbild Mining Tool
Wie ein Bagger fördert die N-Gram-Analyse so einiges zu Tage: interessantes Wissen über die Zusammensetzung Ihrer Suchanfragen.

Anwendungsbeispiel für die N-Gram-Analyse

Schauen wir uns ein theoretisches Anwendungsbeispiel an:

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:
Ausschnitt Google-Ads-Script N-Gram-Analyse
Die N-Gram-Analyse wird auch Search Query Mining Tool genannt.
Das Skript sollten Sie immer nur für ein einzelnes Konto und nicht auf MCC-Level implementieren, damit Google es korrekt ausführen kann.

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 startDateStartdatum der N-Gram-Analyse: Tragen Sie hier manuell das Datum Ihrer Wahl ein.
var endDateEnddatum der N-Gram-Analyse: Tragen Sie hier manuell das Datum Ihrer Wahl ein.
var currencySymbolDie 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 checkNegativesHier 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 spreadsheetUrlIm 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 clearSpreadsheetBei „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 bilden eine weitere Einschränkung, wann Suchanfragen in die Analyse-Ergebnisse einlaufen. Suchbegriffs-Phrasen werden nur dann integriert, wenn sie die von Ihnen gesetzten Vorgaben allesamt erfüllen. Standardmäßig sehen die Einstellungen im Script so aus:

// 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:

Ausschnitt Google-Ads-Script N-Gram-Analyse
Das Protokoll ist sauber durchgelaufen – was will man mehr? Kein Stoßgebet mehr nötig.
Wunderbar – das hat geklappt!

Innerhalb Ihres Sheets haben Sie nun mehrere Reiter – je nachdem, wie feingliedrig Sie die N-Gram-Analyse eingerichtet haben.

Ausschnitt Google-Ads-Script N-Gram-Analyse
Die Ergebnisse der N-Gram-Analyse unterteilen sich im Sheet in mehrere Reiter.
Zudem wird die Analyse den Einstellungen entsprechend auf Konto-, Kampagnen-, und Anzeigengruppen-Ebene gefahren und in separate Tabs unterteilt.

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!

via GIPHY

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

  1. 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.
  2. Skripte laufen maximal 30 Minuten, danach kommt es zum Timout. Zur Not ein Skripte lieber für Einzel-Accounts implementieren als auf MMC-Level.
  3. 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.
  4. 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:
Ü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!