Merchant Center Query Language รองรับการแบ่งหน้าเพื่อจัดการชุดผลลัพธ์ที่มีจำนวนแถวมาก คุณใช้พารามิเตอร์ 2 รายการเพื่อ
ควบคุมการแบ่งหน้าในเนื้อหาของคำขอ reports.searchได้แก่
page_size และ page_token นอกเหนือจากช่องเอาต์พุต 1 รายการในเนื้อหาการตอบกลับซึ่งก็คือ
next_page_token
พารามิเตอร์ page_size จะระบุจำนวนแถวสูงสุดที่จะดึงข้อมูลในคำขอเดียว หากไม่ได้ระบุ ระบบจะตั้งค่าเป็นขนาดหน้าสูงสุดที่ 1, 000 แถวโดยอัตโนมัติ
พารามิเตอร์ 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'
สำหรับคําค้นหานี้ ให้สมมติว่าบัญชีมี offer_ids 100,000 รายการและตั้งค่า page_size เป็น 200 จากนั้นชุดผลลัพธ์จะมีออบเจ็กต์ ReportRow 200 รายการในการตอบกลับครั้งแรก พร้อมกับ next_page_token
หากต้องการดึงข้อมูล 200 แถวถัดไป ให้ส่งคำขออีกครั้งโดยใช้ขนาดหน้าเดิม
แต่อัปเดต page_token ของคำขอเป็น
next_page_token ของการตอบกลับครั้งก่อนหน้า
ตัวอย่างเนื้อหาการตอบกลับ (ผลลัพธ์ 5 รายการแรกบวก 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"
}