酒店广告和免费的预订链接包含指向着陆页的链接,用户可以在该着陆页上预订客房。您可以定义 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 号酒店 6 晚的房间,并从 2023 年 5 月 23 日开始入住,Google 会按以下方式呈现上述链接:
https://www.partnerdomain.com?hotelID=42&checkinDay=23&checkinMonth=05&checkinYear=2023&nights=6
Google 为查询字符串中的变量指定的值取决于 酒店价格 Feed、酒店列表 Feed 和用户设置中的相应数据。
例如,LENGTH
变量的值会分配给相关行程的价格 Feed 中的 <Nights>
元素。同样,
PARTNER-HOTEL-ID
变量在酒店列表的 <id>
元素中定义
与用户搜索条件匹配的 Feed。
某些变量是价格 Feed 元素的子集。例如,系统会从价格 Feed 中的单个 <Checkin>
元素中提取 CHECKINDAY
、CHECKINMONTH
和 CHECKINYEAR
变量。其他变量是根据用户的语言区域和其他客户端设置计算得出的。
网址变量
下表介绍了可用于构建着陆页网址的可用变量:
变量 | 推荐/可选 | 说明 |
---|---|---|
ADVANCE-BOOKING-WINDOW | Optional | 在预订时酒店所在时区内,入住日期之前的提前预订天数。例如 36 。 |
ALTERNATE-HOTEL-ID | Recommended (if you have separate IDs to identify properties versus booking engines) | 房源的备用标识符。此属性名称在酒店列表 Feed 中指定。在以下情况下,使用单独的 ID 会非常有用: 您需要为 Feed 信息提供一个房源标识符,并为另一个 房源标识符。 |
CAMPAIGN-ID | Recommended | 您希望与 网址。如果点击未与 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 | 根据 <Nights> 计算得出的四位数年份
以及酒店价格 Feed 的 <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。 |
CUSTOM[1-5] | Optional | <Result> 元素中定义的自定义字段的值,每个自定义字段的字符数限制为 200 个字符。有关
请参阅
概述
事务消息列表。使用 ARI 时,自定义字段不可用。 |
DATE-TYPE | Optional | 指明用户选择了默认日期还是特定日期
。可能的值如下:
|
GOOGLE-ADS-CLICK-SOURCE | Optional | 表示点击的来源是 Google Ads。可能的值如下:
注意:如果点击源自 Google 搜索而非 Google Ads,此参数为空 |
GOOGLE-SITE | Optional | 用户查看您的酒店价格数据时所用的 Google 产品/服务。
可能的
|
LENGTH | Recommended | 住宿晚数(由
<Nights> 元素。例如 3 。 |
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 | 根据
浏览行程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 是
<PackageID> 元素(在
<RoomBundle> 或 <PackageData> 块
“交易”消息的相应部分 |
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 是分配给
<RoomID> 元素(在
<RoomBundle> 或 <RoomData> 块
。 |
PAYMENT-ID | 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 的值为
<Baserate> 、<Tax> 和
来自酒店价格 Feed 的 <OtherFees> 元素。
例如“152.13”。 |
PROMO-CODE | (Optional) | 如果您使用
ARI
promotion 时,此变量的值会分配给所应用的 如果您使用
费率规则,则如果应用了相应的费率规则,系统会将此变量的值分配给 |
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) | 由 rate_rule_id 属性定义
价格 Feed 的 <Rate> 块。如需了解详情,请参阅条件式费率。
注意:系统只会显示未隐藏的条件式费率或不公开费率。 |
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
用户点击了 的商家信息
Room Bundle,否则将解析为 false 。 |
IF-CLOSE-RATE-RULE-IDS | Optional | 如果一个或多个条件式费率满足条件,则解析为 true
不可用,因为用户不符合条件,否则将解析为
false 。默认情况下,此参数的值为 true if a private rate UI treatment was shown to the user。 |
IF-DEFAULT-RATE | Optional | 如果用户点击了使用默认日期的酒店商家信息,则解析为 true ;否则,解析为 false 。 |
IF-HOTEL-CAMPAIGN | Optional | 如果用户点击来自酒店广告系列,则解析为 true ;否则,解析为 false 。这种区分对于在 Google Ads 中投放多种广告系列类型的合作伙伴来说非常有用,有助于他们分配归因。 |
IF-PAYMENT-ID(仅限酒店广告) | Recommended (if you use pay-per-stay Google Ads campaigns) | 如果酒店参加了按入住付费 (PPS) 佣金计划,则解析为 true ;否则解析为 false 。 |
IF-PROMO-CODE | Optional | 如果用户点击的速率为 true ,则解析为
基于 ARI 促销活动或具有指定 PromoCode 的费率规则;
否则将解析为 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。交易消息的 <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
如果用户未选择客房套餐,则结果为以下网址:
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>
在此示例中,如果用户未选择客房套餐,结果将显示为以下网址:
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-PAYMENT-ID 示例(仅限酒店广告)
使用 IF-PAYMENT-ID
条件语句,根据点击是 PPS 佣金计划的结果还是其他原因来更改网址。下面的示例
检查点击是否来自 PPS 佣金计划,并将值指定为
booking_source
参数:
<URL>https://partner.com?hid=(PARTNER-HOTEL-ID)&booking_source=(IF-PAYMENT-ID)(PAYMENT-ID)(ELSE)cpc(ENDIF)</URL>
如果酒店加入了“佣金”计划,结果为以下之一: 以下网址:
- 如果 Google 尚未分配 IATA 编号,请执行以下操作:
https://partner.com?hid=123&booking_source=commissions
- 如果 IATA 编号已分配给 Google:
https://partner.com?hid=123&booking_source=01234567
否则,结果为以下网址:
https://partner.com?hid=123&booking_source=cpc
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 示例
您可以构建一个条件块,用于检查用户是否选择了
条件式费率,如果是这种情况,则使用 <RateRuleID>
的值
元素。<Rate>
以下示例在着陆页文件中使用此指令:
<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>
您还必须对可能包含在 着陆页网址。例如:
- 空格 (" "):将空格字符替换为“%20;”在
<URL>
元素中 - 正斜线(“/”):将
<URL>
元素中的正斜线替换为“%2F;”
并非所有非字母字符都必须经过网址编码。例如: 连字符 (-) 无需进行网址编码。下面列出了 必须经过网址编码的字符,请查阅 网址编码。
- 空格 (" "):将空格字符替换为“%20;”在
单个参数的值可以由多个变量构成。通过 以下示例通过
checkinDate
CHECKINDAY
、CHECKINMONTH
和CHECKINYEAR
变量:<URL>https://www.partnerdomain.com?checkinDate=(CHECKINDAY)%2F;(CHECKINMONTH)%2F;(CHECKINYEAR)</URL>
该示例生成的网址可能如下所示:
https://www.partnerdomain.com?checkinDate=7/23/1971
您可以使用任意 ID 作为查询字符串参数的名称。您的服务器 处理这些值。不过,您传递的值仅限于 可用变量列表。
除了可用变量列表之外,您最多还可以使用 5 个自定义变量。