搜索广告中的旅游 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,同时让其他广告系列继续沿用:向广告系列的 Campaign.excluded_parent_asset_set_types 添加 TRAVEL_FEED,并为其创建广告系列级 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 开始,您可以使用条件类型为 CriterionType.VERTICAL_ADS_ITEM_BID (ad_group_criterion.entity_bid) 的 AdGroupCriterion 资源,为旅游搜索广告系列中的酒店配置实体级每次点击费用人工出价覆盖设置。

前提条件和兼容性要求

如需创建和管理 VERTICAL_ADS_ITEM_BID 条件,必须满足以下条件:

  • 广告系列类型:旅游搜索广告系列(搜索广告系列,AdvertisingChannelType.SEARCH,启用 AI Max 搜索广告系列 Campaign.ai_max_setting.enable_ai_max 并关联酒店 Feed [TRAVEL_FEED 素材资源集];仅支持酒店 Feed)。
  • 出价策略:仅限每次点击费用人工出价 (BiddingStrategyType.MANUAL_CPC)。
    • 不支持自动出价策略或智能出价策略(例如“尽可能提高转化次数”“尽可能提高转化价值”“目标每次转化费用”或“目标广告支出回报率”出价策略)。
  • 仅限正向条件: negative 必须设置为 false。不支持负实体出价。
  • 必需的实体标识符和出价:创建实体出价条件时,必须提供 entity_bid.item_code 和 cpc_bid_micros。

架构和字段定义

字段 类型 行为 说明
entity_bid EntityBid IMMUTABLE 表示单个商品的人工出价覆盖条件。
entity_bid.item_code string IMMUTABLE,必填 用于指定特定酒店实体(酒店商品详情 ID)的 ID 或代码, 与合作酒店 Feed 相匹配(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
缺少商品代码或出价 尝试创建 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 的广告系列的效果报告:

示例查询

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