Abfrageergebnisse paginieren

Zur Verarbeitung von Ergebnissätzen mit einer großen Anzahl von Zeilen unterstützt die Merchant Center Query Language die Paginierung. Zum Steuern der Paginierung im Anfragetext von reports.search stehen zwei Parameter zur Verfügung: page_size und page_token. Außerdem gibt es ein Ausgabefeld im Antworttext: next_page_token.

Der Parameter page_size gibt die maximale Anzahl der Zeilen an, die in einer einzelnen Anfrage abgerufen werden sollen. Wenn kein Wert angegeben ist, wird er automatisch auf die maximale Seitengröße von 1.000 Zeilen festgelegt.

Der Parameter page_token gibt das Token der zurückzugebenden Seite an. Wenn keine Angabe erfolgt, wird die erste Seite zurückgegeben. Um eine nachfolgende Seite abzurufen, muss der vom vorherigen reports.search-Aufruf als next_page_token empfangene Wert als page_token angegeben werden. Wenn ein page_token angegeben wird, sollten alle anderen Parameter im Aufruf mit dem vorherigen Aufruf übereinstimmen, der 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'

Nehmen wir für diese Abfrage an, dass das Konto 100.000 offer_ids enthält und page_size auf 200 gesetzt ist. Die Ergebnismenge enthält dann in der ersten Antwort 200 ReportRow-Objekte und einen next_page_token-Wert.

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

Hier ist ein Beispiel für einen Antworttext (die ersten fünf Ergebnisse plus 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"
}