对结果进行分页

GoogleAdsService.Search 通过在请求中指定 page_size 来支持分页。这会将查询的结果集拆分为多个响应,每个响应最多可包含 page_size 个对象。如果未指定 page_size,则系统会自动将其设置为 10,000 行的最大值。

例如,对于以下查询:

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 个关键字且 page_size 设置为 1,000,则结果集将在第一个响应中包含 1,000 个 GoogleAdsRow 对象,以及一个 next_page_token

如需检索接下来的 1000 行,请以相同的页面大小再次发送请求,但需要将请求的 page_token 更新为响应的 next_page_token。在后续请求中,page_size 的值每次都可能不同。请注意,在包含最后一批行的响应中不会填充 next_page_token

我们的客户端库会自动处理分页。您只需遍历响应的行即可。返回当前页面中的所有行后,客户端库会自动代表您提取新的行页面,直到检索到整个数据集为止。如果使用 REST 取代 gRPC,那么您必须对每个新的页面明确地发出请求。

Google Ads API 在内部缓存整个数据集,因此后续请求的速度会比初始请求快。根据您的用例,您可以将 page_size 设置为 1 到 10,000 之间的任何值。一般来说,为了加快整体性能,请使用较大的 page_size 以减少往返次数。

您的查询必须在后续请求中完全保持不变,才能利用缓存的数据;这些请求不会对您的配额产生影响,对于基本访问权限而言,尤其如此。如果查询不同且与同一页面令牌一起发送,则会返回错误。