将查询结果分页

为了处理包含大量行的结果集,商家 Center Query Language 支持分页。有两个参数可用于 reports.search 请求中的控制分页 正文page_sizepage_token,以及响应中的一个输出字段 正文next_page_token

page_size 参数指定要在 单一请求。如果未指定,系统会自动将其设置为页面大小上限 共 1000 行。

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'

对于此查询,假设账号包含 100,000 个 offer_idspage_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"
}