Die Segmentierung ist in der Google Ads-Benutzeroberfläche als separates Menü verfügbar und kann in der Google Ads API implementiert werden. Dazu muss einer Abfrage einfach das richtige Feld hinzugefügt werden. Wenn Sie beispielsweise segments.device
zu einer Abfrage hinzufügen, wird ein Bericht mit einer Zeile für jede Kombination aus Gerät und der in der FROM
-Klausel angegebenen Ressource erstellt, wobei die statistischen Werte (Impressionen, Klicks, Conversions usw.) zwischen ihnen aufgeteilt werden.
In der Google Ads-Benutzeroberfläche kann jeweils nur ein Segment verwendet werden. Mit der API lassen sich jedoch mehrere Segmente in derselben Abfrage angeben.
SELECT
campaign.name,
campaign.status,
segments.device,
metrics.impressions
FROM campaign
Das Ergebnis beim Senden dieser Abfrage an GoogleAdsService.SearchStream
sieht in etwa so aus:
{
"results":[
{
"campaign":{
"resourceName":"customers/1234567890/campaigns/111111111",
"name":"Test campaign",
"status":"ENABLED"
},
"metrics":{
"impressions":"10922"
},
"segments":{
"device":"MOBILE"
}
},
{
"campaign":{
"resourceName":"customers/1234567890/campaigns/111111111",
"name":"Test campaign",
"status":"ENABLED"
},
"metrics":{
"impressions":"28297"
},
"segments":{
"device":"DESKTOP"
}
},
...
]
}
Beachten Sie, dass im obigen Beispielergebnis die Attribute für das erste und das zweite Objekt, einschließlich des Ressourcennamens, identisch sind. Die Impressionen werden nach device segmentiert, sodass für dieselbe Kampagne zwei oder mehr Objekte zurückgegeben werden können.
Implizite Segmentierung
Jeder Bericht ist anfangs nach der in der FROM
-Klausel angegebenen Ressource segmentiert. Das Feld "resource_name" der Ressource in der FROM
-Klausel wird zurückgegeben und die Messwerte werden danach segmentiert, auch wenn das Feld "resource_name" nicht explizit in der Abfrage enthalten ist. Wenn Sie beispielsweise ad_group
in der FROM
-Klausel als Ressource angeben, wird ad_group.resource_name
automatisch zurückgegeben und Messwerte werden implizit auf der Ebene „ad_group“ entsprechend segmentiert.
Für diese Abfrage
SELECT metrics.impressions
FROM ad_group
erhalten Sie einen JSON-String wie diesen:
{
"results":[
{
"adGroup":{
"resourceName":"customers/1234567890/adGroups/2222222222"
},
"metrics":{
"impressions":"237"
}
},
{
"adGroup":{
"resourceName":"customers/1234567890/adGroups/33333333333"
},
"metrics":{
"impressions":"15"
}
},
{
"adGroup":{
"resourceName":"customers/1234567890/adGroups/44444444444"
},
"metrics":{
"impressions":"0"
}
}
]
}
Beachten Sie, dass das Feld resource_name
von adGroup
immer zurückgegeben wird, da ad_group
in der FROM
-Klausel als Ressource angegeben wurde.
Auswählbare Segmentfelder
In der FROM
-Klausel können nicht alle Segmentfelder für eine bestimmte Ressource ausgewählt werden.
Die Abfrage wird weiterhin mit der ad_group
-Ressource ausgeführt. Damit ein Segmentfeld in der Ressource „ad_group“ auswählbar ist, muss es in der Liste Segments
für „ad_group“ vorhanden sein. Die Liste Segments
ist der gelbe Teil der Tabelle mit den verfügbaren Feldern auf der Metadatenseite der Ressource ad_group
.
Ressourcen segmentieren
Bei der Auswahl aus einigen Ressourcen haben Sie möglicherweise die Möglichkeit, zugehörige Ressourcen implizit zusammenzuführen. Dazu wählen Sie deren Felder neben den Feldern der Ressource in der FROM
-Klausel aus. Diese zugehörigen Ressourcen finden Sie in der Attributed Resources
-Liste für die Ressource auf der Metadatenseite der FROM
-Klausel. Im Fall der Ressource ad_group
können Sie auch Felder aus der Ressource campaign
auswählen. Das Feld „resource_name“ einer beliebigen Attributed Resources
mit mindestens einem Feld in der SELECT
-Klausel wird automatisch zurückgegeben, auch wenn das Feld „resource_name“ nicht explizit in der Abfrage enthalten ist.
Ähnlich wie bei der Auswahl von Attributed Resource
-Feldern können Sie auch Segmenting Resource
-Felder auswählen. Wenn auf der Metadatenseite einer bestimmten Ressource eine Segmenting Resources
-Liste vorhanden ist, führt die Auswahl von Feldern aus einer dieser aufgeführten Ressourcen dazu, dass die Abfrage weiter nach dem zurückgegebenen resource_name dieser Segmenting Resource
segmentiert wird. Sie werden beispielsweise feststellen, dass die Ressource campaign
als Segmenting Resource
für die Ressource campaign_budget
aufgeführt ist. Wenn Sie ein Kampagnenfeld wie campaign.name
aus der Ressource „campaign_budget“ auswählen, wird nicht nur das Feld „campaign.name“ zurückgegeben, sondern auch das Feld campaign.resource_name
zurückgegeben und segmentiert.
Auswahl zwischen Segmenten und Messwerten
Ein bestimmtes Segmentfeld ist möglicherweise nicht mit einigen anderen Segmentfeldern oder einigen Messwertfeldern kompatibel. Anhand der selectable_with
-Liste der Segmente in der SELECT
-Klausel können Sie feststellen, welche Segmentfelder miteinander kompatibel sind.
Bei der Ressource ad_group
stehen mehr als 50 verfügbare Segmente zur Auswahl. Die selectable_with
-Liste für segments.hotel_check_in_date
enthält jedoch viel kleinere kompatible Segmente. Wenn Sie also das Feld segments.hotel_check_in_date
in die SELECT
-Klausel einfügen, begrenzen Sie die verfügbaren Segmente, die ausgewählt werden können, auf die Schnittmenge dieser beiden Listen.
- Beim Hinzufügen einiger Segmente können sich die Messwerte in der Zusammenfassungszeile verringern
- Wenn
segments.keyword.info.match_type
einer Abfrage mitFROM ad_group_ad
hinzugefügt wird, weist dieses Segment die Abfrage an, nur die Datenzeilen abzurufen, die Keywords enthalten, und entfernt alle Zeilen, die nicht mit einem Keyword verknüpft sind. In diesem Fall wären die Messwerte niedriger, da alle Messwerte, die sich nicht auf Keywords beziehen, ausgeschlossen werden.
Regeln für Segmente in der WHERE-Klausel
Wenn ein Segment in der WHERE
-Klausel enthalten ist, muss es auch in der SELECT
-Klausel enthalten sein. Ausgenommen von dieser Regel sind die folgenden Datumssegmente, die als Kerndatumssegmente bezeichnet werden:
segments.date
segments.week
segments.month
segments.quarter
segments.year
Regeln für wichtige Datumssegmente
Die Segmente segments.date
, segments.week
, segments.month
, segments.quarter
und segments.year
funktionieren so:
Diese Segmente können in der
WHERE
-Klausel gefiltert werden, ohne in derSELECT
-Klausel zu erscheinen.Wenn eines dieser Segmente in der
SELECT
-Klausel enthalten ist, muss in derWHERE
-Klausel ein endlicher Zeitraum aus wichtigen Datumssegmenten angegeben werden. Die Datumssegmente müssen nicht mit denen inSELECT
übereinstimmen.
Beispiele
Ungültig:Da sich segments.date in der SELECT -Klausel befindet, müssen Sie in der WHERE -Klausel für segments.date , segments.week , segments.month , segments.quarter oder segments.year einen endlichen Zeitraum angeben.
|
SELECT campaign.name, metrics.clicks, segments.date FROM campaign |
Gültig:Diese Abfrage gibt Kampagnennamen und Klicks zurück, die während des Zeitraums erzielt wurden. segments.date muss nicht in der SELECT -Klausel angegeben werden.
|
SELECT campaign.name, metrics.clicks FROM campaign WHERE segments.date > '2020-01-01' AND segments.date < '2020-02-01' |
Gültig:Diese Abfrage gibt nach Datum segmentierte Kampagnennamen und Klicks für alle Tage des Zeitraums zurück. |
SELECT campaign.name, metrics.clicks, segments.date FROM campaign WHERE segments.date > '2020-01-01' AND segments.date < '2020-02-01' |
Gültig:Diese Abfrage gibt Kampagnennamen und Klicks zurück, die nach Monat für alle Tage im Zeitraum segmentiert sind. |
SELECT campaign.name, metrics.clicks, segments.month FROM campaign WHERE segments.date > '2020-01-01' AND segments.date < '2020-02-01' |
Gültig: Diese Abfrage gibt für alle Monate im Jahresbereich Kampagnennamen und Klicks zurück, die nach Quartal und dann nach Monat segmentiert sind. |
SELECT campaign.name, metrics.clicks, segments.quarter, segments.month FROM campaign WHERE segments.year > 2015 AND segments.year < 2020 |
search_term_view
Für die Ressource search_term_view
ist sie außerdem implizit nach Anzeigengruppe und nicht nur nach einem Suchbegriff segmentiert, wie sich an der Struktur des Ressourcennamens ablesen lässt, der auch die Anzeigengruppe enthält. Daher kann es vorkommen, dass einige scheinbar doppelte Zeilen mit denselben Suchbegriffen in Ihren Ergebnissen erscheinen, obwohl die Zeilen zu einer anderen Anzeigengruppe gehören:
{
"results":[
{
"searchTermView":{
"resourceName":"customers/1234567890/searchTermViews/111111111~2222222222~Z29vZ2xlIHBob3RvcyBpb3M",
"searchTerm":"google photos"
},
"metrics":{
"impressions":"3"
},
"segments":{
"date":"2015-06-15"
}
},
{
"searchTermView":{
"resourceName":"customers/1234567890/searchTermViews/111111111~33333333333~Z29vZ2xlIHBob3RvcyBpb3M",
"searchTerm":"google photos"
},
"metrics":{
"impressions":"2"
},
"segments":{
"date":"2015-06-15"
}
}
]
}
Obwohl die beiden zurückgegebenen Objekte in diesem Beispiel Duplikate zu sein scheinen, sind ihre Ressourcennamen tatsächlich unterschiedlich, insbesondere im Bereich „Anzeigengruppe“. Das bedeutet, dass der Suchbegriff „google fotos“ den beiden Anzeigengruppen (ID 2222222222
und 33333333333
) am selben Datum (15.06.2015) zugeordnet ist.
Daraus können wir schließen, dass die API wie beabsichtigt funktioniert und in diesem Fall keine doppelten Objekte zurückgegeben hat.