Abfrageergebnisse paginieren

Um Ergebnissätze mit einer großen Anzahl von Zeilen zu verarbeiten, unterstützt die Merchant Center Query Language die Paginierung. Die Paginierung kann im reports.search-Anfragetext über zwei Parameter gesteuert werden: page_size und page_token. Außerdem gibt es ein Ausgabefeld im Antworttext: next_page_token.

Der Parameter page_size gibt die maximale Anzahl von Zeilen an, die in einer einzelnen Anfrage abgerufen werden sollen. Wenn Sie keine Angabe machen, wird automatisch die maximale Seitengröße von 1.000 Zeilen festgelegt.

Der Parameter page_token gibt das Token der Seite an, die zurückgegeben werden soll. Wenn keine Angabe gemacht wird, wird die erste Seite zurückgegeben. Wenn Sie eine nachfolgende Seite abrufen möchten, muss der Wert, der als next_page_token vom vorherigen reports.search-Aufruf empfangen wurde, als page_token angegeben werden. Wenn ein page_token angegeben wird, müssen alle anderen Parameter im Aufruf mit dem vorherigen Aufruf übereinstimmen, der den page_token zurückgegeben hat, um unerwartetes Verhalten zu vermeiden.

Beispiel:

SELECT
  segments.offer_id,
  metrics.impressions,
  metrics.clicks,
  metrics.ctr
FROM MerchantPerformanceView
WHERE segments.date BETWEEN '2021-12-01' AND '2021-12-31'

Angenommen, das Konto enthält 100.000 offer_ids und page_size ist auf 200 gesetzt. Die Ergebnismenge enthält dann 200 ReportRow-Objekte in der ersten Antwort sowie ein next_page_token.

Wenn Sie die nächsten 200 Zeilen abrufen möchten, senden Sie die Anfrage noch einmal mit derselben Seitengröße, aktualisieren Sie aber den Wert für page_token in der Anfrage auf den Wert für next_page_token in der vorherigen Antwort.

Hier ein Beispiel für einen Antworttext (die ersten fünf Ergebnisse sowie die next_page_token):

{
  "results": [
    {
      "segments": {
        "offerId": "12345"
      },
      "metrics": {
        "clicks": "0",
        "impressions": "59",
        "ctr": 0
      }
    },
    {
      "segments": {
        "offerId": "12346"
      },
      "metrics": {
        "clicks": "9625",
        "impressions": "276695",
        "ctr": 0.034785594246372356
      }
    },
    {
      "segments": {
        "offerId": "12347"
      },
      "metrics": {
        "clicks": "148",
        "impressions": "22045",
        "ctr": 0.0067135404853708325
      }
    },
    {
      "segments": {
        "offerId": "12348"
      },
      "metrics": {
        "clicks": "11",
        "impressions": "1100",
        "ctr": 0.01
      }
    },
    {
      "segments": {
        "offerId": "12349"
      },
      "metrics": {
        "clicks": "569",
        "impressions": "62977",
        "ctr": 0.0090350445400701838
      }
    },
    ...
  ],
  "nextPageToken": "CMgB"
}