Segmentierung

Die Segmentierung ist in der Google Ads-Benutzeroberfläche als separates Menü verfügbar. in der Google Ads API implementiert werden, indem Sie einfach das entsprechende Feld zu einer Abfrage hinzufügen. Für Beispiel: Das Hinzufügen von segments.device zu einem wird ein Bericht mit einer Zeile für jede Kombination aus Gerät und angegebene Ressource in der FROM-Klausel statistische Werte (Impressionen, Klicks, Conversions usw.) zwischen ihnen aufgeteilt werden.

In der Google Ads-Benutzeroberfläche kann jeweils nur ein Segment verwendet werden. können Sie mehrere Segmente in derselben Abfrage angeben.

SELECT
  campaign.name,
  campaign.status,
  segments.device,
  metrics.impressions
FROM campaign

Die Ergebnisse 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 Attribute für das erste und das zweite -Objekte, einschließlich des Ressourcennamens, identisch sind. Die Impressionen sind segmentiert. nach device. Somit können zwei oder mehr Objekte für dieselbe Kampagne zurückgegeben werden.

Implizite Segmentierung

Jeder Bericht ist anfangs nach der Ressource segmentiert, die in den FROM angegeben ist. Klausel. Das Feld "resource_name" der Ressource in der FROM-Klausel ist zurückgegeben und die Messwerte werden danach segmentiert, auch wenn das Feld "resource_name" nicht explizit in der Abfrage enthalten. Wenn Sie beispielsweise ad_group als Ressource in der FROM-Klausel, dann Aktionen für ad_group.resource_name automatisch zurückgegeben und die Messwerte werden implizit am Anzeigengruppenebene.

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"
      }
    }
  ]
}

Das Feld resource_name von adGroup wird immer zurückgegeben, weil ad_group wurde in der FROM-Klausel als Ressource angegeben.

Auswählbare Segmentfelder

In der FROM-Klausel können nicht alle Segmentfelder für eine bestimmte Ressource ausgewählt werden. Die Abfrage wird weiter aus ad_group ausgeführt. . Damit ein Segmentfeld über die Ressource "ad_group" auswählbar ist, Dieses Feld muss in der Liste „Segments“ für „ad_group“ enthalten sein. Das Segments Liste ist der gelbe Teil der Tabelle mit den verfügbaren Feldern auf der Seite Metadatenseite der Ressource ad_group.

Ressourcen segmentieren

Bei der Auswahl aus einigen Ressourcen können Sie möglicherweise implizit Joins verwenden, zu verwandten Ressourcen aufrufen, indem Sie deren Felder neben den Feldern der Ressource in der FROM-Klausel. Weitere Informationen zu diesem Thema finden Sie in der Liste Attributed Resources für die Ressource in den Metadaten der FROM-Klausel Seite. Bei der Ressource ad_group sehen Sie Folgendes: Sie können auch Felder aus der campaign auswählen . Das Feld „resource_name“ eines beliebigen Attributed Resources-Objekts mit mindestens 1 Feld in der SELECT-Klausel wird automatisch zurückgegeben, auch wenn die Das Feld "resource_name" ist nicht explizit in der Abfrage enthalten.

Ähnlich wie bei der Auswahl von Attributed Resource-Feldern können Sie auch Segmenting Resource-Feldern. Wenn eine bestimmte Ressource eine Segmenting Resources hat Liste auf der Metadatenseite und wählen dann Felder aus einer der aufgeführten Ressourcen aus wird die Abfrage weiter nach dem zurückgegebenen "resource_name" dieser Segmenting Resource. Sie werden feststellen, Ressource campaign ist als Segmenting Resource aufgeführt für die campaign_budget-Ressource. Beliebige Auswahl wie campaign.name aus der Die Ressource „campaign_budget“ führt nicht nur dazu, dass das Feld „campaign.name“ ein zurückgegeben, führt aber dazu, dass campaign.resource_name in zurückgegeben und nach dem Segment segmentiert wird.

Auswahl zwischen Segmenten und Messwerten

Ein bestimmtes Segmentfeld ist möglicherweise nicht mit einem anderen Segment kompatibel. oder einige der Messwertfelder. Um zu ermitteln, welche Segmentfelder kompatibel sind, finden Sie in der selectable_with-Liste der Segmente in der SELECT-Klausel.

Im Fall des ad_group-Ressource gibt es mehr als 50 verfügbare Segmente, die Sie auswählen können. Die selectable_with-Liste für segments.hotel_check_in_date ist eine viel kleinere Gruppe kompatibler Segmente. Das heißt, wenn Sie den segments.hotel_check_in_date in die SELECT-Klausel einfügen, begrenzen Sie die verfügbaren Segmente zur Schnittmenge, die Sie noch auswählen können, bis zur Schnittmenge dieser beiden Segmente Listen.

Beim Hinzufügen einiger Segmente können sich die Messwerte in der Zusammenfassungszeile verringern
Wenn segments.keyword.info.match_type einer Abfrage mit FROM ad_group_ad, weist dieses Segment die Abfrage an, nur die Zeilen die Keywords enthalten, und entfernen Sie alle Zeilen, die nicht mit einer Keyword. In diesem Fall wären die Messwerte niedriger, da nicht auf Keywords bezogene Messwerte.

Regeln für Segmente in der WHERE-Klausel

Wenn ein Segment in der WHERE-Klausel enthalten ist, muss es auch in der SELECT-Anweisung enthalten sein Klausel. Ausgenommen von dieser Regel sind die folgenden Datumssegmente, die werden als zentrale Datumssegmente bezeichnet:

  • 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 dass sie zu sehen sind. in der SELECT-Klausel.

  • Wenn eines dieser Segmente in der SELECT-Klausel enthalten ist, ist ein endlicher Zeitraum aus Kerndatensegmenten muss in der WHERE-Klausel angegeben werden Die Datumssegmente müssen nicht identisch mit denen sein, die im Feld SELECT.

Beispiele

Ungültig: Da segments.date gleich müssen Sie in der SELECT-Klausel einen endlichen Zeitraum in WHERE-Klausel für segments.date, segments.week, segments.month segments.quarter oder segments.year.
SELECT
  campaign.name,
  metrics.clicks,
  segments.date
FROM campaign
Gültig: Diese Abfrage gibt Kampagnennamen und Klicks, die im Zeitraum erzielt wurden Hinweis: 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: Diese Abfrage gibt Kampagnennamen und Klicks nach Datum segmentiert für alle Tage im Zeitraum
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, 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 Kampagnennamen und Klicks nach Quartal und dann nach Monat für alle Monate im Jahresbereich segmentiert.
SELECT
  campaign.name,
  metrics.clicks,
  segments.quarter,
  segments.month
FROM campaign
WHERE segments.year > 2015
  AND segments.year < 2020

search_term_view

Für das Feld search_term_view-Ressource enthält, ist es auch implizit nach Anzeigengruppe segmentiert ist und nicht nur nach einem Suchbegriff, wie aus den Struktur seiner Ressource Name die auch die Anzeigengruppe enthält. Daher erhalten Sie einige scheinbar Duplikate mit denselben Suchbegriffen in Ihren Ergebnissen, würden 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, Die Ressourcennamen unterscheiden sich, insbesondere in der Anzeigengruppe Das bedeutet, dass der Suchbegriff „Google Fotos“ wird den beiden Anzeigengruppen (ID 2222222222 und 33333333333) für dasselbe Datum (15.06.2015). Daraus können wir schließen, dass die API wie beabsichtigt funktioniert und nicht in diesem Fall doppelte Objekte.