为了处理包含大量行的结果集,Merchant Center 查询语言支持分页。reports.search
请求正文中有两个参数可用于控制分页:page_size
和 page_token
;响应正文中还有一个输出字段:next_page_token
。
page_size
参数用于指定在单个请求中检索的最大行数。如果未指定,系统会自动将其设置为页面大小上限(即 1, 000 行)。
page_token
参数指定要返回的页面的令牌。如果未指定,则返回第一页。如需检索后续页面,应将从上一次 reports.search
调用中收到的 next_page_token
值作为 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'
对于此查询,假设账号包含 10 万个 offer_ids
,并且 page_size
设置为 200。然后,结果集将在第一个响应中包含 200 个 ReportRow
对象,以及一个 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"
}