将酒店、民宿或推荐活动商品 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]),为搜索广告系列中的酒店配置按实体每次点击费用人工出价覆盖。如需使用 AdGroupBidModifier 跨行程维度设置乘法广告组出价调整,请参阅使用出价调节系数调整出价。
前提条件和兼容性要求
如需创建和管理 VERTICAL_ADS_ITEM_BID 条件,必须满足以下条件:
- 广告系列类型:旅游搜索广告系列(搜索广告系列,
AdvertisingChannelType.SEARCH,通过Campaign.ai_max_setting.enable_ai_max启用 AI Max 搜索广告系列,并关联TRAVEL_FEED酒店 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 |
| 不可出价的标准(否) | 正在为 VERTICAL_ADS_ITEM_BID 设置 negative = true。 |
ContextError.OPERATION_NOT_PERMITTED_FOR_CONTEXT |
| 缺少商品代码或出价 | 尝试在未提供 item_code 或 cpc_bid_micros 的情况下创建 entity_bid。 |
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