使用 GoogleAdsService 报告流式传输

要获取 Google Ads API 实体和报告数据,您可以使用以下方法之一:

以下是这两种方法的大致区别:

GoogleAdsService.SearchStream GoogleAdsService.Search
适用于正式版代码
服务 GoogleAdsService GoogleAdsService
场景 提取对象和报表 提取对象和报表
响应 GoogleAdsRow 对象的 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 通常速度更快,因为这样可以避免多次往返,并且从磁盘缓存中读取数据或向其中写入数据并不是那么重要。

速率限制

这两种方法的每日上限都遵循开发者令牌的标准上限和访问权限级别。无论结果是分页还是流式显示,一个查询或报告都计为一次操作。