使用 GoogleAdsService 报告流式传输

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

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

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

虽然 Search 可以发送多个分页请求来下载整个报告,但 SearchStream 只发送一个请求,并与 Google Ads API 建立持久连接,无论报告大小如何。

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

通过消除请求 Search 响应的每个单独网页所需的往返网络时间,SearchStream 可以提供比分页更好的性能,尤其是在报告较大时。

示例

此示例查看的是包含 100,000 行的报告。下表详细列出了这两种方法在会计方面的差异。

SearchStream 搜索
页面大小 不适用 每页 10,000 行
API 请求数 1 个请求 10 个请求
API 响应数量 1 次连续播放 10 条回答

性能因素

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

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

  • 对于多页报告:SearchStream 通常更快,因为避免了多次往返,并且从磁盘缓存读取或写入的因素影响较小。

速率限制

这两种方法的每日限额均遵循 Google Cloud 项目的标准限额和访问权限级别。无论结果是分页还是流式传输,单个查询或报告都计为一次操作。