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 segments.deviceeiner Abfrage hinzu. Das Ergebnis ist ein Bericht mit einer 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 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 Abfrage an GoogleAdsService.SearchStream senden, 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"
      }
    },
    ...
  ]
}

In diesem Beispielergebnis sind die Attribute für das erste und zweite Objekt, einschließlich des Ressourcennamens, identisch. Die Impressionen sind nach Gerät segmentiert. Daher können für dieselbe Kampagne zwei oder mehr Objekte zurückgegeben werden.

Implizite Segmentierung

Jeder Bericht wird zunächst 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 als Ressource in der FROM Klausel angeben, wird ad_group.resource_name automatisch zurückgegeben und die Messwerte werden implizit auf Anzeigengruppenebene danach 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"
      }
    }
  ]
}

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 ad_group Ressource aus. Damit ein Segmentfeld aus 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 Ressource ad_group Metadatenseite.

Segmentressourcen

Wenn Sie aus bestimmten Ressourcen auswählen, haben Sie möglicherweise die Möglichkeit, implizit mit verknüpften Ressourcen zu verknüpfen, 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 auf der Metadatenseite der Ressource in der FROM-Klausel. Im Fall der ad_group Ressource sehen Sie, dass Sie auch Felder aus der campaign Ressource auswählen können. 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 der Auswahl von Feldern für Attributed Resource können Sie auch Felder für Segmenting Resource auswählen. Wenn eine bestimmte Ressource auf ihrer Metadatenseite eine Segmenting Resources Liste hat, wird die Abfrage weiter nach dem zurückgegebenen resource_name dieser Segmenting Resource segmentiert, wenn Sie Felder aus einer dieser aufgeführten Ressourcen auswählen. Beispielsweise ist die campaign Ressource als Segmenting Resource für die campaign_budget Ressource 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 zurückgegeben und die Ergebnisse werden danach segmentiert.

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 Liste selectable_with 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 enthält jedoch eine viel kleinere Anzahl kompatibler Segmente. Wenn Sie das Feld segments.hotel_check_in_date in die SELECT-Klausel aufnehmen, beschränken Sie die verfügbaren Segmente, die Sie auswählen können, auf die Schnittmenge dieser beiden Listen.

Implizites Filtern nach Segmentauswahl

Wenn Sie bestimmte Segmentfelder in Ihrer Abfrage auswählen, filtert die Google Ads API die Ergebnisse möglicherweise implizit, sodass nur Zeilen berücksichtigt werden, in denen dieses Segment anwendbar ist und einen Wert hat.

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 Traffic ohne Keywords:Wenn Sie ein beliebiges Feld segments.keyword.* 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:Folglich werden Daten aus Kampagnentypen oder Anzeigengruppen, die nicht auf Such-Keywords basieren, aus den Ergebnissen ausgeschlossen. Dazu zählt unter anderem Folgendes:

    • Dynamische Suchanzeigen (DSA) : DSA-Ziele basieren auf Websiteinhalten und nicht auf Keywords.
    • Shopping-Kampagnen:Hier werden Produktgruppen anstelle von Keywords verwendet.
    • Performance Max-Kampagnen:Performance Max-Kampagnen können zwar im Suchnetzwerk ausgeliefert werden, die Berichte werden jedoch in der Regel nicht nach denselben Keyword-Kriterien segmentiert.
  • Displaynetzwerk:Die Felder segments.keyword.* beziehen sich auf Keywords, die im Suchnetzwerk verwendet werden. Sie segmentieren nicht nach Keywords im Displaynetzwerk oder anderen Targeting-Methoden für Displayanzeigen.

Best Practice:Wenn Ihre Analyse Leistungsdaten aus DSA, Shopping-Kampagnen oder anderen Quellen ohne Such-Keywords enthalten soll, nehmen Sie keine Felder aus segments.keyword.* in Ihre Abfrage auf. Analysieren Sie zuerst Daten für alle Kampagnentypen und wenden Sie die Keyword-Segmentierung nur an, wenn Sie sich auf die Leistung von Keywords für Suchanzeigen 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. Eine Ausnahme von dieser Regel bilden die folgenden Datumssegmente, die als Kern-Datumssegmente bezeichnet werden:

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

Regeln für Felder für Kern-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 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 denen übereinstimmen, die in der SELECT-Klausel angegeben sind.

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 Zeitraum angefallen sind. Beachten Sie, dass segments.date nicht in der SELECT-Klausel enthalten sein muss.
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 Zeitraum 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: 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 > '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 Zeitraum 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 von ihrem Ressourcennamen wider, der auch die Anzeigengruppe enthält. Daher erhalten Sie möglicherweise scheinbar doppelte Zeilen mit denselben Suchbegriffen in den 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 wie Duplikate aussehen, unterscheiden sich ihre Ressourcennamen tatsächlich, insbesondere im Teil „Anzeigengruppe“. Das bedeutet, dass der Suchbegriff „google photos“ am selben Datum (2024-06-15) den beiden Anzeigengruppen (ID 2222222222 und 33333333333) zugeordnet ist. Daraus lässt sich schließen, dass die API wie vorgesehen funktioniert hat und in diesem Fall keine doppelten Objekte zurückgegeben hat.