Eine Abfrage besteht aus einer Reihe von Klauseln: SELECT
,
FROM
,
WHERE
,
ORDER BY
,
LIMIT
und PARAMETERS
.
In Klauseln werden Feldnamen, Ressourcennamen, Operatoren, Bedingungen und Sortierungen verwendet, die zu einer einzelnen Abfrage kombiniert werden.
Im Grunde genommen gehen Sie so vor, um eine Abfrage zu erstellen:
- Geben Sie eine Ressource an, aus der Daten abgerufen werden sollen.
- Fügen Sie Felder und Messwerte hinzu, um die Daten zu definieren, die zurückgegeben werden sollen.
- 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 required-Klausel in einer Abfrage.
- Gibt eine Reihe von Feldern an, die in der Anfrage abgerufen werden sollen.
- Nimmt eine durch Kommas getrennte Liste von Ressourcenfeldern, benutzerdefinierten Spalten, benutzerdefinierten Floodlight-Variablen, Segmentfeldern und Messwerten entgegen und gibt die Werte in der Antwort zurück.
In dieser Beispielabfrage wird gezeigt, wie Sie Attribute der campaign
-Ressource 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
undbidding_strategy.name
- Segmentfelder:
segments.device
undsegments.date
. - Messwertfelder:
metrics.impressions
undmetrics.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 „Hauptressource“
Normalerweise wird das Hauptressourcenfeld in die SELECT
-Klausel aufgenommen. Dies ist jedoch nicht erforderlich.
In dieser Beispielabfrage wird ein Hauptressourcenfeld (ad_group.status
) verwendet, um nur die Ergebnisse 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
Informationen zum Abrufen von IDs für benutzerdefinierte Spalten
Messwertfelder
Sie können Messwertfelder für eine bestimmte Ressource auswählen, ohne andere Felder 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 zugehörige Ressourcenfelder oder Messwerte in der SELECT
-Klausel anzugeben.
In dieser Beispielabfrage werden die 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 mit dem Metadatenattribut
Selectable
, das alsfalse
gekennzeichnet ist. - Wiederkehrende Felder, d. h. Felder mit dem Metadatenattribut
Repeated
, das alstrue
gekennzeichnet ist. - Felder, die für die angegebene Ressource in der
FROM
-Klausel nicht verfügbar sind. Attribute einiger Ressourcen können nicht gleichzeitig ausgewählt werden. Bei einigen Ressourcen ist nur ein Teil aller Messwerte und Segmente verfügbar. - Inkompatible Segmente oder Messwerte. Weitere Informationen finden Sie unter Segmentierung.
Weitere Informationen dazu, wo Sie diese Informationen für die einzelnen Ressourcen finden, finden Sie in der Referenzdokumentation.
FROM-Klausel
In der FROM
-Klausel wird Folgendes ausgeführt:
- Eine erforderliche Klausel für Abfragen an
SearchAds360Service
(sowohlSearch
als auchSearchStream
). - Sollte nicht für Abfragen an
SearchAds360FieldService
enthalten sein. - Gibt die Hauptressource an, die von der Abfrage zurückgegeben wird.
- Es kann nur eine einzelne Ressource angegeben werden.
- Hier werden die Felder definiert, die Sie in allen anderen Klauseln der Abfrage verwenden können.
Zugewiesene 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 die entsprechenden Attribute nur der SELECT
-Klausel hinzufügen, um die Werte zurückzugeben.
In dieser Beispielabfrage werden sowohl die Anzeigengruppen-ID als auch die Kampagnen-ID zurückgegeben, 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 wird ad_group.resource_name
in die Antwort einbezogen, obwohl sie nicht explizit in der Abfrage ausgewählt wurde:
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 einbezogen, da campaign.id
ausgewählt ist:
SELECT
campaign.id,
ad_group.id
FROM ad_group
WHERE-Klausel
Die WHERE
-Klausel:
- Eine optionale Klausel in einer Abfrage.
- Gibt Bedingungen für das Filtern und Segmentieren der Daten für die Anfrage an.
Bedingungen folgen diesem Muster:
FIELD_NAME
OPERATOR
VALUE
(durch Leerzeichen getrennt). - Kann mehrere Bedingungen enthalten, die durch das Trennzeichen
AND
getrennt sind.
In dieser Beispielabfrage wird gezeigt, wie mit der WHERE
-Klausel impressions
-Messwerte für einen bestimmten Zeitraum zurückgegeben werden:
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 zum Angeben von Zeitraumoptionen in Abfragen finden Sie unter Zeitraumoptionen.
Nach dem 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 abgefragt.
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 zur Segmentierung von Berichten finden Sie unter Segmentierung.
Groß-/Kleinschreibung
Wenn Sie nach Stringwerten filtern, spielt die standardmäßige Unterscheidung zwischen Groß- und Kleinschreibung der einzelnen Operatoren eine wichtige Rolle für die korrekte Filterung der Ergebnisse.
In der folgenden Tabelle sehen Sie, ob die Groß- und Kleinschreibung bei den einzelnen Operatoren standardmäßig berücksichtigt wird.
Standardeinstellung für die Berücksichtigung der Groß-/Kleinschreibung | |
---|---|
=/!= |
Case sensitive |
IN/NOT IN |
Case sensitive |
LIKE/NOT LIKE |
Case insensitive |
CONTAINS (...) |
Case sensitive |
REGEXP_MATCH/NOT REGEXP_MATCH |
Case sensitive |
Sie können den (?i)
-Modifikator verwenden, um die Standardempfindlichkeit für REGEXP_MATCH
und NOT REGEXP_MATCH
so zu ändern, dass die Groß- und Kleinschreibung nicht berücksichtigt wird. Beispiel:
SELECT campaign.id
FROM campaign
WHERE campaign.name REGEXP_MATCH "(?i).*test.*"
Eine vollständige Liste der Operatoren, mit denen Sie Ihre Daten filtern können, finden Sie in der Referenz zur Abfragesprache.
Wichtige Zeiträume
Die folgenden Segmentfelder werden als zentrale Datumssegmente bezeichnet: segments.date
, segments.week
, segments.month
, segments.quarter
und segments.year
.
Mithilfe von grundlegenden Datumssegmenten in der WHERE
-Klausel können Sie einen Zeitraum angeben.
In dieser Beispielabfrage wird DURING LAST_30_DAYS
für das Feld segments.date
in der WHERE
-Klausel angegeben:
SELECT
campaign.id,
campaign.name,
segments.date,
metrics.clicks
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
Ausführliche Informationen zur Verwendung von zentralen Datumssegmenten erhalten Sie unter Segmentierung > Zentrale Datumssegmente.
Verbotene Filterung
Filtern ist nicht zulässig:
- In nicht ausgewählten Segmentfeldern, mit Ausnahme von Kerndatumssegmenten.
- Auf Feldern beliebiger Nachrichtentypen, mit Ausnahme von primitiven Feldern (z. B.
Int64Value
,StringValue
usw.). - Auf Attribute von wiederholten Feldern beliebiger Nachrichtentypen, mit Ausnahme von einfachen Feldern (z. B.
Int64Value
,StringValue
usw.).
ORDER BY-Klausel
Die ORDER BY
-Klausel:
- Eine optionale Klausel in einer Abfrage.
- Gibt die Reihenfolge an, in der die Ergebnisse zurückgegeben werden. Die Reihenfolge folgt diesem Muster:
FIELD_NAME
ORDERING_OPTION
(durch ein Leerzeichen getrennt). - Es sind zwei Optionen zulässig:
ASC
(aufsteigend) oderDESC
(absteigend). Standardmäßig ist „Aufsteigend“ ausgewählt.
In dieser Beispielabfrage werden die Kampagnen nach der Anzahl der Klicks in absteigender Reihenfolge (höchster Wert zuerst) sortiert:
SELECT
campaign.name,
metrics.clicks
FROM campaign
ORDER BY metrics.clicks DESC
Mehrere Bestellungen
Sie können mehrere Felder in der ORDER BY
-Klausel mithilfe einer durch Kommas getrennten Liste angeben. Die Ergebnisse werden in der Reihenfolge sortiert, die Sie in der Abfrage angeben.
In dieser Beispielabfrage werden Anzeigengruppendaten ausgewählt und die Ergebnisse in aufsteigender Reihenfolge nach Kampagnenname, dann in absteigender Reihenfolge nach Anzahl der Impressionen und dann in absteigender Reihenfolge nach Anzahl der Klicks sortiert:
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 einzugrenzen.
Diese Beispielabfrage gibt die fünf Kampagnen mit den meisten 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 Anordnungen
Folgendes 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
In der LIMIT
-Klausel wird Folgendes ausgeführt:
- Ist eine optionale Klausel in einer Abfrage.
- Hiermit lässt sich die Anzahl der Ergebnisse begrenzen, die durch die Abfrage zurückgegeben werden.
Diese Klausel ist beispielsweise nützlich, wenn Sie nur an einer Stichprobe oder Zusammenfassung der Ergebnisse interessiert sind.
Bei dieser Beispielabfrage ist die Gesamtzahl der Ergebnisse auf 50 begrenzt:
SELECT
campaign.name,
ad_group.name,
segments.device,
metrics.impressions
FROM ad_group
ORDER BY metrics.impressions DESC
LIMIT 50
PARAMETERS-Klausel
Mit der Klausel PARAMETERS
können Sie Metaparameter für die Anfrage angeben.
Entwürfe einschließen
Mit dem Parameter include_drafts
wird festgelegt, ob Entwürfe in den Ergebnissen enthalten sind. Der Standardwert ist false
. Legen Sie den Wert auf true
fest, um Entwürfe zu berücksichtigen.
Mit dieser Beispielabfrage werden sowohl Kampagnen im Entwurfsstatus als auch reguläre Kampagnen zurückgegeben:
SELECT campaign.name
FROM campaign
PARAMETERS include_drafts=true
Nicht ausgewählte resource_name
auslassen
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
festlegen, empfehlen wir Ihnen, den Ressourcennamen der primären Ressource und alle zugeordneten Ressourcen in Ihrer SELECT
-Klausel explizit anzufordern.
In dieser Beispielabfrage werden weder das Feld campaign.resource_name
noch das Feld customer.resource_name
zurückgegeben, da sie nicht in der SELECT
-Klausel enthalten sind:
SELECT
campaign.name,
customer.id
FROM campaign
PARAMETERS omit_unselected_resource_names = true
In dieser Beispielabfrage wird das Feld campaign.resource_name
zurückgegeben, da es in der SELECT
-Klausel explizit angefordert wird:
SELECT
campaign.name,
campaign.resource_name
FROM campaign
PARAMETERS omit_unselected_resource_names = true
Währung für Messwerte ändern
Mit dem Parameter metrics_currency
können Sie die Währung angeben, die bei der Berechnung eines Messwerts in Ihrer 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 nach ISO 4217 verwenden.
Beispiel: USD, EUR.
In dieser Beispielabfrage wird der Messwert „cost_micros“ in der Landeswährung des Kontos zurückgegeben.
SELECT
campaign.name,
metrics.cost_micros
FROM campaign
WHERE segments.date >= "2018-08-15"
AND segments.date < "2018-08-16"
In dieser Beispielabfrage wird der Messwert „cost_micros“ in chilenischen Pesos (CLP) zurückgegeben.
SELECT
campaign.name,
metrics.cost_micros
FROM campaign
WHERE segments.date >= "2018-08-15"
AND segments.date < "2018-08-16"
PARAMETERS metrics_currency = "CLP"