Die Segmentierung, die in der Google Ads-Benutzeroberfläche als separates Menü verfügbar ist, kann in der Google Ads API implementiert werden, indem Sie einer Suchanfrage einfach das richtige Feld hinzufügen. Wenn Sie einer Abfrage beispielsweise segments.device
hinzufügen, enthält der Bericht eine Zeile für jede Kombination aus Gerät und der in der FROM
-Klausel angegebenen Ressource. Die statistischen Werte (Impressionen, Klicks, Conversions usw.) werden auf diese Zeilen verteilt.
In der Google Ads-Benutzeroberfläche kann jeweils nur ein Segment verwendet werden. Mit der API können Sie jedoch mehrere Segmente in derselben Abfrage angeben.
SELECT
campaign.name,
campaign.status,
segments.device,
metrics.impressions
FROM campaign
Die Ergebnisse, die durch Senden dieser Abfrage an GoogleAdsService.SearchStream
zurückgegeben werden, sehen 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 Gerät segmentiert. Daher können für dieselbe Kampagne zwei oder mehr Objekte zurückgegeben werden.
Implizite Segmentierung
Jeder Bericht wird anfangs nach der in der FROM
-Klausel angegebenen Ressource segmentiert. Das Feld „resource_name“ der Ressource in der FROM
-Klausel wird zurückgegeben und Messwerte werden danach segmentiert, auch wenn das Feld „resource_name“ nicht explizit in der Abfrage enthalten ist. Wenn Sie beispielsweise ad_group
als Ressource in der FROM
-Klausel angeben, wird ad_group.resource_name
automatisch zurückgegeben und Messwerte werden auf Ebene der Anzeigengruppe implizit danach segmentiert.
Bei dieser Abfrage
SELECT metrics.impressions
FROM ad_group
Sie erhalten dann 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"
}
}
]
}
Das Feld resource_name
von adGroup
wird immer zurückgegeben, da ad_group
in der FROM
-Klausel als Ressource angegeben wurde.
Auswählbare Segmentfelder
Nicht alle Segmentfelder können für eine bestimmte Ressource in der FROM
-Klausel ausgewählt werden.
Als Beispiel führen wir weiterhin Abfragen von der Ressource ad_group
aus. Damit ein Segmentfeld in der Ressource „ad_group“ ausgewählt werden kann, 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
.
Segmentressourcen
Wenn Sie Daten aus einigen Ressourcen auswählen, haben Sie möglicherweise die Möglichkeit, eine implizite Verbindung zu verknüpften Ressourcen herzustellen, indem Sie deren Felder zusammen mit den Feldern der Ressource in der FROM
-Klausel auswählen. Diese verknüpften Ressourcen finden Sie in der Liste Attributed Resources
der Ressource auf der Metadatenseite der FROM
-Klausel. Bei der Ressource ad_group
können Sie auch Felder aus der Ressource campaign
auswählen. Das Feld „resource_name“ aller 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 Attributed Resource
-Feldern können Sie auch Segmenting Resource
-Felder auswählen. Wenn eine bestimmte Ressource auf der Metadatenseite eine Segmenting Resources
-Liste hat, wird die Abfrage durch Auswählen von Feldern aus einer der aufgeführten Ressourcen weiter nach dem zurückgegebenen resource_name dieser Segmenting Resource
segmentiert. Beispiel: Die Ressource campaign
ist als Segmenting Resource
für die Ressource campaign_budget
aufgeführt. Wenn Sie ein beliebiges Kampagnenfeld wie campaign.name
aus der Kampagnenbudget-Ressource auswählen, wird nicht nur das Feld „campaign.name“ zurückgegeben, sondern auch das Feld campaign.resource_name
, nach dem segmentiert wird.
Auswahl zwischen Segmenten und Messwerten
Ein bestimmtes Segmentfeld ist möglicherweise nicht mit einigen anderen Segmentfeldern oder einigen Messwertfeldern kompatibel. Welche Segmentfelder miteinander kompatibel sind, sehen Sie in der selectable_with
-Liste der Segmente in der SELECT
-Klausel.
Bei der Ressource ad_group
stehen über 50 Segmente zur Auswahl. Die selectable_with
-Liste für segments.hotel_check_in_date
enthält jedoch eine viel kleinere Anzahl kompatibler Segmente. Wenn Sie also das Feld segments.hotel_check_in_date
in die Klausel SELECT
einfügen, werden die verfügbaren Segmente, die Sie auswählen können, auf die Schnittmenge dieser beiden Listen beschränkt.
- Wenn Sie einige Segmente hinzufügen, sinken die Messwerte in der Zusammenfassungszeile möglicherweise.
- Wenn einer Abfrage mit
FROM ad_group_ad
segments.keyword.info.match_type
hinzugefügt wird, gibt dieses Segment an, dass nur die Zeilen mit Keywords abgerufen und alle Zeilen entfernt werden sollen, die keinem Keyword zugeordnet sind. In diesem Fall wären die Messwerte niedriger, da alle Messwerte ausgeschlossen würden, die nicht zu Keywords gehören.
Regeln für Segmente in der WHERE-Klausel
Wenn sich ein Segment in der WHERE
-Klausel befindet, muss es auch in der SELECT
-Klausel enthalten sein. Die folgenden Datumssegmente sind davon ausgenommen. Sie werden als Kerndatumssegmente bezeichnet:
segments.date
segments.week
segments.month
segments.quarter
segments.year
Regeln für Felder des Kerndatumssegments
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 begrenzter Zeitraum aus Kerndatumssegmenten angegeben werden. Die Datumssegmente müssen nicht mit den inSELECT
angegebenen Segmenten übereinstimmen.
Beispiele
Ungültig:Da sich segments.date in der SELECT -Klausel befindet, müssen Sie in der WHERE -Klausel einen endlichen Zeitraum für segments.date , segments.week , segments.month , segments.quarter oder segments.year angeben.
|
SELECT campaign.name, metrics.clicks, segments.date FROM campaign |
Gültig:Diese Abfrage gibt Kampagnennamen und Klicks zurück, die im angegebenen Zeitraum erzielt wurden. segments.date muss nicht in der SELECT -Klausel enthalten sein.
|
SELECT campaign.name, metrics.clicks FROM campaign WHERE segments.date > '2020-01-01' AND segments.date < '2020-02-01' |
Gültig:Mit dieser Abfrage werden Kampagnennamen und Klicks nach Datum für alle Tage im angegebenen Zeitraum zurückgegeben. |
SELECT campaign.name, metrics.clicks, segments.date FROM campaign WHERE segments.date > '2020-01-01' AND segments.date < '2020-02-01' |
Gültig:Mit dieser Abfrage werden Kampagnennamen und Klicks nach Monat für alle Tage im angegebenen Zeitraum zurückgegeben. |
SELECT campaign.name, metrics.clicks, segments.month FROM campaign WHERE segments.date > '2020-01-01' AND segments.date < '2020-02-01' |
Gültig:Mit dieser Abfrage werden Kampagnennamen und Klicks nach Quartal und dann nach Monat für alle Monate im Jahreszeitraum segmentiert zurückgegeben. |
SELECT campaign.name, metrics.clicks, segments.quarter, segments.month FROM campaign WHERE segments.year > 2015 AND segments.year < 2020 |
search_term_view
Die Ressource search_term_view
wird außerdem implizit nach Anzeigengruppe und nicht nur nach Suchbegriff segmentiert. Das geht aus der Struktur des Ressourcennamens hervor, der auch die Anzeigengruppe enthält. Daher sehen Sie in den Ergebnissen möglicherweise Zeilen, die scheinbar doppelt sind, weil sie dieselben Suchbegriffe enthalten, in Wirklichkeit aber 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"
}
}
]
}
Die beiden zurückgegebenen Objekte in diesem Beispiel scheinen zwar Duplikate zu sein, ihre Ressourcennamen unterscheiden sich jedoch, 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 wird.
Wir können daher schließen, dass die API wie vorgesehen funktioniert hat und in diesem Fall keine doppelten Objekte zurückgegeben wurden.