对结果进行分页

您可以分页浏览通过 GoogleAdsService.Search 检索到的结果,而无需一次下载整个结果集。如需大致了解如何使用 Google Ads API 生成报告,请参阅报告概览。

Search 返回最多包含 10,000 行的固定页面。在 SearchGoogleAdsRequest 中设置 page_size 已被弃用,并会返回 RequestError.PAGE_SIZE_NOT_SUPPORTED 错误。

查询和分页示例

请考虑以下查询:

SELECT
  ad_group.id,
  ad_group_criterion.type,
  ad_group_criterion.criterion_id,
  ad_group_criterion.keyword.text,
  ad_group_criterion.keyword.match_type
FROM ad_group_criterion
WHERE ad_group_criterion.type = KEYWORD

如果您的账号包含 50,000 个关键字,则结果集中会在第一个响应中包含 10,000 个 GoogleAdsRow 对象,以及一个 next_page_token。

如需检索接下来的 10,000 行,请再次发送请求,但将请求的 page_token 更新为响应的 next_page_token:

{
  "query": "SELECT ad_group.id, ad_group_criterion.type, ad_group_criterion.criterion_id, ad_group_criterion.keyword.text, ad_group_criterion.keyword.match_type FROM ad_group_criterion WHERE ad_group_criterion.type = KEYWORD",
  "pageToken": "CN3q9...example_token..."
}

请注意,在包含最后一批行的响应中,不会填充 next_page_token。

我们的客户端库会自动处理分页。您只需遍历响应的行即可。当当前页中的所有行都已返回时,客户端库会自动为您提取新的一页行,直到检索到整个数据集。如果使用 REST 而不是 gRPC,您必须明确为每个新网页发出请求。

缓存和网页令牌过期

Google Ads API 会在内部缓存数据集,以便后续网页请求比初始请求更快。请注意,next_page_token 值的存留时间 (TTL) 有限,如果在短时间内(大约两小时)未使用,就会过期。如果网页令牌过期,API 会返回错误,您必须开始新的查询。

后续请求中的查询必须保持完全相同,才能利用缓存的数据。后续的分页请求不会计入探索者访问权限和基本访问权限的每日操作配额。如果查询不同,但与同一网页令牌一起发送,则会返回错误。