对结果进行分页

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

例如,对于以下查询:

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

如果您的帐号包含 5 万个关键字,并且 page_size 设置为 1,000,则结果集将在第一个响应中包含 1,000 个 GoogleAdsRow 对象,以及一个 next_page_token

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

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

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

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