在 Google Ads 界面中,细分是一个单独的菜单,您可以
只需向查询添加适当的字段即可。对于
例如,将 segments.device
添加到
则会生成一份报告,其中的每种设备和
FROM
子句中指定的资源,而
统计值(展示次数、点击次数、转化次数等)。
在 Google Ads 界面中,每次只能使用一个细分,并且 则可以在同一查询中指定多个细分。
SELECT
campaign.name,
campaign.status,
segments.device,
metrics.impressions
FROM campaign
将此查询发送到
GoogleAdsService.SearchStream
将类似于以下 JSON 字符串:
{
"results":[
{
"campaign":{
"resourceName":"customers/1234567890/campaigns/111111111",
"name":"Test campaign",
"status":"ENABLED"
},
"metrics":{
"impressions":"10922"
},
"segments":{
"device":"MOBILE"
}
},
{
"campaign":{
"resourceName":"customers/1234567890/campaigns/111111111",
"name":"Test campaign",
"status":"ENABLED"
},
"metrics":{
"impressions":"28297"
},
"segments":{
"device":"DESKTOP"
}
},
...
]
}
请注意,在上面的示例结果中,第一个和第二个 所有对象均相同。展示次数已细分 device,从而针对同一个广告系列返回两个或更多个对象。
隐式细分
每个报告最初都按 FROM
中指定的资源进行细分
子句。FROM
子句中资源的 resource_name 字段为
并且指标会按其细分,即使 resource_name 字段是
未明确包含在查询中。例如,当您指定
ad_group
作为 FROM
子句中的资源,则
ad_group.resource_name
将会
系统会自动返回指标,并且指标会在
广告组级。
对于这个查询
SELECT metrics.impressions
FROM ad_group
您会得到如下 JSON 字符串:
{
"results":[
{
"adGroup":{
"resourceName":"customers/1234567890/adGroups/2222222222"
},
"metrics":{
"impressions":"237"
}
},
{
"adGroup":{
"resourceName":"customers/1234567890/adGroups/33333333333"
},
"metrics":{
"impressions":"15"
}
},
{
"adGroup":{
"resourceName":"customers/1234567890/adGroups/44444444444"
},
"metrics":{
"impressions":"0"
}
}
]
}
请注意,系统始终会返回 adGroup
的 resource_name
字段,因为
在 FROM
子句中将 ad_group
指定为资源。
可选择的细分字段
对于 FROM
子句中的给定资源,并非所有细分字段都可供选择。
例如,我们将继续从 ad_group
中查询
资源。若要从 ad_group 资源中选择细分受众群字段,
该字段必须位于 ad_group 的 Segments
列表中。Segments
列表中是可用字段表的黄色部分,
ad_group
资源的元数据页面。
细分资源
从某些资源中进行选择时,您可以选择隐式联接
选择相关资源的字段以及
FROM
子句中使用的资源。您可以在
针对 FROM
子句的元数据中资源的 Attributed Resources
列表
页面。对于 ad_group
资源,您将看到
您还可以从 campaign
资源。任何 Attributed Resources
的 resource_name 字段,至少
系统会自动返回 SELECT
子句中的 1 个字段,即使
resource_name 字段未明确包含在查询中。
与选择 Attributed Resource
字段类似,您也可以选择
Segmenting Resource
字段。如果给定资源的 Segmenting Resources
列表,然后从列出的某个资源中选择字段
将导致系统按该资源的返回的 resource_name 进一步细分查询
Segmenting Resource
。例如,您会发现
campaign
资源被列为 Segmenting Resource
(针对 campaign_budget
资源)。选择任意值
(如 campaign.name
),
campaign_budget 资源不仅会导致 campaign.name 字段变成
但会导致
campaign.resource_name
字段
返回并细分的时间
可在细分和指标之间进行选择
某个细分字段可能与其他某些细分不兼容
字段或某些指标字段。为了确定
彼此兼容,您可以查看selectable_with
列表
是 SELECT
子句中细分的含义。
对于
ad_group
资源,那么有超过 50 个可用的细分受众群
供您选择。不过,selectable_with
列表
segments.hotel_check_in_date
与之兼容的细分受众群要少得多。也就是说,如果您将
segments.hotel_check_in_date
字段插入 SELECT
子句,您将限制
剩下要选的路段到两者的交集上
列表。
- 添加某些细分后,摘要行中的指标可能会降低
- 如果将
segments.keyword.info.match_type
添加到FROM ad_group_ad
时,该细分会指示查询只获取 包含关键字的数据,并删除任何 关键字。在这种情况下,这些指标会比较低,因为它会排除 非关键字指标
WHERE 子句中细分的规则
当细分包含在 WHERE
子句中时,它也必须位于 SELECT
子句中
子句。以下日期细分不受此规则限制:
称为“核心日期细分”:
segments.date
segments.week
segments.month
segments.quarter
segments.year
针对核心日期细分字段的规则
segments.date
、segments.week
、segments.month
、
segments.quarter
和 segments.year
函数如下所示:
可以在
WHERE
子句中过滤这些片段,而不显示 。SELECT
如果其中任何细分包含在
SELECT
子句中,则指定限定的日期范围 由核心日期细分组成的字符串必须在WHERE
子句中指定 (日期细分无需与SELECT
)。
示例
无效:由于 segments.date 为
SELECT 子句中,您需要在
segments.date 的 WHERE 子句,
segments.week 、segments.month 、
segments.quarter 或 segments.year 。
|
SELECT campaign.name, metrics.clicks, segments.date FROM campaign |
有效:此查询会返回广告系列名称和
在该日期范围内累积的点击次数。请注意,segments.date
不需要出现在 SELECT 子句中。
|
SELECT campaign.name, metrics.clicks FROM campaign WHERE segments.date > '2020-01-01' AND segments.date < '2020-02-01' |
有效:此查询会返回广告系列名称和 日期范围内所有日期按日期细分的点击次数。 |
SELECT campaign.name, metrics.clicks, segments.date FROM campaign WHERE segments.date > '2020-01-01' AND segments.date < '2020-02-01' |
有效:此查询会返回广告系列名称和 按月细分的日期范围内所有日期的点击次数。 |
SELECT campaign.name, metrics.clicks, segments.month FROM campaign WHERE segments.date > '2020-01-01' AND segments.date < '2020-02-01' |
有效:此查询会返回广告系列名称和 按季度和月份对年度范围内所有月份进行细分的点击次数。 |
SELECT campaign.name, metrics.clicks, segments.quarter, segments.month FROM campaign WHERE segments.year > 2015 AND segments.year < 2020 |
search_term_view
请注意,对于
search_term_view
资源,它也是
按照广告组(而不仅仅是搜索字词)隐式细分,如“
其资源结构的
名称,
广告组也包含在其中因此,您会看到一些看似重复的
与搜索结果中出现相同的搜索字词的行
那么这些行应该属于不同的广告组:
{
"results":[
{
"searchTermView":{
"resourceName":"customers/1234567890/searchTermViews/111111111~2222222222~Z29vZ2xlIHBob3RvcyBpb3M",
"searchTerm":"google photos"
},
"metrics":{
"impressions":"3"
},
"segments":{
"date":"2015-06-15"
}
},
{
"searchTermView":{
"resourceName":"customers/1234567890/searchTermViews/111111111~33333333333~Z29vZ2xlIHBob3RvcyBpb3M",
"searchTerm":"google photos"
},
"metrics":{
"impressions":"2"
},
"segments":{
"date":"2015-06-15"
}
}
]
}
尽管此示例中返回的两个对象似乎是重复的,
其资源名称实际上有所不同
部分。这意味着搜索字词“Google 相册”都会归因于
广告组(ID 为 2222222222
和 33333333333
)在同一天 (2015-06-15)。
因此,我们可以得出结论,该 API 按预期工作,并未返回
就会出现重复对象。