使用 GoogleAdsService 报告流式传输

如需检索 Google Ads API 实体和报告数据,您可以使用以下方法之一:

以下是这两种方法的简要区别:

GoogleAdsService.SearchStream GoogleAdsService.Search
适用于生产代码
服务 GoogleAdsService GoogleAdsService
场景 提取对象和报告 提取对象和报告
响应 GoogleAdsRow 对象的数据流 GoogleAdsRow 个对象页面
响应的字段 仅限在查询中指定的那些 仅限在查询中指定的那些
每日上限 基于访问权限级别的每日限制 基于访问权限级别的每日限制

虽然 Search 可以发送多个分页请求来下载整个报告,但 SearchStream 只会发送单个请求,并启动与 Google Ads API 的永久连接,无论报告大小如何。

对于 SearchStream,数据包会立即开始下载,并将整个结果缓存在数据缓冲区中。您的代码可以开始读取已缓冲的数据,而无需等待整个数据流完成。

SearchStream 可以避免请求 Search 响应的每个单独页面所需的往返网络时间(具体取决于您的应用),因此与分页相比,SearchStream 的性能更高,对较大的报告而言尤其如此。

示例

例如,以包含 100,000 行的报告为例。下表对这两种方法的统计差异进行了详细说明。

SearchStream 搜索
页面大小 不适用 每页 10,000 行
API 请求数 1 个请求 10 个请求
API 响应数量 1 个连续的数据流 10 个回复

性能因素

对于大多数用例,我们建议使用 SearchStream 而不是 Search,原因如下:

  • 对于单页报告(少于 10,000 行):这两种方法的性能没有显著差异。

  • 对于多页面报告:SearchStream 通常速度更快,因为这可以避免多次往返,并且从磁盘缓存中读取或写入的操作是一个较小的影响因素。

速率限制

这两种方法的每日限制均符合开发者令牌的标准限制和访问权限级别。无论结果是分页还是流式传输,一次查询或报告都计为一次操作。