AWQL Tutorial & Generator

 

Mit dem AWQL Generator (beta) lassen sich spielend leicht AWQL Queries erstellen. Diese werden als Standalone-Query und als fertiges Adwords Scripts Codesnippet ausgegeben. Bei jeder Änderung der Parameter wird die Ausgabe live geupdated.

Benutzung:

  1. Report auswählen
  2. Dimensionen und Metriken festlegen
  3. (optional) Filter anwenden. Der Generator achtet darauf, dass die richtigen Operators zur Verfügung stehen
  4. Zeitraum wählen
  5. Fertig. Bereit zum Copy & Pasten ;)

 

AWQL Tutorial

AWQL (Adwords Query Language) dient dazu, Reportdaten aus dem Google Ads (ehem. Adwords) System anzufordern. Die Sparche ist SQL sehr ähnlich, und somit einfach zu erlernen. Einige Feinheiten gibt es aber zu beachten.

Sehen wir uns mal eine klassische Abfrage (Query) an:

var report = AdWordsApp.report('SELECT CampaignName, Impressions, Clicks, Cost ' +
                               'FROM CAMPAIGN_PERFORMANCE_REPORT ' +
                               'WHERE Impressions > 0 ' +
                               'AND Clicks < 1000 ' +
                               'DURING 20180501, 20180531');

 

Was auffällt, sind die Wörter in Großbuchstaben am Anfang jeder Zeile. Das sind die so genannten Clauses. Davon gibt es 5 verschiedene:

  1. SELECT Clause: Hier werden die Reportdimensionen und -metriken festgelegt
  2. FROM Clause. Sie gibt an, von welchem Report die Daten bezogen werden sollen. Derzeit stehen etwa 45 verschiene Reports zur Auswahl. Eine komplette Übersicht gibt es auf der offizellen Seite.
  3. WHERE Clause (optional). Gibt einem die Möglichkeit, Filter zu verwenden. Mehr dazu im Abschnitt Filter. Es können mehrere Filter verwendet werden. Der erste wird dabei durch die WHERE Clause angegeben. Jeder weitere über eine
  4. AND Clause (optional). Wird ab dem zweiten Filter zur Definition selbiger gebraucht.
  5. DURING Cause. Hiermet legt man den Report-Zeitraum fest.

Um das Beispiel von oben also nochmal runterzubrechen: Wir haben die folgenden Dimensionen und Metriken angefordert:

CampaignName
Impressions
Clicks
Cost

Vom Report CAMPAIGN_PERFORMANCE_REPORT (Kampagnen-Performance-Report)

Wo Impressions größer als 0 ist
Und Clicks kleiner als 1000 sind
Für den Zeitraum zwischen 1. Mai 2018 und 31. Mai 2018

 

Die verschiedenen AWQL Bestandteile nochmals in der Übersicht:

Query Part    Optional / Notwendig
SELECT Dimension1, Dimension2, ...    immer notwendig
FROM Report Name    immer notwendig
WHERE Filter 1    optional
AND Filter 2    optional
DURING Timeframe    optional

 

Filter

Das Filtern von Dimensionen oder Metriken ist mit der komplizierteste Teil einer AWQL Abfrage. Wie der Filter geschrieben werden muss, hängt nämlich vom Datentyp der Filterspalte ab.

Die Datentypen sind:

  • Integer (z.B. 3)
  • Double (z.B. 2.7)
  • String (also Text, z.B. ein Kampagnenname)
  • Enumeration (alle möglichen Werte enstammen einer von Adwords festgelegten Liste)
  • String set (die möglichen Werte entsammen einer vom User festgelegten Liste)

Der Datentyp einer Dimension oder Metrik entscheidet darüber, welche Operatoren (z.B. = oder > ) zum Filtern verwendet werden können. Um herauszufinden, welche Datentypen eure Wunschspalten haben, verweise ich wieder auf die offizielle Seite. Dort einfach einen Report anklicken, Dimension und Dimension oder Metrik auswählen.


Quelle: Google

 

Nun zu den verfügbaren Operatoren:

Integer Operatoren

< <= > >= = !=

Integer Operatoren filtern numerische Metriken. z.B. Impressions or Clicks.

//Beispiele
'WHERE Impressions = 0 '
'WHERE Clicks >= 5 '

 

Double Operatoren

< >

Double Operatoren gelten für numerische Werte, die Kommastellen aufweisen. z.B. CTR

//Beispiele
'WHERE CTR > 5.0 '

 

String Operatoren

= != STARTS_WITH STARTS_WITH_IGNORE_CASE CONTAINS CONTAINS_IGNORE_CASE DOES_NOT_CONTAIN DOES_NOT_CONTAIN_IGNORE_CASE

String Operatoren werden bei Textwerten verwendet. z.B. Kampagnenname oder Adgroupname

//Beispiele
'WHERE CampaignName = Campaign1 '
'WHERE CampaignName CONTAINS 1 '
'WHERE CampaignName STARTS_WITH_IGNORE_CASE Camp '

 

Enumeration Operatoren

= != IN [] NOT_IN []

Enumeration Operatoren filtern Textwerte, die vom Google Ads (Adwords) System vorgegeben sind. z.B. Keyword-Stati.

//Beispiele
'WHERE Status = PAUSED '
'WHERE Status NOT_IN ["PAUSED", "REMOVED"] '

 

String Set Operatoren

CONTAINS_ALL [] CONTAINS_ANY [] CONTAINS_NONE []

String Set Operatoren funktionieren Spalten, die mehrere Werte enthalten können und vom User definiert werden. Z.B. Labels

//Beispiele; Die unterschiedlichen Anführungszeiten beachten!
"WHERE LabelNames CONTAINS_ANY ['Label A', 'Label B'] "

 

Zeiträume

AWQL gibt uns zwei Optionen, wie wir einen Zeitraum für unseren Report festlegen können. Entweder man wählt aus einer handvoll vordefinierter Zeiträume, oder man legt den Zeitraum mithilfe von zwei Datumsangaben selber fest.

TODAY, YESTERDAY, LAST_7_DAYS, LAST_30_DAYS, ALL_TIME or YYYYMMDD, YYYYMMDD

Wenn wir einen eigenen Zeitraum festlegen wollen, geben wir zwei Daten im Format YYYYMMDD an. Diese werden durch ein Komma voneinander getrennt. Das erste Datum ist der Startzeitpunkt, das Zweite der Endzeitpunkt.

//Beispiele
'DURING YESTERDAY'
'DURING LAST_7_DAYS'
'DURING 20180701, 20180731'

 

Einige weitere AWQL Beispiele

var report = AdWordsApp.report('SELECT AdGroupId, Status ' +
                               'FROM ADGROUP_PERFORMANCE_REPORT ');

var report = AdWordsApp.report('SELECT Criteria, Impressions, Clicks, Cost ' +
                               'FROM KEYWORDS_PERFORMANCE_REPORT ' +
                               'WHERE Clicks >= 10 ' +
                               'DURING LAST_7_DAYS');

var report = AdWordsApp.report('SELECT Query, KeywordTextMatchingQuery, QueryTargetingStatus, Impressions, Clicks, Ctr ' +
                               'FROM SEARCH_QUERY_PERFORMANCE_REPORT ' +
                               'DURING 20180501, 20180531');