如果您的酒店、民宿或旅游体验产品 Feed 已与 Google Ads 账号相关联,Google Ads 会自动从您的 Feed 中提取价格和图片,以丰富现有的搜索广告系列。此功能称为 搜索广告中的旅游 Feed。
客户设置和广告系列设置的互动方式
默认情况下,广告系列会通过 CustomerAssetSet
关联从
客户级继承旅游 Feed 关联(TRAVEL_FEED 素材资源集)。如需替换特定广告系列的客户级设置,您
必须将 TRAVEL_FEED 添加到广告系列的
excluded_parent_asset_set_types 字段,并使用 CampaignAssetSet 管理广告系列专属的关联。
- 继承客户 Feed(默认): 保持客户级
CustomerAssetSet处于关联状态,并确保Campaign.excluded_parent_asset_set_types不包含TRAVEL_FEED。 - 在客户级选择停用: 移除客户级
CustomerAssetSet关联,并且不关联广告系列级CampaignAssetSet。 - 选择停用特定广告系列: 将
TRAVEL_FEED添加到Campaign.excluded_parent_asset_set_types,并移除所有广告系列级CampaignAssetSet关联。 - 仅选择启用特定广告系列: 移除客户级
CustomerAssetSet关联,然后为该广告系列创建广告系列级CampaignAssetSet关联。 - 使用广告系列专属 Feed,同时其他广告系列继续继承: 将
TRAVEL_FEED添加到广告系列的Campaign.excluded_parent_asset_set_types,并为其创建广告系列级CampaignAssetSet关联。
选择停用搜索广告中的旅游 Feed
如果您不想使用此功能,可以使用 Google Ads API 在客户级和广告系列级选择停用搜索广告中的旅游 Feed。
在客户级选择停用
如需在客户级选择停用搜索广告中的旅游 Feed,请执行以下操作:
使用
customer_asset_set报告检索类型为TRAVEL_FEED的所有CustomerAssetSet关联的customer_asset_set.resource_name和asset_set.resource_name:SELECT customer_asset_set.resource_name, asset_set.resource_name, asset_set.name FROM customer_asset_set WHERE asset_set.type = 'TRAVEL_FEED'针对每个
customer_asset_set.resource_name,创建一个CustomerAssetSetOperation,并将remove设置为在上一步中检索到的customer_asset_set.resource_name。使用创建的
CustomerAssetSetOperation对象向CustomerAssetSetService.MutateCustomerAssetSets提交请求。
如果您想在客户级再次选择启用此功能,请执行以下操作:
- 针对您要关联的每个底层
AssetSet(asset_set.resource_name) ,创建一个新的CustomerAssetSet,并将asset_set设置为asset_set.resource_name,并将customer设置为客户的资源名称。 - 针对在上一步中创建的每个
CustomerAssetSet,创建一个CustomerAssetSetOperation,并将create设置为CustomerAssetSet。 - 使用创建的
CustomerAssetSetOperation对象向CustomerAssetSetService.MutateCustomerAssetSets提交请求。
在广告系列级选择停用
如需在广告系列级选择停用搜索广告中的旅游 Feed,您必须先从客户级排除继承的选择启用状态:
使用
campaign报告检索excluded_parent_asset_set_types:SELECT campaign.excluded_parent_asset_set_types FROM campaign WHERE campaign.id = 'INSERT_YOUR_CAMPAIGN_ID'创建一个新的
Campaign对象,并将excluded_parent_asset_set_types设置为 之前的值 加上TRAVEL_FEED,并将resource_name设置为广告系列的资源名称。创建一个
CampaignOperation,并相应地将update设置为之前创建的Campaign,并将update_mask设置为之前创建的 。使用在上一步中创建的
CampaignOperation向CampaignService.MutateCampaigns提交请求。
然后,移除所有广告系列级旅游 Feed 关联:
针对您要选择停用的广告系列,使用
campaign_asset_set报告检索类型为TRAVEL_FEED的所有CampaignAssetSet关联的campaign_asset_set.resource_name和asset_set.resource_name:SELECT campaign_asset_set.resource_name, asset_set.resource_name, asset_set.name FROM campaign_asset_set WHERE campaign_asset_set.campaign = 'INSERT_YOUR_CAMPAIGN_RESOURCE_NAME' AND asset_set.type = 'TRAVEL_FEED'针对每个
campaign_asset_set.resource_name,创建一个CampaignAssetSetOperation,并将remove设置为在上一步中检索到的campaign_asset_set.resource_name。使用创建的
CampaignAssetSetOperation对象向CampaignAssetSetService.MutateCampaignAssetSets提交请求。
如果您想在广告系列级再次选择启用此功能,请执行以下操作:
- 针对您要选择启用的每个底层
AssetSet(asset_set.resource_name) ,创建一个新的CampaignAssetSet,并将asset_set设置为asset_set.resource_name,并将campaign设置为广告系列的资源名称。 - 针对在上一步中创建的每个
CampaignAssetSet,创建一个CampaignAssetSetOperation,并将create设置为CampaignAssetSet。 - 使用创建的
CampaignAssetSetOperation对象向CampaignAssetSetService.MutateCampaignAssetSets提交请求。
为广告系列恢复客户级选择启用状态
如需使广告系列的选择启用状态再次继承客户级设置,请按以下步骤操作:
- 创建一个新的
Campaign对象,并将excluded_parent_asset_set_types设置为不包含TRAVEL_FEED的列表,并将resource_name设置为 您的广告系列的资源名称。 - 创建一个
CampaignOperation,并相应地将update设置为之前创建的Campaign,并将update_mask设置为之前创建的 。 - 使用在上一步中创建的
CampaignOperation向CampaignService.MutateCampaigns提交请求。
按实体每次点击费用人工出价
从 Google Ads API v25 开始,您可以使用
AdGroupCriterion 资源(条件类型为
CriterionType.VERTICAL_ADS_ITEM_BID
(ad_group_criterion.entity_bid))为旅游搜索广告系列中的酒店配置按实体每次点击费用人工出价
替换。
前提条件和兼容性要求
如需创建和管理 VERTICAL_ADS_ITEM_BID 条件,必须满足以下条件:
- 广告系列类型: 旅游搜索广告系列(搜索广告系列,
AdvertisingChannelType.SEARCH,且启用了搜索广告系列的 AI MaxCampaign.ai_max_setting.enable_ai_max,并关联了酒店 Feed [TRAVEL_FEED素材资源集];仅支持酒店 Feed)。 - 出价策略: 仅限每次点击费用人工出价
(
BiddingStrategyType.MANUAL_CPC)。- 不支持自动出价策略或智能出价策略(例如“尽可能提高转化次数”“尽可能提高转化价值”“目标每次转化费用”或“目标广告支出回报率”)。
- 仅限正条件:
negative必须设置为false。不支持负实体出价。 - 必需的实体标识符和出价:
创建实体
出价条件时,必须提供
entity_bid.item_code和cpc_bid_micros。
架构和字段定义
- 资源:
AdGroupCriterion(ad_group_criterion) - 资源名称格式:
customers/{customer_id}/adGroupCriteria/{ad_group_id}~{criterion_id} - 条件类型枚举:
CriterionType.VERTICAL_ADS_ITEM_BID - 消息:
EntityBid(ad_group_criterion.entity_bid)
| 字段 | 类型 | 行为 | 说明 |
|---|---|---|---|
entity_bid |
EntityBid |
IMMUTABLE |
表示单个商品的人工出价覆盖的条件。 |
entity_bid.item_code |
string |
IMMUTABLE,必填 |
用于指定与合作酒店 Feed 匹配的特定酒店实体(酒店房源 ID)的 ID 或代码(1 到 256 个字符,已修剪)。 |
cpc_bid_micros |
int64 |
读写 | 每次点击费用人工出价金额,以微单位表示(例如,
1000000 等于 $1.00)。 |
negative |
bool |
IMMUTABLE |
必须为 false。 |
支持的服务和操作
| 服务 | 方法 | 支持的操作 |
|---|---|---|
AdGroupCriterionService |
MutateAdGroupCriteria |
create、update
(cpc_bid_micros)、remove |
GoogleAdsService |
Search
/ SearchStream |
查询条件属性、商品代码和出价值 |
代码和载荷示例
以下示例展示了如何读取、创建、更新和移除 VERTICAL_ADS_ITEM_BID 条件。
使用 GAQL 读取实体出价
使用 GoogleAdsService.Search 或
GoogleAdsService.SearchStream 查询
VERTICAL_ADS_ITEM_BID 条件:
SELECT
ad_group_criterion.resource_name,
ad_group_criterion.ad_group,
ad_group_criterion.criterion_id,
ad_group_criterion.type,
ad_group_criterion.cpc_bid_micros,
ad_group_criterion.entity_bid.item_code
FROM ad_group_criterion
WHERE ad_group_criterion.type = 'VERTICAL_ADS_ITEM_BID'
创建实体出价
向
AdGroupCriterionService.MutateAdGroupCriteria发送create操作:
{
"customerId": "1234567890",
"operations": [
{
"create": {
"adGroup": "customers/1234567890/adGroups/987654321",
"negative": false,
"cpcBidMicros": "1500000",
"entityBid": {
"itemCode": "hotel_nyc_12345"
}
}
}
]
}
更新现有实体出价金额
向
AdGroupCriterionService.MutateAdGroupCriteria发送包含updateMask的update操作:
{
"customerId": "1234567890",
"operations": [
{
"updateMask": "cpcBidMicros",
"update": {
"resourceName": "customers/1234567890/adGroupCriteria/987654321~555444333",
"cpcBidMicros": "2000000"
}
}
]
}
移除实体出价
向
AdGroupCriterionService.MutateAdGroupCriteria发送remove操作:
{
"customerId": "1234567890",
"operations": [
{
"remove": "customers/1234567890/adGroupCriteria/987654321~555444333"
}
]
}
验证规则和错误处理
| 场景 | 触发条件 / 条件 | 返回的错误代码 |
|---|---|---|
| 非每次点击费用人工出价广告系列 | 尝试在采用自动出价或 智能出价的广告系列中创建实体出价。 | ContextError.OPERATION_NOT_PERMITTED_FOR_CONTEXT |
| 广告系列类型无效 | 向非搜索广告系列(例如展示广告系列 )添加实体出价。 | ContextError.OPERATION_NOT_PERMITTED_FOR_CONTEXT |
| 不可出价的标准(否) | 为
设置negative = trueVERTICAL_ADS_ITEM_BID。 |
ContextError.OPERATION_NOT_PERMITTED_FOR_CONTEXT |
| 缺少商品代码或出价 | 尝试创建 entity_bid,但未提供
item_code 或 cpc_bid_micros。 |
RequestError.REQUIRED_FIELD_MISSING
/ FieldError.REQUIRED |
| 更改商品代码 | 尝试更新现有条件中的 entity_bid.item_code。 |
RequestError.IMMUTABLE_FIELD / FieldError.IMMUTABLE_FIELD |
效果报告
您可以使用 ClickType.TRAVEL_ASSETS 来识别
以
搜索广告中的旅游 Feed 形式投放的广告的效果数据,例如提取所有广告系列中广告的效果
数据:
SELECT
campaign.name,
segments.click_type,
metrics.impressions,
metrics.clicks
FROM campaign
WHERE segments.click_type = 'TRAVEL_ASSETS'
行程维度细分
您还可以按行程维度细分关联了旅游 Feed 的广告系列的效果报告:
segments.advance_booking_window:行程的提前预订天数。segments.length_of_booking:行程的预订天数。segments.start_date:预订的开始日期,格式为yyyy-MM-dd。segments.start_day_of_week:预订的开始日期是星期几。segments.user_set_dates: 指明是否选择了用户指定的日期 (USER_SELECTED或DEFAULT_SELECTION)。
示例查询
SELECT
campaign.name,
segments.advance_booking_window,
segments.length_of_booking,
segments.start_date,
segments.start_day_of_week,
segments.user_set_dates,
metrics.impressions,
metrics.clicks
FROM campaign
WHERE segments.date DURING LAST_30_DAYS