Segmentierung

Die Segmentierung ist in der Google Ads-Benutzeroberfläche als separates Menü verfügbar. Sie können die Segmentierung in der Google Ads API implementieren, indem Sie einer Abfrage das entsprechende Feld hinzufügen. Angenommen, Sie fügen einer Abfrage segments.device hinzu. Das Ergebnis ist ein Bericht mit einer Zeile für jede Kombination aus Gerät und der angegebenen Ressource in der FROM-Klausel. Die statistischen Werte (Impressionen, Klicks, Conversions usw.) werden auf die einzelnen Kombinationen aufgeteilt.

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 Sie erhalten, wenn Sie diese Anfrage an GoogleAdsService.SearchStream senden, ähneln diesem JSON-String:

{
  "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"
      }
    },
    ...
  ]
}

In diesem Beispielergebnis sind die Attribute für das erste und zweite Objekt, einschließlich des Ressourcennamens, identisch. 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 zuerst 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 implizit auf Anzeigengruppenebene segmentiert.

Für diese Anfrage

SELECT metrics.impressions
FROM ad_group

Sie erhalten 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 ist.

Auswählbare Segmentfelder

Nicht alle Segmentfelder können für eine bestimmte Ressource in der FROM-Klausel ausgewählt werden. Angenommen, Sie führen weiterhin Abfragen für die Ressource ad_group aus. Damit ein Segmentfeld aus der ad_group-Ressource ausgewählt werden kann, muss es in der Segments-Liste für ad_group vorhanden sein. Die Liste Segments ist der gelbe Bereich der Tabelle mit den verfügbaren Feldern auf der Metadatenseite der ad_group-Ressource.

Segmentressourcen

Wenn Sie Felder aus bestimmten Ressourcen auswählen, haben Sie möglicherweise die Möglichkeit, implizit Joins für zugehörige Ressourcen auszuführen. Dazu wählen Sie deren Felder zusammen mit den Feldern der Ressource in der FROM-Klausel aus. Diese verknüpften Ressourcen finden Sie in der Liste Attributed Resources auf der Metadatenseite der Ressource in der FROM-Klausel. Bei der Ressource ad_group können Sie auch Felder aus der Ressource campaign auswählen. Das Feld resource_name eines 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 eine bestimmte Ressource auf ihrer Metadatenseite eine Segmenting Resources-Liste hat und Sie Felder aus einer der aufgeführten Ressourcen auswählen, wird die Abfrage anhand der zurückgegebenen resource_name dieser Segmenting Resource weiter segmentiert. Die Ressource campaign wird beispielsweise als Segmenting Resource für die Ressource campaign_budget aufgeführt. Wenn Sie ein beliebiges Kampagnenfeld wie campaign.name aus der campaign_budget-Ressource auswählen, wird nicht nur das Feld campaign.name zurückgegeben, sondern auch das Feld campaign.resource_name, das segmentiert wird.

Auswahlmöglichkeiten zwischen Segmenten und Messwerten

Ein bestimmtes Segmentfeld ist möglicherweise nicht mit einigen der anderen Segmentfelder oder mit einigen der Messwertfelder kompatibel. Um herauszufinden, welche Segmentfelder miteinander kompatibel sind, sehen Sie sich die selectable_with-Liste der Segmente in der SELECT-Klausel an.

Für die Ressource ad_group stehen mehr als 50 Segmente zur Auswahl. Die selectable_with-Liste für segments.hotel_check_in_date ist jedoch eine viel kleinere Gruppe kompatibler Segmente. Wenn Sie das Feld segments.hotel_check_in_date in die SELECT-Klausel einfügen, wird die Auswahl der verfügbaren Segmente auf die Überschneidung dieser beiden Listen beschränkt.

Implizites Filtern durch Segmentauswahl

Wenn Sie bestimmte Segmentfelder in Ihrer Abfrage auswählen, werden die Ergebnisse in der Google Ads API möglicherweise implizit so gefiltert, dass nur Zeilen mit einem Wert für das entsprechende Segment enthalten sind.

Auswirkungen von segments.keyword.*

Ein häufiges und wichtiges Beispiel für dieses Verhalten ist die Auswahl eines beliebigen Felds unter segments.keyword, z. B. segments.keyword.info.text und segments.keyword.ad_group_criterion.

  • Ausschluss von Zugriffen, die nicht über Keywords generiert werden:Wenn Sie ein segments.keyword.*Feld in Ihre SELECT-Klausel aufnehmen, werden die Ergebnisse auf Zeilen beschränkt, die direkt mit einem Anzeigengruppenkriterium für ein Keyword im Suchnetzwerk verknüpft sind.
  • Betroffene Kampagnentypen:Daten aus Kampagnentypen oder Anzeigengruppen, die nicht auf Such-Keywords basieren, werden daher aus den Ergebnissen ausgeschlossen. Dazu zählt unter anderem Folgendes:

    • Dynamische Suchanzeigen: Bei dynamischen Suchanzeigen basiert die Ausrichtung auf Websiteinhalten und nicht auf Keywords.
    • Shopping-Kampagnen:Hier werden Produktgruppen anstelle von Keywords verwendet.
    • Performance Max-Kampagnen:Anzeigen aus Performance Max-Kampagnen können zwar in der Suche ausgeliefert werden, die Berichte werden aber in der Regel nicht nach denselben Keyword-Kriterien segmentiert.
  • Displaynetzwerk:Die segments.keyword.*-Felder beziehen sich auf Keywords, die im Suchnetzwerk verwendet werden. Sie werden nicht nach Displaynetzwerk-Keywords oder anderen Display-Targeting-Methoden segmentiert.

Best Practice:Wenn Ihre Analyse Leistungsdaten aus dynamischen Suchanzeigen, Shopping-Kampagnen oder anderen Quellen, die nicht auf Such-Keywords basieren, enthalten muss, sollten Sie keine Felder aus segments.keyword.* in Ihre Abfrage aufnehmen. Analysieren Sie zuerst Daten für alle Kampagnentypen und wenden Sie die Keyword-Segmentierung nur an, wenn Sie sich auf die Leistung von Such-Keywords konzentrieren.

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 wichtige Datumssegmente bezeichnet werden:

  • segments.date
  • segments.week
  • segments.month
  • segments.quarter
  • segments.year

Regeln für Felder des Hauptdatensegments

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 der SELECT-Klausel zu erscheinen.

  • Wenn eines dieser Segmente in der SELECT-Klausel enthalten ist, muss in der WHERE-Klausel ein endlicher Zeitraum angegeben werden, der aus Kern-Datumssegmenten besteht. Die Datumssegmente müssen nicht mit den in SELECT angegebenen Segmenten übereinstimmen.

Beispiele

Ungültig:Da segments.date in der SELECT-Klausel enthalten ist, 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 > '2024-01-01'
  AND segments.date < '2024-02-01'
Gültig:Diese Abfrage gibt Kampagnennamen und Klicks zurück, die nach Datum für alle Tage im Datumsbereich segmentiert sind.
SELECT
  campaign.name,
  metrics.clicks,
  segments.date
FROM campaign
WHERE segments.date > '2024-01-01'
  AND segments.date < '2024-02-01'
Gültig:Mit dieser Abfrage werden Kampagnennamen und Klicks nach Monat segmentiert für alle Tage im Zeitraum zurückgegeben.
SELECT
  campaign.name,
  metrics.clicks,
  segments.month
FROM campaign
WHERE segments.date > '2024-01-01'
  AND segments.date < '2024-02-01'
Gültig:Diese Abfrage gibt Kampagnennamen und Klicks zurück, die nach Quartal und dann nach Monat für alle Monate im Jahresbereich segmentiert sind.
SELECT
  campaign.name,
  metrics.clicks,
  segments.quarter,
  segments.month
FROM campaign
WHERE segments.year > 2019
  AND segments.year < 2024

search_term_view

Die search_term_view-Ressource wird auch implizit nach Anzeigengruppe segmentiert, nicht nur nach Suchbegriff. Das spiegelt sich in der Struktur des Ressourcennamens wider, der auch die Anzeigengruppe enthält. Daher erhalten Sie möglicherweise scheinbar doppelte Zeilen mit denselben Suchbegriffen in Ihren Ergebnissen. Diese Zeilen gehören jedoch zu einer anderen Anzeigengruppe.

{
  "results":[
    {
      "searchTermView":{
        "resourceName":"customers/1234567890/searchTermViews/111111111~2222222222~Z29vZ2xlIHBob3RvcyBpb3M",
        "searchTerm":"google photos"
      },
      "metrics":{
        "impressions":"3"
      },
      "segments":{
        "date":"2024-06-15"
      }
    },
    {
      "searchTermView":{
        "resourceName":"customers/1234567890/searchTermViews/111111111~33333333333~Z29vZ2xlIHBob3RvcyBpb3M",
        "searchTerm":"google photos"
      },
      "metrics":{
        "impressions":"2"
      },
      "segments":{
        "date":"2024-06-15"
      }
    }
  ]
}

Obwohl die beiden zurückgegebenen Objekte in diesem Beispiel Duplikate zu sein scheinen, unterscheiden sich ihre Ressourcennamen, insbesondere im Teil „Anzeigengruppe“. Das bedeutet, dass der Suchbegriff „Google Fotos“ am selben Datum (15.06.2024) den beiden Anzeigengruppen (ID 2222222222 und 33333333333) zugeordnet wird. Wir können also davon ausgehen, dass die API wie vorgesehen funktioniert hat und in diesem Fall keine doppelten Objekte zurückgegeben hat.