AdWords Scripts:
Schneller Einstieg in die AdWords-Automatisierung

Seit Mitte 2012 können Werbetreibende ihre Kampagnen mit den sogenannten AdWords Scripts unterstützen. Was anfangs eher eine Spielerei war, mausert sich langsam zu einem hilfreichen Werkzeug. Von Martin Röttgerding.

 

Mit den AdWords Scripts (oder Skripts) hat Google 2012 ein Feature eingeführt, nach dem so direkt eigentlich niemand verlangt hat. Damit lassen sich direkt von der AdWords-Oberfläche aus kleine Programme schreiben, die verschiedene Änderungen an Kampagnen vornehmen oder Statistiken abrufen können. Diese Programme können dann bei Bedarf manuell oder zu bestimmten Zeiten automatisch ausgeführt werden.

AdWords Scripts bestechen vor allem durch ihre Einfachheit. Weil die Skripte direkt auf der Oberfläche geschrieben, ausgeführt und verwaltet werden, lässt sich damit praktisch einfach loslegen. Dem gegenüber stehen ein begrenzter Funktionsumfang (siehe unten) und verschiedene Einschränkungen bei der Laufzeit und der Anzahl lauffähiger Skripte, was die Anwendungsmöglichkeiten leider stark einschränkt.

 

Das können AdWords Scripts

Der Funktionsumfang von AdWords Scripts ist stark eingeschränkt. Ganz konkret kann man damit:

  • Auf Kampagnen, Anzeigengruppen, Textanzeigen und Keywords zugreifen
  • Diese aktivieren oder pausieren
  • Filter zur Auswahl verwenden (z. B. alle Keywords mit mindestens 10 Klicks auswählen)
  • Einige Statistiken auslesen (z. B. Klicks, Conversions, Analytics-Statistiken)
  • Anzeigen und Keywords einfügen oder löschen
  • CPC-Gebote ändern
  • Kampagnenbudgets ändern
  • Anzeigenparameter einfügen, lesen, ändern und löschen (diese Funktion steht über die normale AdWords-Oberfläche nicht zur Verfügung)

 

Insbesondere folgende Funktionen bieten AdWords Scripts dagegen (noch) nicht:

  • Kampagnen oder Anzeigengruppen anlegen
  • Kampagneneinstellungen auslesen oder ändern (ausgenommen Budget)
  • Zugriff auf viele Statistiken (z. B. Conversion-Wert, Anteil entgangener Impressionen)
  • Zugriff auf segmentierte Statistiken (z. B. Klicks im Such-Werbenetzwerk)
  • Abrufen von Suchanfrageberichten
  • Zugriff auf Labels
  • Zugriff auf Anzeigenerweiterungen (z. B. Sitelinks)
  • CPA-Gebote ändern
  • Funktionen jenseits der klassischen Suche, etwa für Display, Produktlistenanzeigen etc.

 

Der Einstieg
Die Vorschau des Beispielskripts

Abbildung 1: Die Vorschau des Beispielskripts

Alle Funktionen zu AdWords Scripts findet man in AdWords unter dem Punkt Automatisierung im Menü am linken Rand. Klickt man dort zum ersten Mal auf „Skript erstellen“, dann bekommt man von Google zunächst ein fertiges Beispielskript zu sehen. Dieses Beispielskript rechnet Klicks und Impressionen von Keywords zusammen und gibt anschließend die durchschnittlichen Klickraten nach Anzeigenposition aus. Da dieses Skript keinerlei Änderungen vornimmt, kann man es gefahrlos ausführen, um gleich einige wichtige Konzepte zu veranschaulichen.

Da wäre zunächst der Hinweis auf die nötige Autorisierung, ohne die eine Ausführung des Skripts nicht möglich ist. Mit einem Klick auf Jetzt autorisieren und der anschließenden Bestätigung ist dies schnell erledigt, weswegen man hier auch kaum von einer Sicherheitsmaßnahme sprechen kann.

Nach der Autorisierung kann man das Skript entweder direkt ausführen, oder zunächst auf Vorschau klicken. Die Vorschau führt ein Skript nur maximal 30 Sekunden lang aus und nimmt keinerlei Änderungen am Konto vor. Sie eignet sich damit vor allem zum Testen von Skripten, die entweder lange laufen oder eben Änderungen vornehmen. Für das Beispielskript sollte eine Ausführung der Vorschau reichen.

Nach einigen Sekunden sieht man dann im unteren Bereich die Ergebnisse im Logger-Ausgang (siehe Abbildung 1). Alternativ kann man sich dort auch durch Skripte vorgenommene Änderungen anzeigen lassen. Falls man Skripte statt der Vorschau ganz normal ausführt, werden die Ausführungen samt Logger-Ausgang und vorgenommenen Änderungen protokolliert und können auf der AdWords-Scripts-Übersicht eingesehen werden.

 

Dokumentation, Beispiele und weitere Ressourcen
Google hat in die Programmieroberfläche viele Hilfestellungen integriert
Abbildung 2: Google hat in die Programmieroberfläche viele Hilfestellungen integriert

Der Einstieg in AdWords Scripts gelingt einfach, setzt jedoch grundlegende Programmierkenntnisse voraus. Um sich diese anzueignen, empfiehlt sich beispielsweise der JavaScript-Kurs auf der Website http://www.Codecademy.com.

Um den Einstieg in AdWords Scripts möglichst einfach zu gestalten, hat Google direkt in die Programmieroberfläche einige Hilfestellungen integriert (siehe Abbildung 2). So werden beim Tippen beispielsweise die zur Verfügung stehenden Funktionen der AdWords-Objekte aufgelistet. Außerdem kann man per Klick auf die Schaltfläche Beispiele eine recht umfangreiche Liste von Beispielcodes und sogar ganze Skripte einsehen.

Sehr gut gelungen ist auch die offizielle Dokumentation auf den Google-Developers-Seiten. Hier gibt es, neben der Dokumentation aller Klassen und Funktionen, auch die Beispielcodes noch mal übersichtlich einzusehen. Außerdem gibt es einige Tutorials für umfangreichere Skripte, darunter eine Gebotsaussteuerung auf Basis des Wetters und eine Demonstration des Umgangs mit Anzeigenparametern. Wer möchte kann auch noch das Scripts-Forum nutzen, wo Googles Entwickler auf Fragen und Wünsche von Anwendern eingehen.

 

AdWords Scripts programmieren

Programmiert werden AdWords Scripts in JavaScript. Dabei kommen verschiedene Konzepte immer wieder vor, welche sich am mitgelieferten Beispiel bereits gut demonstrieren lassen. Besonders wichtig sind die sogenannten Iteratoren, mit denen sich auf Kampagnen und andere Elemente zugreifen lässt. Dies sieht ganz simpel beispielsweise so aus:


var keywordsIterator = AdWordsApp.keywords().get();
while (keywordsIterator.hasNext()) {
  var keyword = keywordsIterator.next();
}

Hier wird zunächst ein Iterator für alle Keywords im Konto angelegt. Anschließend wird dieser durchlaufen: Solange es noch ein weiteres Keyword gibt, wird dieses in die Variable keyword geladen. Typischerweise folgen dann innerhalb der while-Schleife weitere Anweisungen bezüglich des Keywords.

In der Regel werden Iteratoren über Filter (hier als Selektoren bezeichnet) eingeschränkt, so dass beispielsweise nicht gleich alle Keywords eines Kontos ausgewählt werden:

var keywordsIterator = AdWordsApp.keywords()
 .withCondition("Impressions > 0")
 .withCondition("AdGroupName STARTS_WITH_IGNORE_CASE 'Aktion'")
 .orderBy("Clicks DESC")
 .forDateRange("LAST_WEEK")
 .get();

In diesem Beispiel werden zunächst einige Bedingungen gesetzt: Es sollen nur Keywords ausgewählt werden, die Impressionen hatten und die in AdGroups sind, deren Name mit „Aktion“ beginnt.  Die Keywords sollen dann absteigend geordnet nach Klickzahlen geladen werden. Weil sich sowohl die erste Bedingung als auch die Sortierung auf Statistiken beziehen, muss hier außerdem noch ein Zeitraum angegeben werden.

Wie in diesem Beispiel lassen sich allgemein auch mehrere Bedingungen verwenden. Auch mehrere Sortierungen lassen sich auf die gleiche Weise einfügen.  Als Zeiträume stehen verschiedene vordefinierte Optionen („TODAY“, „ALL_TIME“ usw.) zur Verfügung, alternativ lassen sich aber auch konkrete Daten verwenden.

Für einzelne Elemente lassen sich Statistiken dann wieder frei abrufen, ohne dass man an eventuell vorher festgelegte Zeiträume gebunden ist:

while (keywordsIterator.hasNext()) {
  var keyword = keywordsIterator.next();
  var keywordStats = keyword.getStatsFor("LAST_MONTH");
  var clicks = keywordStats.getClicks();
}

Hier werden die Statistiken für den letzten Monat über die Methode getStatsFor() geladen. Anschließend werden die Klickzahlen des Keywords in diesem Zeitraum abgerufen.
Neben Statistiken lassen sich auch Attribute auslesen:

var keywordText = keyword.getText();
var adGroup = keyword.getAdGroup();
var adGroupName = adGroup.getName();
var campaignName = keyword.getCampaign().getName();

Der Keyword-Text ist in diesem Fall praktisch das Keyword selbst, nur eben als Text und nicht als Objekt. Über getAdGroup() ist hier auch der Zugriff auf die übergeordnete Anzeigengruppe möglich, deren Namens-Attribut auf diesem Weg abgefragt werden kann. Natürlich lassen sich solche Dinge auch zusammenfassen, wie hier in der letzten Zeile geschehen.

Ebenfalls sehr häufig kommt der Logger in Skripten zum Einsatz. Mit diesem lassen sich ganz unkompliziert Dinge ausgeben, welche dann anschließend im Protokoll eingesehen werden können:

var message = "Das Keyword " + keywordText + " aus der Anzeigengruppe " + adGroupName + " aus der Kampagne " + campaignName + " hat im letzten Monat " + clicks + " Klicks erzielt";
Logger.log(message);

 

Weitere Dienste

Für AdWords Scripts stehen neben AdWords-spezifischen Funktionen und allgemeiner JavaScript-Funktionalität derzeit auch noch drei Dienste aus der Google Apps Script Infrastruktur zur Verfügung.

Per Mail-Dienst ist es möglich, aus Skripten auch Mails zu verschicken, etwa, um die erfolgreiche Ausführung eines Skripts, Ergebnisse oder auch Warn- und Fehlermeldungen zu verschicken. Als Absender steht in diesen Mails automatisch die Login-E-Mail des AdWords-Kontos.

Der Dienst URL Fetcher erlaubt es, aus Skripten heraus externe URLs aufzurufen. Gedacht ist dies in erster Linie, um externe Daten aus Feeds zu laden. Google nennt hier gerne die Möglichkeit, auf diese Weise Sortimentsdaten einzubinden, um Kampagnen dynamisch anzupassen.

Der dritte und umfangreichste Dienst besteht in der Anbindung an Google Spreadsheets, die hauseigene Tabellenkalkulation von Google. Im Wesentlichen lassen sich damit Daten in Tabellen ausgeben und einlesen, wodurch sich viele interessante Möglichkeiten ergeben. So können die erstellten Tabellen beispielsweise als Datenbank dienen, um Dinge zwischen Skript-Ausführungen zwischenzuspeichern.

Die AdWords API

Angesichts der vielen Einschränkungen stellt sich zuweilen die Frage, warum man nicht gleich zur wesentlich mächtigeren Programmierschnittstelle, der AdWords API, greifen sollte. Diese deckt praktisch alle Funktionen von AdWords ab und bietet größtmögliche Flexibilität. Allerdings ist mit der Nutzung dieser Schnittstelle auch ein deutlich größerer Aufwand verbunden. So muss man den Zugriff darauf zunächst beantragen und die Freigabe abwarten. Für die Nutzung können dann, je nach verwendeten Diensten, Gebühren anfallen.

Die nötige Infrastruktur, um Anwendungen zu erstellen und auszuführen, muss zur Verwendung der API selbst gestellt werden. Außerdem werden gute Programmierkenntnisse und ausreichend Zeit (und Geduld) zur Einarbeitung benötigt. Schließlich müssen Anwendungen, bedingt durch unregelmäßige Versionswechsel der API, immer wieder gewartet und teilweise überarbeitet werden.

Verglichen mit AdWords Scripts bietet die AdWords API insgesamt viel mehr Funktionalität und Flexibilität, ist allerdings auch mit wesentlich mehr Aufwand verbunden.

Prinzipiell eignet sich der Spreadsheets-Dienst aber vor allem, um Berichte zu erstellen. Im Grunde kann man darüber sogar optisch ansprechende Berichte, etwa mit Charts, erstellen. Einfacher geht es, indem man Charts und Layout ganz normal per Hand anlegt und per Skript einfach nur die Tabellen, auf denen alles basiert, aktualisiert. Das Tutorial Keyword Performance Report (https://developers.google.com/adwords/scripts/docs/tutorials/keyword-performance-report) demonstriert dieses Verfahren und den Umgang mit Spreadsheets sehr gut.

 

Grenzen von AdWords Scripts

Auch wenn der Funktionsumfang von AdWords Scripts derzeit noch wächst wird er wohl auf absehbare Zeit stark eingeschränkt bleiben (siehe Kasten). Grenzen gibt es jedoch auch jenseits der Funktionalität, insbesondere in Form von Laufzeitbegrenzungen. So können AdWords Scripts derzeit maximal 30 Minuten lang ausgeführt werden. Das klingt zunächst nach sehr viel, kann je nach Anwendung aber schnell eng werden, da viele Funktionen recht viel Zeit benötigen.

Grenzen gibt es außerdem im Bezug auf die ständig verwendeten Iteratoren. Maximal können pro Iterator 50.000 Elemente (z. B. Keywords), pro Skript insgesamt 100.000 Elemente durchlaufen werden. Auch können maximal 100.000 Anzeigen und Keywords erstellt werden. In der Praxis wird man wohl eher selten an diese Grenzen stoßen, allerdings verdeutlichen sie, dass Scripts eben nicht für alle Anwendungen und Größenordnungen gedacht sind.

In den letzten Monaten hat Google in Bezug auf diese Grenzen mehrere Änderungen vorgenommen und auch die Performance von Skripten teilweise stark verbessert. Es ist damit zu rechnen, dass sich hier auch in Zukunft Veränderungen ergeben. Der aktuelle Stand ist unter https://developers.google.com/adwords/scripts/docs/limits einsehbar.

 

Skripte verwalten
Die Ausführung von Skripten lässt sich im Voraus planen
Abbildung 3: Die Ausführung von Skripten lässt sich im Voraus planen

Alle erstellten Skripte samt Protokollen zu allen Ausführungen (samt Logger-Ausgaben und Änderungen) finden sich gesammelt in AdWords unter dem Menüpunkt Automatisierung à Skripts. Skripte können jederzeit spontan ausgeführt werden, sie lassen sich aber auch im Voraus planen. Möglich ist die einmalige Ausführung an einem bestimmten Datum zu einer bestimmten Stunde, oder die regelmäßige Ausführung, welche stündlich, täglich, wöchentlich oder monatlich erfolgen kann (siehe Abbildung 3).

In der Praxis kommt man mit diesen Optionen schon sehr weit, allerdings passt beispielsweise eine Ausführung zwei Mal pro Woche nicht in dieses Raster. Will man ein Skript zum Beispiel montags und freitags ausführen, muss man zu Tricks greifen. Eine Möglichkeit besteht darin, das Skript einfach jeden Tag auszuführen, und im Skript selbst zu prüfen, ob gerade Montag oder Freitag ist. Das könnte dann so aussehen:

var day = new Date().getDay();
if(day != 1 && day != 5) return;

Zu beachten ist hierbei, dass (derzeit) standardmäßig kalifornische Zeit zugrunde gelegt wird.

Alternativ ist es natürlich auch möglich, ein Skript einfach mehrfach anzulegen, um ein Exemplar wöchentlich am Montag und das andere am Freitag ausführen zu lassen. Der Nachteil dieser Lösung ist, dass man dafür ein weiteres Skript autorisieren muss.

Die Autorisierung von einzelnen Skripten ist grundsätzlich erst mal kein Problem, allerdings kann immer nur eine begrenzte Zahl gleichzeitig autorisiert sein. Dabei ist die genaue Obergrenze nicht feststehend und schwankt in der Praxis zwischen zehn und fünfzehn. Wird danach ein weiteres Skript autorisiert, wird die älteste bestehende Autorisierung widerrufen. Welches Skript das betrifft, erfährt man allerdings nicht. Erst wenn ein nicht autorisiertes Skript planmäßig ausgeführt werden soll, schickt Google standardmäßig eine E-Mail.

In dieser intransparenten Begrenzung der Skript-Anzahl liegt derzeit eine große Einschränkung von AdWords Scripts. Wer mehrere Konten über ein MCC-Konto verwaltet, muss außerdem damit leben, dass die Grenze auch über die verwalteten Konten insgesamt gilt. Mit jeweils einem Skript in 10-15 Konten wäre man also bereits am Limit. Damit scheiden AdWords Scripts für Standardaufgaben im Agenturumfeld momentan noch aus. Es ist aber zu erwarten, dass Google dieses Problem in absehbarer Zeit lösen wird.

 

Fazit

Mit AdWords Scripts lassen sich bestimmte Aufgaben automatisieren, ohne dass dazu übermäßig viel Aufwand betrieben werden muss. Das System ist noch längst nicht perfekt, glänzt aber durch die gute Zugänglichkeit, so dass man praktisch einfach loslegen und ausprobieren kann. Da Google entschlossen scheint, die Scripts-Infrastruktur weiter auszubauen und zu verbessern, könnte hier in Zukunft noch einiges passieren.

 

AdWords Scripts aus dem Netz

Prinzipiell eignen sich AdWords Scripts dazu, im Netz veröffentlicht und anderen zur Verfügung gestellt zu werden. Bisher sind erst wenige Skripte verfügbar, allerdings kann es durchaus lohnen, erst mal nach veröffentlichten Scripts zu suchen, bevor man etwas selbst entwickelt.

Bei der Verwendung fremder Skripte ist aber natürlich Vorsicht geboten. Theoretisch ließe sich damit viel Unfug treiben, weshalb man lieber die Finger von undurchsichtigen Skripten aus zweifelhaften Quellen lässt. Grundsätzlich besteht außerdem immer die Gefahr, dass ein Skript Fehler enthält – das gilt natürlich auch für eigene Skripte. Eine gewisse Vorsicht ist also immer geboten.

Empfehlenswert sind auf jeden Fall die Skripte von Google selbst. Außerdem veröffentlicht Bloofusion hin und wieder eigene Skripte, die unter http://www.ppc-epiphany.com/topics/adwords-scripts/ gefunden werden können.

 

 

Über den Autor

Martin Röttgerding ist Head of SEM bei der SEO-/SEM-Agentur Bloofusion.

E-Mail: martin.roettgerding@bloofusion.de
Martin Röttgerding (@bloomarty) bei Twitter: Follow bloomarty on Twitter