搜索广告中的旅游 Feed

将酒店、民宿或推荐活动商品 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,请执行以下操作:

  1. 使用 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'
    
  2. 对于每个 customer_asset_set.resource_name,创建一个 CustomerAssetSetOperation,并将 remove 设置为在上一步中检索到的 customer_asset_set.resource_name。

  3. 使用创建的 CustomerAssetSetOperation 对象向 CustomerAssetSetService.MutateCustomerAssetSets 提交请求。

如果您想在客户层级再次选择启用此功能,请执行以下操作:

  1. 对于您要关联的每个底层 AssetSet (asset_set.resource_name),请创建一个新的 CustomerAssetSet,并将 asset_set 设置为 asset_set.resource_name,将 customer 设置为客户的资源名称。
  2. 对于在上一步中创建的每个 CustomerAssetSet,创建一个 CustomerAssetSetOperation,并将 create 设置为 CustomerAssetSet。
  3. 使用创建的 CustomerAssetSetOperation 对象向 CustomerAssetSetService.MutateCustomerAssetSets 提交请求。

在广告系列一级选择停用

如需在广告系列一级选择停用搜索广告中的旅游 Feed,您必须先排除从客户一级继承的选择启用状态:

  1. 使用 campaign 报告检索 excluded_parent_asset_set_types:

    SELECT
      campaign.excluded_parent_asset_set_types
    FROM campaign
    WHERE campaign.id = 'INSERT_YOUR_CAMPAIGN_ID'
    
  2. 创建一个新的 Campaign 对象,其中 excluded_parent_asset_set_types 设置为先前的值加上 TRAVEL_FEED,resource_name 设置为广告系列的资源名称。

  3. 创建一个 CampaignOperation,并相应地将 update 设置为之前创建的 Campaign 和 update_mask。

  4. 使用上一步中创建的 CampaignOperation 向 CampaignService.MutateCampaigns 提交请求。

然后,移除所有广告系列级旅游 Feed 关联:

  1. 对于您要停用的广告系列,请使用 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'
    
  2. 对于每个 campaign_asset_set.resource_name,创建一个 CampaignAssetSetOperation,并将 remove 设置为在上一步中检索到的 campaign_asset_set.resource_name。

  3. 使用创建的 CampaignAssetSetOperation 对象向 CampaignAssetSetService.MutateCampaignAssetSets 提交请求。

如果您想在广告系列一级再次选择启用此功能,请执行以下操作:

  1. 对于您要选择启用的每个底层 AssetSet (asset_set.resource_name),请创建一个新的 CampaignAssetSet,并将 asset_set 设置为 asset_set.resource_name,将 campaign 设置为广告系列的资源名称。
  2. 对于在上一步中创建的每个 CampaignAssetSet,创建一个 CampaignAssetSetOperation,并将 create 设置为 CampaignAssetSet。
  3. 使用创建的 CampaignAssetSetOperation 对象向 CampaignAssetSetService.MutateCampaignAssetSets 提交请求。

为广告系列恢复客户级选择加入状态

如需让广告系列的选择启用状态再次继承客户级设置,请按以下步骤操作:

  1. 创建一个新的 Campaign 对象,其中包含 excluded_parent_asset_set_types,列表中不含 TRAVEL_FEED,且 resource_name 设置为广告系列的资源名称。
  2. 创建一个 CampaignOperation,并相应地将 update 设置为之前创建的 Campaign 和 update_mask。
  3. 使用上一步中创建的 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 是必需的。

架构和字段定义

字段 类型 行为 说明
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 的广告系列的效果报告进行细分:

示例查询

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