Google Ads Skripte: Automatisierung für Dummies

Veröffentlicht: 24.05.2019
Heiko Luislampe

Es gibt nichts, was ein Script nicht machen kann”, weiß der IT-Kollege. Im zweiten Artikel zur Automatisierung für Dummies erklären wir die Grundlagen der Google Ads Scripts. Und welche Vorteile Sie heute noch aus dem neu gewonnenen Wissen ziehen können.

Automatisierung mit Google Ads Scripts

Auch wenn Sie keine Programmierkenntnisse haben: Im Grunde funktionieren die Scripts wie die bereits im ersten Artikel beschriebenen Regeln. Bei Regeln sehen Sie den dahinter stehenden Code nur nicht - und Sie haben deutlich weniger Einstellungsmöglichkeiten. In allen Google Ads Scripts werden je nach Funktion aber die gleichen Variablen abgefragt wie sie auch in Regeln größtenteils möglich sind:

  • Welchem Budget, welcher Platzierung, welchen Kampagnen gilt dieses Script?

  • Wie groß ist der Datenzeitraum?

  • Was sind die Bedingungen etwa für Gebotsanpassungen und wie viel Prozent soll das Gebot angehoben oder gesenkt werden?

Diese Werte müssen in der Regel in den Scripts angepasst werden, meistens jedoch nur in den Variablen (var) ganz oben im Kopf der Scripts. Im Code selbst sind von den Programmierern häufig die nötigen Hinweise notiert, was Sie hier in den Code einfügen müssen. Bei ganz einfachen Scripts sind wie bei den Regeln zwei gegenläufige Scripe nötig. Ein gutes Script, das nur Keywordgebote erhöhen kann, ist kein gutes Script. Erst wenn die Gebote erfolgloser Keywords auch wieder gesenkt werden, können Sie zufrieden sein.

Hier ein wichtiger Hinweis vorab: Sie sollten nur Scripts verwenden, deren Funktion Sie im Prinzip verstanden haben. Entweder dank der Beschreibung oder dank einer transparenten Dokumentation im Code. Mindestens die Variablen des Scripts müssen Sie schließlich nach Ihren Bedürfnissen einstellen können! Und auch bei Scripts ist ein einfaches “rückgängig machen” nicht vorgesehen. Nutzen Sie deshalb in jedem Fall die Vorschaufunktion in Google Ads, um einen Überblick über die Änderungen zu bekommen. Alles Andere läuft auf eigene Gefahr.

Tipps: Ganze Listen mit Scripts finden sich im Netz. Eine kleine Auswahl ohne Anspruch auf Vollständigkeit:
Google-eigene Scripte inklusive umfangreicher Dokumentation auf Englisch:
https://developers.google.com/google-ads/scripts/docs/solutions/
Gut gemachte Lösungen auf Deutsch:
https://www.internet-marketing-inside.de/free-Google-Ads-Scripts.html
88 Scripte, teilweise in Googles Lösungen enthalten:
https://www.reachx.de/88-google-adwords-skripte-die-sie-kennen-sollten/
100 Scripte, teilweise schon in den obigen Listen enthalten:
https://www.koozai.com/blog/pay-per-click-ppc/google-adwords/100-google-adwords-scripts-using/

Ein gutes Script für jeden Account und ein schönes Einsteigerbeispiel: Ein Script zum Pausieren von Kampagnen mit einem bestimmten Label, wenn das Budget aufgebraucht ist. Hier sehen Sie die Bedingungen, mit denen das Script gesteuert wird:

  • Ein Wert für Ihr festes Monatsbudget,

  • ein Zeitraum, etwa die tägliche Überprüfung,

  • und ein Label, das allen zu pausierenden Kampagnen zugewiesen werden muss.

Bevor es ans Script geht, müssen Sie daher allen betroffenen Kampagnen ein Label zuweisen. Idealerweise mit einem treffenden Namen, damit sie es später wieder zuordnen können. Hier können Sie Kampagnen mit Labels "markieren".

Erstellen Sie ein Label, an dem das Script seine Zuständigkeit erkennt. Unser Beispielwert lautet “Paused”.

Mit der Scripterstellung starten Sie im Toolbereich “Bulk-Aktionen” / Unterkategorie Scripts:

  • Erstellen Sie mit Klick auf das blaue Plus ein neues Script und benennen Sie es nach seiner Funktion. Das Beispielscript finden Sie hier am Ende der Seite.

  • Passen Sie die als Variablen aufgeführten Werte an:

    • CUTOFF_COST” ist ihr Budgetwert mit “.” (Punkt) als Trennzeichen, z. B. “300.00”

    • CUTOFF_LABEL” muss exakt die Bezeichnung Ihres Labels enthalten, z. B. “Paused” (Groß- und Kleinschreibung mit beachten).Die Variablen im Kopf des Scripts

  • Die Standardeinstellung des Scriptes zielt auf ein Monatsbudget, genauso gut kann es aber für Tagesbudgets oder längere Zeiträume eingesetzt werden. Die dafür anzupassenden Werte finden Sie hier unter den beiden Variablen markiert:

Mögliche Anpassungen am Beispielscript

Der Bezugszeitraum des Scriptes ist variabel: Statt “THIS MONTH” ist auch “THIS WEEK” oder “TODAY” denkbar. Sie müssen den Wert dann an allen drei Stellen im Script ändern.

  • Weil das Script in Ihrem Namen potenziell kostentreibende Änderungen in Ads vornehmen könnte, sichert sich Google mit einer Autorisierung gegen Rechtsansprüche ab.
    Autorisieren Sie zunächst das Script.Google Ads Scripts Autorisierung

  • Speichern Sie das angepasste Script.

  • Die Funktion können Sie in der Vorschau prüfen. Setzen Sie dafür einen Wert als “CUTOFF_COST” an, der das Script jetzt zu einer Aktion zwingen müsste. Sonst ist “Keine Änderung” die korrekte Ausgabe.

  • Stellen Sie wieder den Wunschbudgetwert ein und speichern Sie.

  • Jetzt fehlt nur noch die Häufigkeit, mit der das Script ausgeführt wird. Die müssen Sie in der Scriptübersicht einstellen. Ein Script, das keine Ausführungshäufigkeit eingestellt hat, wird auch nicht ausgeführt.Google Ads Scripts mögliche Abstände für die Ausführung

  • Glückwunsch! Ihr erstes Script steht und muss nur noch um ein Script zur “Wiederaktivierung” der Kampagnen ergänzt werden. Die Variablen sind dieselben wie im Beispiel, eine Anpassung des Budgetzeitraumes muss gegebenenfalls auch hier vorgenommen werden. Script 2 finden Sie hier.

Unser Fazit zu Google Ads Scripten

Automatisierung kann richtig Spaß machen: Es ist ein gutes Gefühl, wenn Ihre Regeln und Scripte Arbeit abnehmen. Mit etwas Recherche bei Google und wenigen Klicks können Sie große Änderungen und Verbesserungen erzielen. Oder wenn Sie nach einiger Zeit sogar feststellen, dass immer mehr Keywords ihren “Optimalbereich” erreichen und der Umsatz steigt.

Wichtig ist aber, dass Sie dranbleiben: Auch gut funktionierende Scripte und Regeln sind keine Selbstläufer. Wenn sich das Wettbewerbsumfeld verändert oder saisonale Schwankungen auftreten, kann sogar das Aussetzen der automatischen Optimierung die beste Lösung sein. Oder Sie verwenden gleich ein Script, das je nach Wetter und Saison bieten kann. Denn “es gibt nichts, was ein Script nicht machen kann”. Viel Erfolg!

Beispiel-Script 1: Pausieren von Kampagnen mit einem bestimmten Label, wenn das Budget aufgebraucht ist. 

Beispiel-Script 1. Kopieren und im Script-Editor einfügen.
var CUTOFF_COST = 300.00;
var CUTOFF_LABEL = "Paused";
 
function main() {
  var label = AdWordsApp.labels().withCondition("Name='" + CUTOFF_LABEL + "'").get().next();
  Logger.log(AdWordsApp.currentAccount().getStatsFor("THIS_MONTH").getCost())
 
    if (AdWordsApp.currentAccount().getStatsFor("THIS_MONTH").getCost() > CUTOFF_COST) {
 
    var campaignIterator = label.campaigns().get();
 
    while (campaignIterator.hasNext()) {
 
      var campaign = campaignIterator.next();
      campaign.pause();
    }  
  }
  main2();
}
 
function main2() {
  var campaignIterator = AdWordsApp.shoppingCampaigns().withCondition("LabelNames='" + CUTOFF_LABEL + "'").get();
  if (AdWordsApp.currentAccount().getStatsFor("THIS_MONTH").getCost() > CUTOFF_COST) {
 
     while (campaignIterator.hasNext()) {
 
      var campaign = campaignIterator.next();
      campaign.pause();
    } 
  }
}

Beispiel-Script 2: Aktivieren von durch Script 1 pausierten Kampagnen mit einem bestimmten Label, wenn der Zeitraum für das Budget neu beginnt. Hier muss z. B. der Monatsbeginn als Ausführungszeitpunkt für das Script gewählt werden.

 Beispiel-Script 2. Kopieren und im Script-Editor einfügen.
var CUTOFF_LABEL = "Paused";
 
function main() {
  var label = AdWordsApp.labels().withCondition("Name='" + CUTOFF_LABEL + "'").get().next();
  var campaignIterator = label.campaigns().get();
 while (campaignIterator.hasNext()) {
    var campaign = campaignIterator.next();
    campaign.enable();
  }
  main2();
}
 
function main2() {
  var campaignIterator = AdWordsApp.shoppingCampaigns().withCondition("LabelNames='" + CUTOFF_LABEL + "'").get();
  while (campaignIterator.hasNext()) {
 
      var campaign = campaignIterator.next();
      campaign.enable();
     }
}

Datenschutz und Verwendung von Cookies

Wir setzen Cookies ein, um Ihnen den Besuch unserer Website so angenehm wie möglich zu machen. Wenn Sie mit der Nutzung der Website forfahren, erklären Sie sich automatisch mit unserer Erklärung zum Datenschutz und zu Cookies einverstanden.