酒店广告和免费的预订链接包含指向着陆页的链接,用户可以在着陆页上预订客房。您可以定义 Google 构建链接的方式,以便在其中添加有关用户及其行程的所有其他信息。例如,您可以在相关网址中添加酒店 ID、语言、币种代码和入住日期等信息。
概览
您可以在着陆页文件中定义着陆页网址。当广告或免费预订链接展示时,网址中的动态信息会被替换为实际值。如需向着陆页网址添加动态值,请使用以下语法:
<URL>https://partner_url?param_id=(variable_name)</URL>
以下示例展示了一个使用 Google 的变量名称而非实际酒店 ID 和行程的网址:
示例 1
<URL>https://www.partnerdomain.com?hotelID=(PARTNER-HOTEL-ID)
&checkinDay=(CHECKINDAY)&checkinMonth=(CHECKINMONTH)
&checkinYear=(CHECKINYEAR)&nights=(LENGTH)
</URL>
示例 2
<URL>https://www.partnerdomain.com/hotel/(PARTNER-HOTEL-ID)
&checkinDay=(CHECKINDAY)&checkinMonth=(CHECKINMONTH)
&checkinYear=(CHECKINYEAR)&nights=(LENGTH)
</URL>
在为搜索结果页构建着陆页链接时,Google 会将变量替换为实际值,以确保网址包含动态信息。例如,如果用户预订了 42 号酒店的房间,入住时间为 2023 年 5 月 23 日,入住时长为 6 晚,Google 会将上述链接呈现为以下形式:
https://www.partnerdomain.com?hotelID=42&checkinDay=23&checkinMonth=05&checkinYear=2023&nights=6
Google 为查询字符串中的变量分配的值取决于酒店价格 Feed、酒店列表 Feed 和用户设置中的相应数据。
例如,LENGTH
变量的值会从相关行程的价格 Feed 分配给 <Nights>
元素。同样,PARTNER-HOTEL-ID
变量的值是在与用户搜索条件匹配的酒店列表 Feed 的 <id>
元素中定义的。
某些变量是价格 Feed 元素的子集。例如,CHECKINDAY
、CHECKINMONTH
和 CHECKINYEAR
变量是从价格 Feed 中的单个 <Checkin>
元素中提取的。其他变量根据用户的语言区域和其他客户端设置计算得出。
网址变量
下表介绍了可用于构建着陆页网址的可用变量:
变量 | 推荐/可选 | 说明 |
---|---|---|
ADVANCE-BOOKING-WINDOW | Optional | 预订时酒店时区内入住日期之前的提前预订天数。例如 36 。 |
ALTERNATE-HOTEL-ID | Recommended (if you have separate IDs to identify properties versus booking engines) | 房源的备用标识符。此属性名称在您的酒店列表 Feed 中指定。如果您需要一个房源标识符用于 Feed 信息,另一个房源标识符用于预订引擎,那么提供单独的 ID 会非常有用。 |
CAMPAIGN-ID | Recommended | 您要与网址相关联的 Google Ads 广告系列的 ID。如果点击未与 Google Ads 广告系列相关联,则此值为空白。 |
CHECKINDAY | Recommended | 酒店价格 Feed 的 <Checkin> 元素中定义的两位数日期。例如 20 。 |
CHECKINDAY-OF-WEEK | Optional | 入住当天是星期几(Monday 至 Sunday ),采用酒店的时区。例如:Tuesday 。 |
CHECKINMONTH | Recommended | 酒店价格 Feed 的 <Checkin> 元素中定义的两位数月份。例如 05 。 |
CHECKINYEAR | Recommended | 酒店价格 Feed 的 <Checkin> 元素中定义的四位数年份。例如 2023 。 |
CHECKOUTDAY | Recommended | 根据酒店价格 Feed 的 <Nights> 和 <Checkin> 元素计算出的两位数日期。例如,26 。 |
CHECKOUTMONTH | Recommended | 根据酒店价格 Feed 的 <Nights> 和 <Checkin> 元素计算出的两位数月份。例如 05 。 |
CHECKOUTYEAR | Recommended | 根据酒店价格 Feed 的 <Nights> 和 <Checkin> 元素计算出的四位数年份。例如 2023 。 |
CHILD-AGE | Recommended (must be provided for child occupancy pricing) | 价格 Feed 的
<Child "age"> 元素中指定的每个儿童的最大年龄。
此变量必须与 FOR-EACH-CHILD-AGE 条件块搭配使用。 |
CHILD-INDEX | Optional | 一个从 0 开始的循环变量,用于表示行程中指定的每位儿童乘客和儿童年龄的计数器。虽然不是强制性的,但此变量只能与 FOR-EACH-CHILD-AGE 条件块搭配使用。
|
CLICK-TYPE | Optional | 表示用户点击的是标准酒店房价的房源还是房间套装的房源。可能的值如下:
|
CLOSE-RATE-RULE-IDS | Optional (only applies if you are using conditional or private rates) | 一个英文逗号分隔的列表,其中包含不可用的费率的费率规则 ID,但如果用户采取了次要操作,则这些费率可能可用。请注意,当向用户显示相应的界面处理方式时,系统始终会在此处填充不公开费率的费率规则 ID。 |
Optional | 已弃用:在 <Result> 元素中定义的自定义字段的值,每个自定义字段的字符数上限为 200。如需了解详情,请参阅交易消息概览。使用 ARI 时,自定义字段不可用。
只有在您通过交易消息发送价格时,系统才会列出 CUSTOM 变量。
重要提示:如果您想使用 |
|
DATE-TYPE | Optional | 表示用户是选择了默认日期还是搜索中提供的特定日期。可能的值如下:
|
GOOGLE-ADS-CLICK-SOURCE | Optional | 表示点击来自 Google Ads。可能的值如下:
注意:如果点击来自 Google 搜索而非 Google Ads,则此参数为空 |
GOOGLE-SITE | Optional | 用户查看您的酒店价格数据的 Google 媒体资源。
可能的
|
LENGTH | Recommended | 酒店价格 Feed 中 <Nights> 元素定义的住宿时长(以晚数表示)。例如 3 。 |
MODIFICATION-IDS | Optional | 如果您使用 ARI 费率修改,则此变量的值为费率修改消息的 |
NUM-ADULTS | Recommended (must be used with the
NUM-CHILDREN or FOR-EACH-CHILD-AGE condition)
|
用户为行程指定的成人乘客人数。
此变量必须与 NUM-CHILDREN 、FOR-EACH-CHILD-AGE 或两者结合使用。 |
NUM-CHILDREN | Recommended | 用户在行程中指定的儿童乘客(0-17 周岁)人数。NUM-CHILDREN 、FOR-EACH-CHILD-AGE 或两者均需提供,才能成功参与包含儿童乘客的行程。 |
NUM-GUESTS | Recommended (if you don't send child occupancy pricing) | 用户为行程指定的所有入住人数(包括成人和儿童)。此值是 NUM-ADULTS 和 NUM-CHILDREN 值的总和。为了最大限度地提高参与度,强烈建议同时使用 NUM-ADULTS 和 NUM-CHILDREN 。 |
PACKAGE-ID | Recommended (applies if you use Room Bundles) | 酒店价格 Feed 中相应套餐的唯一标识符。对于标准软件包,软件包 ID 是 <Result> 块中 <PackageID> 元素的值。对于客房套餐,套餐 ID 是交易消息的 <RoomBundle> 或 <PackageData> 块中 <PackageID> 元素的值。 |
PARTNER-CURRENCY | Optional | 酒店价格 Feed 中 <Baserate> 元素的 currency 属性定义的由三个字母组成的币种代码。例如 USD 或 CAD
。 |
PARTNER-HOTEL-ID | Recommended | 酒店列表 Feed 中 <id> 元素定义的酒店的唯一标识符。 |
PARTNER-ROOM-ID | Recommended (applies if you use Room Bundles) | 酒店价格 Feed 中客房的唯一标识符。对于标准聊天室,聊天室 ID 是 <Result> 代码块中 <RoomID> 元素的值。对于客房套餐,客房 ID 是交易消息中 <RoomBundle> 或 <RoomData> 块内分配给 <RoomID> 元素的值。 |
Optional (only applies to Ads) | 已弃用:如果您使用的是佣金追收公司,则解析为预定义字符串 commission 或 Google 分配的 IATA 编号(例如“01234567”)。如需更改 IATA 编号或预定义字符串的格式,请与您的技术支持客户经理 (TAM) 联系。 |
|
PRICE-DISPLAYED-TAX | (Optional) | 向用户显示的税费金额(以用户本地货币计算)。
PRICE-DISPLAYED-TAX 的值是酒店价格 Feed 中 <Tax> 元素的值。例如,“3.14”。 |
PRICE-DISPLAYED-TOTAL | (Optional) | 向用户显示的房间总费用(以用户本地货币计算)。PRICE-DISPLAYED-TOTAL 的值是酒店价格 Feed 中 <Baserate> 、<Tax> 和 <OtherFees> 元素的总和。
例如,“152.13”。 |
PROMO-CODE | (Optional) | 如果您使用 ARI 促销活动,则此变量的值会分配给所应用 如果您使用
费率规则,则在应用相应费率规则时,此变量的值会分配给 |
RATE-PLAN-ID | Recommended (only applies if you use RoomBundles) | 价格 Feed 的 <RoomBundle> 块中 <RatePlanID> 元素定义的 ID。<RatePlanID> 表示客房和套餐数据组合的唯一标识符。如需了解详情,请参阅
会议室套装。 |
RATE-RULE-ID | Recommended (only applies if you use conditional rates or private rates) | 价格 Feed 的 <Rate> 块中 rate_rule_id 属性定义的 ID。如需了解详情,请参阅
条件式费率。
注意:系统只会显示未隐藏的条件式费率或不公开费率。 |
USER-COUNTRY | Recommended | 表示用户所在位置的双字母国家/地区代码。此信息是从用户的客户端设置中提取的。例如,US 或 FR 。 |
USER-CURRENCY | Recommended | 表示用户本地货币的三字母币种代码。USER-CURRENCY 变量的值是从用户的客户端设置中推断出来的。例如,USD 或 CAD 。 |
USER-DEVICE | Recommended | 用户的设备类型。USER-DEVICE 的值可以是以下值之一:
|
USER-LANGUAGE | Recommended | 用于指定广告或免费预订链接显示语言的双字母 ISO 639-1 语言代码。USER-LANGUAGE 变量的值是从用户的客户端设置中推断出来的。例如,en 或 fr 。 |
USER-LIST-ID(在 Google Ads 中定义) | Optional (only applies if you use Audience Lists in Google Ads) | 包含受众群体名单或用户信息的 Google Ads 用户列表 ID。受众群体名单可用作设置出价调整的依据。如果用户属于多个受众群体名单,系统会选择出价调整幅度最大的受众群体名单。出价调整幅度最大的受众群体之间的排名由系统随机决定。 |
VERIFICATION | Optional | 一个布尔值,用于验证链接是否由 Google 生成,以进行测试或自动验证。如果链接是由 Google 为测试或自动验证生成的,则为 true ;否则为 false 。
|
网址中的条件逻辑
您可以在着陆页文件的 <URL>
元素中使用特殊指令来有条件地构建端点。
条件逻辑支持以下语句:
if_statement:如果为
true
,则将此条件之后的值插入网址中;否则,将ELSE
指令之后的值插入网址中。for_statement:创建一个 FOR 循环条件,该条件会根据提供的值的数量进行迭代。
IF 和 FOR 语句包含以下内容:
条件 | 推荐/可选 | 说明 |
---|---|---|
IF-AD-CLICK(仅限酒店广告) | Optional | 如果用户点击源自广告,则解析为 true 。
如果用户点击源自免费预订链接,则解析为 false 。 |
IF-CLICK-TYPE-HOTEL | Optional | 如果用户点击了酒店的商家信息,则解析为 true ;否则,解析为 false 。 |
IF-CLICK-TYPE-ROOM | Optional | 如果用户点击了
房间套装的房源,则解析为 true ,否则解析为 false 。 |
IF-CLOSE-RATE-RULE-IDS | Optional | 如果有一个或多个条件式价格因用户不符合条件而不可用,则解析为 true ;否则解析为 false 。默认情况下,如果向用户显示了私人费率
界面处理,则为 true 。 |
IF-DEFAULT-RATE | Optional | 如果用户点击了使用默认日期的酒店房源,则解析为 true ,否则解析为 false 。 |
IF-HOTEL-CAMPAIGN | Optional | 如果用户点击源自酒店广告系列,则解析为 true ,否则解析为 false 。这种区分有助于在 Google Ads 中投放多种广告系列的合作伙伴分配归因。 |
IF-MODIFICATION-IDS | Optional | 如果用户点击了由 ARI 价格修改修改的价格,则解析为 true ;否则解析为 false 。 |
(仅限酒店广告) | Recommended (if you use pay-per-stay Google Ads campaigns) | 已弃用:如果酒店参加了按入住付费 (PPS) 佣金计划,则解析为 true ;否则解析为 false 。 |
IF-PROMO-CODE | Optional | 如果用户点击的房价基于 ARI 促销或具有指定 PromoCode 的房价规则,则解析为 true ;否则解析为 false 。 |
IF-PROMOTED(仅限酒店广告) | Recommended (if you use Promoted hotels) | 如果用户点击了酒店宣传广告,则解析为 true ;否则解析为 false 。 |
IF-RATE-RULE-ID | Optional | 如果用户选择了条件式价格
,则解析为 true ;否则解析为 false 。 |
IF-USER-LIST-ID(在 Google Ads 中定义) | Optional | 如果用户是您在为受众群体名单设置出价调节系数时指定的 Google Ads 客户名单 ID 的成员,则解析为 true ;否则解析为 false 。 |
IF-VERIFICATION | Optional | 如果链接是由 Google 生成的,用于测试或自动验证,则解析为 true ;否则解析为 false 。 |
ELSE | Recommended (if you use any conditional IF statements) | 如果不满足上一个条件,系统会将此条件之后的值插入网址中。 |
END-IF | Optional (required if you have any IF conditional statements) | 结束 IF 语句条件块。 |
FOR-EACH-CHILD-AGE | Optional (required for child occupancy pricing) | 针对价格 Feed 中的每个
<Child "age"> 元素执行一次。例如,如果 <OccupancyDetails> 包含两个元素 <Child age="17"> 和 <Child age=
"17"> ,则该指令会执行两次。 |
END-FOR-EACH | Optional (required if using FOR-EACH block) | 结束 FOR-EACH 语句条件块。 |
IF-AD-CLICK 示例
您可以构建一个条件块,用于查看用户点击的是广告还是免费的预订链接,以便重定向到您的着陆页。
以下示例在着陆页文件中使用此指令:
<URL>https://partner.com?hid=(PARTNER-HOTEL-ID)(IF-AD-CLICK)&adType=1(ELSE)&adType=0(ENDIF)</URL>
在此示例中,如果用户未点击广告,结果将显示为下列网址:
https://www.partner.com?hid=123&adType=0
如果用户点击了广告,则结果将显示为下列网址:
https://www.partner.com?hid=123&adType=1
IF-CLICK-TYPE-HOTEL 示例
您可以构建一个条件块,用于检查用户是否选择了没有明确的客房套装的酒店。交易消息的 <Room Bundle>
块中 <RatePlanID>
元素的值将设置为用户已选择的隐式关联的客房套餐价格。
以下示例在着陆页文件中使用此指令:
<URL>https://partner.com/(IF-CLICK-TYPE-HOTEL)landing(ELSE)landing_room(ENDIF)?hid=(PARTNER-HOTEL-ID)</URL>
在此示例中,如果用户选择了房间套装,结果将显示为下列网址:
https://partner.com/landing_room?hid=123
如果用户未选择 Room Bundle,则结果为以下网址:
https://partner.com/landing?hid=123
IF-CLICK-TYPE-ROOM 示例
您可以构建一个条件块,用于检查用户是否选择了客房套餐。
以下示例在着陆页文件中使用此指令:
<URL>https://partner.com/(IF-CLICK-TYPE-ROOM)landing_room(ELSE)landing(ENDIF)?hid=(PARTNER-HOTEL-ID)</URL>
在此示例中,如果用户未选择 Room Bundle,结果将显示为下列网址:
https://partner.com/landing?hid=123
如果用户选择的是房间套装,则结果将显示为下列网址:
https://partner.com/landing_room?hid=123
IF-DEFAULT-DATE 示例
使用 IF-DEFAULT-DATE
条件语句设置一个非日期参数,如果用户未选择日期,您的网站随后可以使用该参数触发自定义行为。
以下示例检查是否使用了默认日期:
<URL>https://partner.com?hotelID=(PARTNER-HOTEL-ID)&checkinDay=(CHECKINDAY)&checkinMonth=(CHECKINMONTH)&checkinYear=(CHECKINYEAR)&nights=(LENGTH)<strong>(IF-DEFAULT-DATE)</strong>&popup_datepicker=true(ELSE)&popup_datepicker=false(ENDIF)</URL>
在此示例中,如果用户未选择日期,结果可能类似于以下显示默认日期选择的网址:
https://partner.com?hotelID=123&checkinDay=23&checkinMonth=05&checkinYear=2023&nights=1&popup_datepicker=true
如果用户选择了日期,则结果可能类似于以下网址,具体取决于用户选择的行程:
https://partner.com?hotelID=123&checkinDay=23&checkinMonth=05&checkinYear=2023&nights=2&popup_datepicker=false
IF-HOTEL-CAMPAIGN 示例(酒店广告和免费预订链接点击)
您可以构建一个条件块,用于查看用户点击的广告是否源自于酒店广告系列。
以下示例在着陆页文件中使用此指令:
<URL>https://partner.com?hotelID=(PARTNER-HOTEL-ID)(IF-HOTEL-CAMPAIGN)&hotel_campaign=(CAMPAIGN-ID)(ELSE)utm_campaign=(CAMPAIGN-ID)(ENDIF)</URL>
在此示例中,如果用户点击酒店广告系列网址,结果将显示为下列网址:
https://www.partner.com?hotelID=123&hotel_campaign=12345678
如果点击的不是酒店广告系列网址(例如常规搜索广告系列),则结果将显示为下列网址:
https://www.partner.com?hotelID=123&utm_campaign=87654321
如果您想区分酒店广告系列点击带来的流量与其他点击带来的流量,此功能会非常有用。
包含 FBL 点击的空白 CAMPAIGN-ID
如果点击来自免费预订链接,则 IF-HOTEL-CAMPAIGN
返回 TRUE
,并且 CAMPAIGN-ID
值会设为空白,如以下网址所示:
https://www.partner.com?hotelID=123&hotel_campaign=
您可以使用 IF-AD-CLICK
条件语句来防止出现空白的广告系列 ID,如以下示例所示:
<URL>https://partner.com?hotelID=(PARTNER-HOTEL-ID)(IF-HOTEL-CAMPAIGN)(IF-AD-CLICK)&hotel_campaign=(CAMPAIGN-ID)(ELSE)&FreeBookingLink(ENDIF)(ELSE)utm_campaign=(CAMPAIGN-ID)(ENDIF)</URL>
IF-PROMOTED 示例(仅限酒店广告)
您可以构建一个条件块,用于查看用户是否点击了房源推广广告。
以下示例在着陆页文件中使用此指令:
<URL>https://partner.com/(IF-PROMOTED)1(ELSE)0(ENDIF)?hid=(PARTNER-HOTEL-ID)</URL>
在此示例中,如果用户选择了酒店宣传广告,结果将显示为下列网址:
https://partner.com/1?hid=123
如果用户未选择酒店宣传广告,结果将显示为下列网址:
https://partner.com/0?hid=123
IF-RATE-RULE-ID 示例
您可以构建一个条件块,用于检查用户是否选择了条件费率,如果选择了,则使用交易消息的 <Rate>
块中 <RateRuleID>
元素的值。
以下示例在着陆页文件中使用此指令:
<URL>https://partner.com?hid=(PARTNER-HOTEL-ID)(IF-RATE-RULE-ID)&customerType=42(ELSE)(ENDIF)</URL>
在此示例中,如果用户未选择条件式价格,则结果为以下网址:
https://www.partner.com?hid=123
如果用户选择了条件式价格,则结果为以下网址:
https://www.partner.com?hid=123&customerType=42
IF-USER-LIST-ID 示例(在 Google Ads 中定义)
如果您在 Google Ads 的酒店广告系列中为受众群体名单设置了出价调节系数,则可以将 IF-USER-LIST-ID
与 USER-LIST-ID
搭配使用,以便为属于特定 Google Ads 受众群体名单的客户在您的网站上设置参数。您可能需要这样做,以便进行跟踪或为受众群体名单中的成员自定义网站。
<URL>https://partner.com/?hid=(PARTNER-HOTEL-ID)(IF-USER-LIST-ID)&audience_list=(USER-LIST-ID)(ELSE)(ENDIF)</URL>
在此示例中,如果用户不是某个受众群体名单的成员,结果将显示为下列网址:
https://www.partner.com?hid=123
如果用户是受众群体名单 12345678
的成员,则结果为以下网址:
https://www.partner.com?hid=123&audience_list=12345678
IF-VERIFICATION 示例
如果您需要检查 Google 是否生成了用于测试或自动验证的网址,可以使用 IF-VERIFICATION
。
<URL>https://partner.com/?hid=(PARTNER-HOTEL-ID)(IF-VERIFICATION)&isgoogle=true(ENDIF)</URL>
在此示例中,如果 Google 未生成用于测试或验证的网址,则结果为以下网址:
https://www.partner.com?hid=123
如果 Google 生成了用于测试或验证的网址,则结果是以下网址:
https://www.partner.com?hid=123&isgoogle=true
FOR-EACH-CHILD-AGE 示例
您可以构建一个条件块,用于填充酒店价格 Feed 中指定的每位儿童入住者的最大年龄。
以下示例在着陆页文件中使用此指令:
<URL>https://partner.com?adults=(NUM-ADULTS)&children=(NUM-CHILDREN)(FOR-EACH-CHILD-AGE)&age=(CHILD-INDEX)_(CHILD-AGE)(END-FOR-EACH)&hid=(PARTNER-HOTEL-ID)&</URL>
在此示例中,如果行程包含 2 名成人和 2 名儿童(年龄分别为 0 岁和 17 岁),则结果将显示为以下网址:
https://www.partner.com?adults=2&children=2&age=0_0age=1_17&hid=123
如果行程包含 2 位成人和 0 位儿童,则结果为以下网址:
https://www.partner.com?adults=2&children=0&hid=123
构建网址时的一般规则
所有变量都是可选的。您无需在着陆页网址中插入任何变量。不过,使用变量传递行程和用户信息通常可以为用户带来更好的体验,并有助于您遵守 Google 的政策。
在着陆页文件中定义构造的网址时,请遵循以下一般规则:
所有变量都用左括号和右括号括起来。
查询字符串参数必须在最终输出中用和号 ("&") 分隔。因为和号是 XML 中的特殊字符,而着陆页文件格式是 XML。因此,您必须改用编码后的实体“&”。最终输出会呈现实际的“&”字符。 例如:
<!-- Do this: --> <URL>https://www.partnerdomain.com?hotelID=(PARTNER-HOTEL-ID)&nights=(LENGTH)</URL> <!-- Do NOT do this: --> <URL>https://www.partnerdomain.com?hotelID=(PARTNER-HOTEL-ID)&nights=(LENGTH)</URL>
您还必须对可能包含在着陆页网址中的特殊字符进行网址编码。例如:
- 空格 (" "):将
<URL>
元素中的空格字符替换为“%20;” - 正斜杠 (“/”):将
<URL>
元素中的正斜杠替换为“%2F;”
并非所有非字母字符都必须进行网址编码。例如,连字符“-”无需进行网址编码。如需查看必须进行网址编码的常见字符列表,请参阅网址编码。
- 空格 (" "):将
单个参数的值可以由多个变量构成。以下示例使用
CHECKINDAY
、CHECKINMONTH
和CHECKINYEAR
变量构建单个参数checkinDate
:<URL>https://www.partnerdomain.com?checkinDate=(CHECKINDAY)%2F;(CHECKINMONTH)%2F;(CHECKINYEAR)</URL>
此示例会生成类似于以下内容的网址:
https://www.partnerdomain.com?checkinDate=7/23/1971
您可以为查询字符串参数的名称使用任何 ID。您的服务器会处理这些值。不过,您传递的值仅限于可用变量列表。
除了可用变量列表中的变量之外,您还可以使用最多 5 个自定义变量。