Dziel wyniki zapytania na strony

W celu obsługi zbiorów wyników zawierających dużą liczbę wierszy, język zapytań Merchant Center obsługuje podział na strony. W treści żądania reports.search dostępne są 2 parametry do kontrolowania podziału na strony: page_size i page_token, a także 1 pole z danymi wyjściowymi w treści odpowiedzi: next_page_token.

Parametr page_size określa maksymalną liczbę wierszy do pobrania w jednym żądaniu. Jeśli go nie podasz, zostanie on automatycznie ustawiony na maksymalny rozmiar strony wynoszący 1000 wierszy.

Parametr page_token określa token strony do zwrócenia. Jeśli wartość nie zostanie określona, zwracana jest pierwsza strona. Aby pobrać kolejną stronę, wartość otrzymana jako next_page_token z poprzedniego wywołania reports.search należy podać jako page_token. Jeśli podasz page_token, wszystkie pozostałe parametry w wywołaniu powinny być zgodne z poprzednim wywołaniem, które zwróciło parametr page_token. Pozwoli to uniknąć nieoczekiwanego zachowania.

Przykład:

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

W przypadku tego zapytania załóżmy, że konto zawiera 100 000 elementów offer_ids,a pole page_size ma wartość 200. Zbiór wyników będzie zawierał w pierwszej odpowiedzi 200 obiektów ReportRow wraz z obiektem next_page_token.

Aby pobrać następne 200 wierszy, wyślij żądanie jeszcze raz z tym samym rozmiarem strony, ale zmień page_token żądania na next_page_token poprzedniej odpowiedzi.

Oto przykład treści odpowiedzi (5 pierwszych wyników 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"
}