Abfragestruktur und -klauseln

Eine Abfrage besteht aus einer Reihe von Klauseln: SELECT, FROM, WHERE, ORDER BY, LIMIT und PARAMETERS.

In Klauseln werden Feldnamen, Ressourcennamen, Operatoren, Bedingungen und Reihenfolgen verwendet, die zu einer einzigen Abfrage zusammengefasst werden.

So erstellen Sie eine Abfrage:

  • Geben Sie eine Ressource an, von der Daten abgerufen werden sollen.
  • Fügen Sie Felder und Messwerte hinzu, um die Daten zu definieren, die Sie zurückgeben möchten.
  • Fügen Sie Segmente hinzu, um Ihre Ergebnisse zu gruppieren.
  • Fügen Sie zugeordnete Ressourcen hinzu, um zugehörige Ressourcendaten implizit zusammenzuführen.
  • Ergebnisse filtern, sortieren und eingrenzen.

SELECT-Klausel

Die SELECT-Klausel:

  • Ist eine erforderlich-Klausel in einer Abfrage.
  • Gibt eine Reihe von Feldern an, die in der Anfrage abgerufen werden sollen.
  • Verwendet eine durch Kommas getrennte Liste von Ressourcenfeldern, benutzerdefinierten Spalten, benutzerdefinierten Floodlight-Variablen, Segmentfeldern und Messwerten und gibt die Werte in der Antwort zurück.

Diese Beispielabfrage zeigt, wie Sie Attribute der Ressource campaign auswählen:

SELECT
  campaign.id,
  campaign.name
FROM campaign

Mehrere Feldtypen

Sie können in einer Anfrage verschiedene Feldtypen anfordern.

Die folgende Beispielabfrage zeigt eine einzelne Abfrage mit einer Kombination aus:

  • Ressourcenfelder: campaign.id, campaign.name, bidding_strategy.id und bidding_strategy.name.
  • Segmentfelder: segments.device und segments.date.
  • Messwertfelder: metrics.impressions und metrics.clicks.
SELECT
  campaign.id,
  campaign.name,
  bidding_strategy.id,
  bidding_strategy.name,
  segments.device,
  segments.date,
  metrics.impressions,
  metrics.clicks
FROM campaign
WHERE segments.date DURING LAST_30_DAYS

Weitere Informationen zum Segmentieren von Suchberichten finden Sie unter Segmentierung.

Feld für Hauptressource

Normalerweise würden Sie das Hauptressourcenfeld in die SELECT-Klausel aufnehmen. Dies ist jedoch optional und nicht erforderlich.

Diese Beispielabfrage verwendet ein Hauptressourcenfeld (ad_group.status), um die Ergebnisse nur zu filtern.

SELECT campaign.id
FROM ad_group
WHERE ad_group.status = PAUSED

Benutzerdefinierte Floodlight-Variablen

Sie können benutzerdefinierte Floodlight-Variablen mithilfe ihrer IDs in die SELECT-Klausel aufnehmen.

In diesem Beispiel enthält die Abfrage eine benutzerdefinierte Variable mit der ID 123454321 für die Kampagnenressource.

SELECT
  conversion_custom_metrics.id[123454321]
FROM campaign
SELECT
  conversion_custom_dimensions.id[123454321]
FROM campaign

Benutzerdefinierte Spalten

Sie können benutzerdefinierte Spalten mithilfe ihrer IDs in die SELECT-Klausel aufnehmen.

In diesem Beispiel enthält die Abfrage eine benutzerdefinierte Spalte mit der ID 12345678 für die Kampagnenressource.

SELECT
  custom_columns.id[12345678]
FROM campaign

Weitere Informationen zum Abrufen von IDs für benutzerdefinierte Spalten

Messwertfelder

Sie können Messwertfelder für eine bestimmte Ressource auswählen, ohne andere Felder aus der Ressource in die SELECT-Klausel aufzunehmen.

In dieser Beispielabfrage werden die Messwerte impressions und clicks für die Ressource campaign ausgewählt.

SELECT
  metrics.impressions,
  metrics.clicks
FROM campaign

Unter metrics finden Sie eine Liste der Messwertfelder, die Sie in Ihren Abfragen verwenden können.

Segmentfelder

Sie können Segmentfelder auswählen, ohne in der SELECT-Klausel zugehörige Ressourcenfelder oder Messwerte anzugeben.

In dieser Beispielabfrage werden Ergebnisse nach Gerät segmentiert.

SELECT segments.device
FROM campaign

Unter segments finden Sie eine Liste der Segmentfelder, die Sie in Ihren Abfragen verwenden können.

Unzulässige Felder

Die folgenden Felder können in der SELECT-Klausel nicht verwendet werden:

  • Nicht auswählbare Felder, d. h. Felder, bei denen das Metadatenattribut Selectable als false gekennzeichnet ist.
  • Wiederkehrende Felder, d. h. Felder, bei denen das Metadatenattribut Repeated als true markiert ist.
  • Felder, die für die angegebene Ressource in der FROM-Klausel nicht verfügbar sind. Die Attribute einiger Ressourcen können nicht zusammen ausgewählt werden. Einige Ressourcen stellen nur einen Teil aller Messwerte und Segmente zur Verfügung.
  • Inkompatible Segmente oder Messwerte. Weitere Informationen finden Sie unter Segmentierung.

In der Referenzdokumentation erfahren Sie, wo Sie diese Informationen für die einzelnen Ressourcen finden.

FROM-Klausel

Die FROM-Klausel:

  • Ist eine erforderliche Klausel für Abfragen an die Methode SearchAds360Service (sowohl die Methoden Search als auch SearchStream).
  • Sollte für Abfragen an SearchAds360FieldService nicht enthalten sein.
  • Gibt die Hauptressource an, die die Abfrage zurückgibt.
  • Kann nur eine einzelne Ressource angeben.
  • Definiert die Felder, die Sie in allen anderen Klauseln in der Abfrage verwenden können.

Zugeordnete Ressourcen

Wenn zugeordnete Ressourcen verfügbar sind, werden sie implizit mit der Ressource verknüpft, die Sie in der FROM-Klausel angeben. Sie müssen ihre Attribute nur der SELECT-Klausel hinzufügen, damit ihre Werte zurückgegeben werden.

Diese Beispielabfrage gibt sowohl die Anzeigengruppen-ID als auch die Kampagnen-ID zurück, da campaign eine zugeordnete Ressource der Ressource ad_group ist.

SELECT
  campaign.id,
  ad_group.id
FROM ad_group

Feld resource_name

Das Feld resource_name der Hauptressource in der FROM-Klausel wird immer zurückgegeben.

In dieser Beispielabfrage ist ad_group.resource_name in der Antwort enthalten, auch wenn dies nicht explizit in der Abfrage ausgewählt ist:

SELECT ad_group.id
FROM ad_group

Das Feld resource_name einer zugewiesenen Ressource wird zurückgegeben, wenn mindestens ein Feld ausgewählt ist.

In dieser Beispielabfrage wird campaign.resource_name in die Antwort aufgenommen, da campaign.id ausgewählt ist:

SELECT
  campaign.id,
  ad_group.id
FROM ad_group

WHERE-Klausel

Die WHERE-Klausel:

  • Ist eine optionale Klausel in einer Abfrage.
  • Gibt Bedingungen zum Filtern und Segmentieren der Daten für die Anfrage an. Die Bedingungen folgen diesem Muster: FIELD_NAME OPERATOR VALUE (durch Leerzeichen getrennt).
  • Kann mehrere Bedingungen enthalten, die durch das Trennzeichen AND getrennt sind.

Diese Beispielabfrage zeigt, wie Sie mit der WHERE-Klausel impressions-Messwerte für einen bestimmten Zeitraum zurückgeben:

SELECT
  campaign.id,
  campaign.name,
  metrics.impressions
FROM campaign
WHERE segments.date DURING LAST_30_DAYS

Weitere Informationen zum Segmentieren von Suchberichten finden Sie unter Segmentierung.

Weitere Informationen zur Angabe von Zeiträumen in Abfragen finden Sie unter Zeiträume.

Nach Feld „resource_name“ filtern

Mit dem Feld resource_name können Sie Daten filtern oder sortieren.

In dieser Beispielabfrage wird das Feld campaign.resource_name verwendet, um die Ergebnisse nach einer bestimmten Kampagne zu filtern:

SELECT
  campaign.id,
  campaign.name
FROM campaign
WHERE campaign.resource_name = 'customers/1234567/campaigns/987654'

Mehrere Bedingungen

Sie können mehrere Bedingungen kombinieren, um Ihre Daten zu filtern.

In dieser Beispielabfrage wird die Anzahl der clicks-Messwerte für alle Kampagnen mit impressions-Messwerten auf Mobilgeräten in den letzten 30 Tagen angefordert.

SELECT
  campaign.id,
  campaign.name,
  segments.device,
  metrics.clicks
FROM campaign
WHERE metrics.impressions > 0
  AND segments.device = MOBILE
  AND segments.date DURING LAST_30_DAYS

Weitere Informationen zum Segmentieren von Berichten finden Sie unter Segmentierung.

Groß-/Kleinschreibung

Beim Filtern nach Stringwerten spielt die standardmäßige Groß-/Kleinschreibung jedes Operators eine wichtige Rolle für die korrekte Filterung der Ergebnisse.

Die folgende Tabelle zeigt die standardmäßige Groß-/Kleinschreibung der einzelnen Operatoren.

Standardmäßige Groß-/Kleinschreibung
=/!= Case sensitive
IN/NOT IN Case sensitive
LIKE/NOT LIKE Case insensitive
CONTAINS (...) Case sensitive
REGEXP_MATCH/NOT REGEXP_MATCH Case sensitive

Mit dem Modifikator (?i) können Sie die Standardempfindlichkeit für REGEXP_MATCH und NOT REGEXP_MATCH so ändern, dass die Groß-/Kleinschreibung nicht berücksichtigt wird. Beispiel:

SELECT campaign.id
FROM campaign
WHERE campaign.name REGEXP_MATCH "(?i).*test.*"

Eine vollständige Liste der Operatoren, die Sie zum Filtern Ihrer Daten verwenden können, finden Sie in der Referenz zur Abfragegrammatik.

Kerndatensegmente

Die folgenden Segmentfelder werden als Hauptdatumssegmente bezeichnet: segments.date, segments.week, segments.month, segments.quarter und segments.year.

Sie können Kerndatumssegmente in der WHERE-Klausel verwenden, um ein Datum oder einen Zeitraum anzugeben.

Diese Beispielabfrage gibt DURING LAST_30_DAYS für das Feld segments.date in der WHERE-Klausel an:

SELECT
  campaign.id,
  campaign.name,
  segments.date,
  metrics.clicks
FROM campaign
WHERE segments.date DURING LAST_30_DAYS

Ausführliche Informationen zur Verwendung von Kerndatumssegmenten finden Sie unter Segmentierung > Kerndatumssegmente.

Unzulässige Filter

Filtern ist nicht zulässig:

  • In nicht ausgewählten Segmentfeldern, mit Ausnahme von Kerndatensegmenten
  • Für Felder eines beliebigen Nachrichtentyps mit Ausnahme von Primitiven (z. B. Int64Value, StringValue usw.).
  • Für Attribute wiederkehrender Felder eines beliebigen Nachrichtentyps mit Ausnahme von Primitiven (z. B. Int64Value, StringValue usw.).

ORDER BY-Klausel

Die ORDER BY-Klausel:

  • Ist eine optionale Klausel in einer Abfrage.
  • Gibt die Reihenfolge an, in der die Ergebnisse zurückgegeben werden. Die Sortierung erfolgt nach diesem Muster: FIELD_NAME ORDERING_OPTION (durch ein Leerzeichen getrennt).
  • Zwei Optionen sind zulässig: ASC (aufsteigend) oder DESC (absteigend). Der Standardwert ist aufsteigend.

In dieser Beispielabfrage werden die Kampagnen nach der Anzahl der Klicks in absteigender Reihenfolge sortiert (höchster zuerst):

SELECT
  campaign.name,
  metrics.clicks
FROM campaign
ORDER BY metrics.clicks DESC

Mehrere Bestellungen

Sie können mithilfe einer durch Kommas getrennten Liste mehrere Felder in der ORDER BY-Klausel angeben. Die Ergebnisse werden in der Reihenfolge sortiert, die Sie in der Abfrage angeben.

Diese Beispielabfrage wählt Anzeigengruppendaten aus und sortiert die Ergebnisse in aufsteigender Reihenfolge nach Kampagnenname, dann in absteigender Reihenfolge nach Anzahl der Impressionen und anschließend in absteigender Reihenfolge nach Anzahl der Klicks:

SELECT
  campaign.name,
  ad_group.name,
  metrics.impressions,
  metrics.clicks
FROM ad_group
ORDER BY
  campaign.name,
  metrics.impressions DESC,
  metrics.clicks DESC

Reihenfolge und Limit kombinieren

Sie können die ORDER BY-Klausel in Kombination mit der LIMIT-Klausel verwenden, um die Ergebnisse zu verfeinern.

Diese Beispielabfrage gibt die fünf Kampagnen mit den höchsten Impressionen in den letzten 30 Tagen zurück:

SELECT
  campaign.id,
  campaign.name,
  metrics.impressions
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
ORDER BY metrics.impressions DESC
LIMIT 5

Verbotene Bestellung

Die Sortierung ist nicht zulässig:

  • Nach Attributen nicht ausgewählter Ressourcen.
  • Nach nicht ausgewählten Messwerten.
  • Nach nicht ausgewählten Segmenten.
  • Für diese Feldtypen gilt:
    • MESSAGE
    • Wiederkehrende Felder
    • Attribute von wiederkehrenden Feldern.

LIMIT-Klausel

Die LIMIT-Klausel:

  • Ist eine optionale Klausel in einer Abfrage.
  • Ermöglicht Ihnen, die Anzahl der Ergebnisse zu begrenzen, die die Abfrage zurückgibt.

Diese Klausel ist beispielsweise nützlich, wenn Sie nur an einer Stichprobe oder an einer Zusammenfassung der Ergebnisse interessiert sind.

Diese Beispielabfrage begrenzt die Gesamtzahl der Ergebnisse auf 50:

SELECT
  campaign.name,
  ad_group.name,
  segments.device,
  metrics.impressions
FROM ad_group
ORDER BY metrics.impressions DESC
LIMIT 50

PARAMETERS-Klausel

Mit der PARAMETERS-Klausel können Sie Metaparameter für die Anfrage angeben.

Vorschläge einschließen

Mit dem Parameter include_drafts wird festgelegt, ob Entwurfselemente in die Ergebnisse aufgenommen werden. Der Standardwert ist false. Legen Sie dafür true fest, um Entwürfe einzuschließen.

Diese Beispielabfrage gibt sowohl Kampagnenentwürfe als auch reguläre Kampagnen zurück:

SELECT campaign.name
FROM campaign
PARAMETERS include_drafts=true

Nicht ausgewählte resource_name weglassen

Mit dem Parameter omit_unselected_resource_names können Sie das Feld resource_name aller Ressourcen ausschließen, die in der SELECT-Klausel nicht explizit angefordert werden. Der Standardwert ist false. Wenn Sie diesen Parameter auf true setzen, empfehlen wir, den Ressourcennamen der primären Ressource und aller zugeordneten Ressourcen in der SELECT-Klausel explizit anzufordern.

Diese Beispielabfrage gibt weder das Feld campaign.resource_name noch das Feld customer.resource_name zurück, da diese nicht in der SELECT-Klausel enthalten sind:

SELECT
  campaign.name,
  customer.id
FROM campaign
PARAMETERS omit_unselected_resource_names = true

Diese Beispielabfrage gibt das Feld campaign.resource_name zurück, da es explizit in der Klausel SELECT angefordert wird:

SELECT
  campaign.name,
  campaign.resource_name
FROM campaign
PARAMETERS omit_unselected_resource_names = true

In Messwerten verwendete Währung ändern

Mit dem Parameter metrics_currency können Sie die Währung angeben, die bei der Berechnung eines Messwerts in der SELECT-Klausel verwendet werden soll. Standardmäßig wird die Landeswährung für das Konto verwendet. Wenn Sie diesen Parameter festlegen, müssen Sie den dreistelligen Währungscode gemäß ISO 4217 verwenden. Beispiel: USD, EUR.

Diese Beispielabfrage gibt den Messwert „cost_micros“ in der Landeswährung des Kontos zurück.

SELECT
  campaign.name,
  metrics.cost_micros
FROM campaign
WHERE segments.date >= "2018-08-15"
AND segments.date < "2018-08-16"

Diese Beispielabfrage gibt den Messwert „cost_micros“ in chilenischen Pesos (CLP) zurück.

SELECT
  campaign.name,
  metrics.cost_micros
FROM campaign
WHERE segments.date >= "2018-08-15"
AND segments.date < "2018-08-16"
PARAMETERS metrics_currency = "CLP"

Weitere Informationen