تقسيم نتائج طلب البحث على صفحات

لمعالجة مجموعات النتائج التي تحتوي على عدد كبير من الصفوف، تتيح لغة طلب البحث في Merchant Center إمكانية التقسيم على صفحات. تتوفّر معلمتان للتحكم في التقسيم على صفحات في نص الطلب reports.search: page_size وpage_token، بالإضافة إلى حقل إخراج واحد في نص الاستجابة: next_page_token.

تحدد المعلمة page_size الحد الأقصى لعدد الصفوف المراد استردادها في طلب واحد. وإذا لم يتم تحديده، يتم تعيينه تلقائيًا على الحد الأقصى لحجم الصفحة وهو 1000 صف.

تحدد المعلمة page_token الرمز المميز للصفحة المراد عرضها. وإذا لم يتم تحديد ذلك، فسيتم عرض الصفحة الأولى. لاسترداد صفحة لاحقة، يجب تقديم القيمة التي تم استلامها كـ next_page_token من استدعاء reports.search السابق كـ page_token. عند توفير page_token، يجب أن تتطابق جميع المعلَمات الأخرى في المكالمة مع المكالمة السابقة التي أدت إلى عرض الخطأ page_token لتجنُّب سلوك غير متوقَّع.

مثال:

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

بالنسبة إلى هذا الطلب، نفترض أنّ الحساب يحتوي على 100,000 offer_ids وأنّ page_size مضبوط على 200. ستحتوي مجموعة النتائج بعد ذلك على 200 عنصر ReportRow في الاستجابة الأولى، بالإضافة إلى next_page_token.

لاسترداد 200 صف تالٍ، أرسل الطلب مرة أخرى بنفس حجم الصفحة، ولكن حدّث page_token للطلب إلى الاستجابة السابقة next_page_token.

في ما يلي مثال لنص الاستجابة (النتائج الخمس الأولى بالإضافة إلى 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"
}