检索对象

GoogleAdsService 是 Google Ads API 的统一对象检索和报告服务。该服务具有以下方法:

  • 检索对象的特定属性。
  • 根据日期范围检索对象的效果指标。
  • 根据对象的属性执行对象排序。
  • 使用条件指明要在响应中返回的对象。
  • 限制返回的对象数量。

GoogleAdsService 可以通过两种方式返回结果:

  • GoogleAdsService.SearchStream 会在单个流式响应中返回所有行,对于大型(超过 10,000 行)结果集,这种方式更高效。如果您的批量应用希望尽快下载尽可能多的数据,则此方法可能更适合。
  • GoogleAdsService.Search 会将较多的响应分为多个易于管理的结果页面。如果您的交互式应用一次显示一页结果,这种方式可能更合适。

详细了解分页与流式传输

发出请求

搜索方法需要 SearchGoogleAdsRequest,其中包含以下属性:

  • customer_id
  • Google Ads 查询语言 query,用于指示要查询的资源,要检索的属性、细分和指标,以及用于限制返回哪些对象的条件
  • (仅限 GoogleAdsService.Search)一个 page_size,用于在使用分页功能时指示单个响应中可返回的对象数量。
  • (仅限 GoogleAdsService.Search)可选的 page_token,用于在使用分页时检索下一批结果。

如需详细了解 Google Ads 查询语言,请参阅 Google Ads 查询语言指南

处理响应

GoogleAdsService 会返回 GoogleAdsRow 对象的列表。

每个 GoogleAdsRow 代表一个查询返回的对象,由一组根据 SELECT 子句中请求的字段填充的属性组成。系统不会在响应中的 GoogleAdsRow 对象上填充未包含在 SELECT 子句中的属性。

例如,虽然 ad_group_criterion 具有 status 属性,但在 SELECT 子句不包含 ad_group_criterion.status 的查询的响应中,不会填充该行的 ad_group_criterion 属性的 status 字段。同样,如果 SELECT 子句不包含来自 campaign 资源的任何字段,则不会填充该行的 campaign 属性。

每个 GoogleAdsRow 的属性和指标可能与同一结果集中的其他行不同;因此,应将这些行视为对象,而不是表格的固定行。

未知枚举类型

该 API 版本不完全支持返回类型为 UNKNOWN 的资源。这些资源可能已通过其他界面(例如 Google Ads 界面)创建。当资源的类型为 UNKNOWN 时,您可以选择指标,但无法通过 API 修改资源。例如,界面中推出了新广告系列或广告,但您所查询的 API 版本不支持。

请注意以下几点:

  • 类型为 UNKNOWN 的资源日后可能会受支持,也可能会永久保持 UNKNOWN 状态。
  • 类型为 UNKNOWN 的新对象随时都可能出现。由于枚举值已可用,因此这些对象向后兼容。随着这项变更的实施,我们会根据可用资源的发布情况,及时为您提供相关资源,以便您准确了解自己的账号。UNKNOWN 资源可能会出现,原因可能是您的账号中有通过其他接口进行的新活动,或者某个资源已不再受支持。
  • UNKNOWN 资源可以附加可查询的详细指标。
  • UNKNOWN 资源通常会在 Google Ads 界面中完全显示。
  • UNKNOWN 资源通常无法更改。

细分

对于包含以下各项的每种组合,响应均将包含一个 GoogleAdsRow

  • FROM 子句中指定的主要资源的实例
  • 每个选定的 segment 字段的值

例如,对于包含以下各项的每种组合,如果一个查询选择了 FROM campaign 并且 SELECT 子句中包含 segments.ad_network_typesegments.date,那么该查询的响应将包含一个 GoogleAdsRow 行:

  • campaign
  • segments.ad_network_type
  • segments.date

系统会按主要资源的每个实例(而不是各个选定字段的值)对结果进行隐式细分。例如,

SELECT campaign.status, metrics.impressions
FROM campaign
WHERE segments.date DURING LAST_14_DAYS

会按每个 campaign 输出一行结果,而不是 campaign.status 字段的每个不同的值输出一行结果。