如需检索 Google Ads API 实体和报告数据,您可以使用以下方法之一:
以下是这两种方法的简要区别:
GoogleAdsService.SearchStream | GoogleAdsService.Search | |
---|---|---|
适用于生产代码 | 是 | 是 |
服务 | GoogleAdsService |
GoogleAdsService |
场景 | 提取对象和报告 | 提取对象和报告 |
响应 | GoogleAdsRow 对象的数据流 |
第 GoogleAdsRow 个对象页面 |
响应的字段 | 仅限在查询中指定的那些 | 仅限在查询中指定的那些 |
每日上限 | 基于访问权限级别的每日限制 | 基于访问权限级别的每日限制 |
SearchStream 与搜索
虽然 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
通常速度更快,因为这可以避免多次往返,并且从磁盘缓存中读取或写入的操作是一个较小的影响因素。
速率限制
这两种方法的每日限制均符合开发者令牌的标准限制和访问权限级别。无论结果是分页还是流式传输,一次查询或报告都计为一次操作。