O arquivo XML das regras de tarifação define as regras para veicular tarifas condicionais e exclusivas. Você pode adicionar ou editar um arquivo XML de regras de tarifação usando a página Regras de tarifação na Central para Hotéis. Para mais informações sobre tarifas condicionais e exclusivas, consulte Tarifas condicionais e exclusivas.
Cada regra de taxa exige um id
, que pode ser referenciado em um
<Rate>
de uma mensagem de transação. Um <Rate>
que
faz referência a um ID de regra de tarifação só é veiculado aos usuários e nas condições
definidas pela regra de tarifação. Também é possível fazer referência a um ID de regra de taxa usando uma variável em um URL da página de destino.
<RateRuleSettings>
O elemento raiz do arquivo XML de regras de tarifação. O elemento
<RateRuleSettings>
(antigo <PrivateRates>
) contém:
Elementos
<UserRateCondition>
que definem as condições para correspondência de tarifas condicionais e exclusivas. Por exemplo, é possível criar uma tarifa condicional que corresponda à condição de todos os usuários em um determinado país.Elementos
<RateRule>
que definem uma regra de taxa para referência em um<Rate>
em uma mensagem de transação. Cada<RateRule>
especifica as condições e o tratamento da interface que constroem uma tarifa condicional ou exclusiva.
O elemento <RateRuleSettings>
aparece no seguinte lugar na hierarquia XML das regras de
taxa:
+<RateRuleSettings>
+<UserRateCondition>
+<RateRule>
+<UserRateCondition>
+<RateIneligibility>
+<RateModification>
Sintaxe
O elemento <RateRuleSettings>
usa a seguinte sintaxe:
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<UserRateCondition id="some_id" op="[all|any|none]">
...
</UserRateCondition>
<!-- Required -->
<RateRule id="rate_rule_id">
<!-- Required -->
<UserRateCondition op="[all|any|none]">
...
</UserRateCondition>
</RateRule>
</RateRuleSettings>
Atributos
O elemento <RateRuleSettings>
não tem atributos.
Elementos filhos
O elemento <RateRuleSettings>
tem os seguintes elementos filhos:
Elemento filho | Obrigatório? | Tipo | Descrição |
---|---|---|---|
<RateRule> |
Required | <RateRule> |
Define as condições de correspondência, modificações e qualificação para
veicular uma tarifa condicional ou exclusiva. Exige um atributo |
<UserRateCondition> |
Optional | <UserRateCondition> |
Define uma ou mais condições que, quando correspondentes, resultam na veiculação de tarifas condicionais ou exclusivas. As condições podem ser definidas inline usando elementos filhos Um |
Exemplos de tarifas condicionais
Os exemplos a seguir mostram maneiras básicas de definir taxas condicionais.
Recomendamos referenciar condições predefinidas, como mostrado no exemplo Usuários de dispositivos móveis.
Usuários de dispositivos móveis
O exemplo a seguir de tarifas condicionais define uma regra de tarifação que corresponde a
todos os usuários de dispositivos móveis ao fazer referência a um <UserRateCondition>
predefinido:
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<UserRateCondition id="mobile">
<UserDeviceType>mobile</UserDeviceType>
</UserRateCondition>
<RateRule id="mobile">
<!-- Referencing pre-defined conditions is recommended -->
<UserRateCondition reference_id="mobile"/>
</RateRule>
</RateRuleSettings>
Usuários dos EUA
O exemplo a seguir de taxas condicionais define uma regra de taxa que corresponde a
todos os usuários que pesquisam nos EUA ao fazer referência a um
<UserRateCondition>
predefinido:
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<UserRateCondition id="us">
<UserCountry>US</UserCountry>
</UserRateCondition>
<RateRule id="us">
<UserRateCondition reference_id="us"/>
</RateRule>
</RateRuleSettings>
<RateRule>
Um contêiner para especificar:
- Condições para veicular uma taxa
- Modificações, se houver, no preço e no tratamento da interface da tarifa
- Uso de tratamentos de interface ocultos para tarifas exclusivas
O elemento <RateRule>
aparece no seguinte lugar na hierarquia XML das regras de tarifa:
+<RateRuleSettings>
+<UserRateCondition>
+<RateRule>
+<UserRateCondition>
+<RateIneligibility>
+<RateModification>
Sintaxe
O elemento <RateRule>
usa a seguinte sintaxe:
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings ...>
<UserRateCondition ...>
...
</UserRateCondition>
<!-- At least one RateRule is required. The id attribute is required -->
<RateRule id="rate_rule_id">
<!-- One or more UserRateCondition elements (inline or referenced) are required. -->
<UserRateCondition op="[all|any|none]"> // Inline example
<Description>user_rate_condition_description</Description>
<!-- Uses the member rate visible UI treatment -->
<AlwaysEligibleMembershipProgram>program_name</AlwaysEligibleMembershipProgram>
<LanguageCode>language_code</LanguageCode>
<MaxUsersPercent>20</MaxUsersPercent> // 20% of users
<!-- Requires <RateIneligibility> -->
<MembershipProgram>program_name</MembershipProgram>
<UserRateCondition reference_id="user_rate_condition_id"/>
<UserCountry>country_code</UserCountry>
<UserDeviceType>[mobile|desktop|tablet]</UserDeviceType>
<UserListId>id</UserListId>
<UserSignedIn>[true|false]</UserSignedIn>
<IsDomestic>[true|false]</IsDomestic>
</UserRateCondition>
<RateIneligibility>
<IneligibilityType>[exact|price_band|existence]</IneligibilityType>
<IneligibilityReason>[program_member]</IneligibilityReason>
</RateIneligibility>
<RateModification>
<HotelAmenity>[free_wifi]</HotelAmenity>
</RateModification>
</RateRule>
</RateRuleSettings>
Atributos
O elemento <RateRule>
tem os seguintes atributos:
Atributo | Obrigatório? | Tipo | Descrição |
---|---|---|---|
id |
Obrigatório | string |
Um identificador exclusivo da regra de tarifa. Esse ID é referenciado usando o atributo
O número máximo de caracteres permitidos é 40. |
Elementos filhos
O elemento <RateRule>
tem os seguintes elementos filhos:
Elemento filho | Obrigatório? | Tipo | Descrição |
---|---|---|---|
<RateIneligibility> |
Optional | <RateIneligibility> |
Especifica valores que determinam o tratamento específico da interface para uma taxa de <MembershipProgram> .
Válido apenas quando |
<UserRateCondition> |
Required | <UserRateCondition> |
Define uma ou mais condições que, quando correspondentes, resultam na veiculação de tarifas condicionais ou exclusivas. As condições podem ser definidas inline usando elementos filhos No entanto, quando um |
<RateModification> |
Optional | <RateModification> |
Modifica o tratamento de interface para tarifas exclusivas. |
<PromoCode> |
Optional | string | Especifica um código a ser associado à tarifa se esta regra de tarifação for
aplicada. Refletida na variável PROMO-CODE da página de destino. |
<UserRateCondition>
Define uma ou mais condições que, quando correspondentes, resultam em tarifas condicionais ou privadas.
O elemento <UserRateCondition>
aparece no seguinte lugar na hierarquia XML das regras de taxa:
+<RateRuleSettings>
+<UserRateCondition>
+<RateRule>
+<UserRateCondition>
+<RateIneligibility>
+<RateModification>
Sintaxe
O elemento <UserRateCondition>
usa a seguinte sintaxe:
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings ...>
<!-- "op" is required for more than one child element -->
<UserRateCondition id="some_id" op="[all|any|none]">
<UserDeviceType>device_type</UserDeviceType>
</UserRateCondition>
<UserRateCondition id="some_other_id" op="[all|any|none]">
<UserDeviceType>device_type</UserDeviceType>
</UserRateCondition>
<!-- At least one RateRule is required -->
<RateRule id="rate_rule_id">
<UserRateCondition reference_id="some_id"/>
</RateRule>
<RateRule id="rate_rule_id">
<UserRateCondition reference_id="some_other_id"/>
</RateRule>
<RateRule id="rate_rule_id">
<UserRateCondition>
<UserDeviceType>device_type</UserDeviceType>
</UserRateCondition>
</RateRule>
<span class="nocode"></RateRuleSettings></span>
Atributos
O elemento <UserRateCondition>
tem os seguintes atributos:
Atributo | Obrigatório? | Tipo | Descrição |
---|---|---|---|
id |
Required (if top-level under
<RateRuleSettings> ) |
string |
Um identificador exclusivo para este |
op |
Optional | enum |
O atributo
|
reference_id |
Optional | string |
Define esse elemento como uma referência a outro Quando
|
Elementos filhos
O elemento <UserRateCondition>
tem os seguintes elementos filhos:
Elemento filho | Obrigatório? | Tipo | Descrição |
---|---|---|---|
<AlwaysEligibleMembershipProgram> |
Optional | string | Especifica que a taxa vai usar o tratamento da interface visível da taxa de membro. O valor desse elemento pode ser qualquer nome de programa de assinatura. |
<Description> |
Optional | string | Descreve o <UserRateCondition> . Isso é para fins de documentação e não afeta as funcionalidades.
|
<LanguageCode> |
Optional | string | Especifica que a taxa será oferecida aos usuários cujo idioma
corresponde a este
código de idioma de duas letras.
Observação: recomendamos usar |
<MaxUsersPercent> |
Optional | float | Especifica que a taxa será oferecida aleatoriamente a essa porcentagem de usuários finais. O valor precisa ser um número inteiro entre 0 e 100. Por exemplo, 20 vai segmentar 20% dos usuários finais. |
<MembershipProgram> |
Optional | string | Especifica que a taxa vai usar um tratamento de interface do usuário do programa de assinatura
conforme determinado pelo Para que O valor de |
<UserRateCondition> |
Optional | <UserRateCondition> |
Define uma ou mais condições que, quando correspondentes, resultam na veiculação de tarifas condicionais ou exclusivas. Um |
<UserCountry> |
Optional | string | Um código de país CLDR, como Especifica que o usuário precisa estar localizado no país especificado. O Google determina o país do usuário final com base no endereço IP dele. |
<UserDeviceType> |
Optional | enum | Define a condição de tipo de dispositivo. Os valores permitidos são:
|
<UserListId> |
Optional | string | O ID da lista de usuários do Google Ads de uma lista de público-alvo.
Essa condição só pode ser usada com
|
<UserSignedIn> |
Optional | boolean | Um booleano que especifica se o usuário precisa fazer login na
Conta do Google. Um valor de true indica que o
usuário precisa fazer login. Um valor de false indica que
o usuário não pode estar conectado. Se você não se importa se o usuário está
conectado ou não, não inclua uma condição <UserSignedIn> .
|
<IsDomestic> |
Optional | boolean | Um booleano que especifica se o usuário precisa ser do mesmo país em que o hotel está localizado. Um valor de true indica que o usuário precisa ser do mesmo país que o hotel. Um valor de false indica que o usuário pode ser de qualquer país, exceto o do hotel. Se você quiser um controle mais refinado, use a condição <UserCountry> .
|
Exemplos de tarifas condicionais
Porcentagem de usuários
O exemplo a seguir especifica que a taxa será oferecida aleatoriamente a 20% dos usuários:
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<RateRule id="20_percent_users">
<UserRateCondition>
<MaxUsersPercent>20</MaxUsersPercent>
</UserRateCondition>
</RateRule>
</RateRuleSettings>
Usuários no Reino Unido e em dispositivos móveis
O exemplo a seguir de tarifas condicionais define uma regra de tarifa que corresponde a
todos os usuários que pesquisam no Reino Unido com um dispositivo móvel usando um
<UserRateCondition>
inline:
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<RateRule id="gb_mobile">
<UserRateCondition op="all">
<UserCountry>GB</UserCountry>
<UserDeviceType>mobile</UserDeviceType>
</UserRateCondition>
</RateRule>
</RateRuleSettings>
Japão e não Japão
O exemplo a seguir de tarifas condicionais mostra uma regra de tarifa que corresponde a usuários no Japão e outra que corresponde a usuários no restante do mundo (RoW):
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<RateRule id="jp">
<UserRateCondition>
<UserCountry>jp</UserCountry>
</UserRateCondition>
</RateRule>
<RateRule id="row_not_jp">
<UserRateCondition op="none">
<UserCountry>jp</UserCountry>
</UserRateCondition>
</RateRule>
</RateRuleSettings>
Qualquer, todos e nenhum
O exemplo a seguir de taxas condicionais mostra como o atributo op
pode ser usado para corresponder a várias condições de maneiras diferentes
usando os valores any
, all
e none
. Por exemplo, como mostrado na condição au_nz
, é possível usar "any" para corresponder a usuários em qualquer um dos vários países. Como mostrado na regra de taxa au_nz_mobile_tablet
, é possível usar all
para exigir que os usuários correspondam a várias condições. A regra de taxa row_mobile_tablet
vai corresponder aos usuários que estão no restante do mundo (linha), excluindo Austrália e Nova Zelândia, e que também correspondem à condição mobile_tablet
.
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<UserRateCondition id="au_nz" op="any">
<UserCountry>AU</UserCountry>
<UserCountry>NZ</UserCountry>
</UserRateCondition>
<UserRateCondition id="mobile_tablet" op="any">
<UserDeviceType>mobile</UserDeviceType>
<UserDeviceType>tablet</UserDeviceType>
</UserRateCondition>
<RateRule id="au_nz_mobile_tablet">
<UserRateCondition op="all">
<UserRateCondition reference_id="au_nz"/>
<UserRateCondition reference_id="mobile_tablet"/>
</UserRateCondition>
</RateRule>
<RateRule id="row_mobile_tablet">
<UserRateCondition op="all">
<UserRateCondition op="none">
<UserRateCondition reference_id="au_nz"/>
</UserRateCondition>
<UserRateCondition reference_id="mobile_tablet"/>
</UserRateCondition>
</RateRule>
</RateRuleSettings>
Exemplos de tarifas exclusivas
Tarifa para membros visível 1
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<RateRule id="member_visible">
<UserRateCondition>
<AlwaysEligibleMembershipProgram>[enter your program here]</AlwaysEligibleMembershipProgram>
</UserRateCondition>
</RateRule>
</RateRuleSettings>
Tarifa para membros visível 2
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<RateRule id="member_visible_es_only">
<UserRateCondition op="all">
<AlwaysEligibleMembershipProgram>[enter your program here]</AlwaysEligibleMembershipProgram>
<UserCountry>es</UserCountry>
</UserRateCondition>
</RateRule>
</RateRuleSettings>
Taxa de lista de público-alvo 1
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<RateRule id="audience_list">
<UserRateCondition>
<UserListId>[enter an audience list id]</UserListId>
</UserRateCondition>
</RateRule>
</RateRuleSettings>
Taxa da lista de público-alvo 2
Este exemplo de tarifas privadas mostra como especificar um tratamento de interface visível para tarifas de assinatura em várias listas de público-alvo:
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<RateRule id="membership_program">
<UserRateCondition op="all">
<AlwaysEligibleMembershipProgram>[enter the program name here]</AlwaysEligibleMembershipProgram>
<UserRateCondition op="any">
<UserListId>[enter one audience list id here]</UserListId>
<UserListId>[enter another audience list id here]</UserListId>
</UserRateCondition>
</UserRateCondition>
</RateRule>
</RateRuleSettings>
<RateIneligibility>
Indica como mostrar o tratamento da interface oculta da tarifa para assinantes. Se não for incluído, o tratamento da interface com a tarifa de assinatura oculta não será exibido.
Para usar <RateIneligibility>
em um <RateRule>
, <MembershipProgram>
também precisa
ser especificado em um elemento <UserRateCondition>
para o <RateRule>
.
O elemento <RateIneligibility>
aparece no seguinte lugar na hierarquia XML de regras de
taxas:
+<RateRuleSettings>
+<UserRateCondition>
+<RateRule>
+<UserRateCondition>
+<RateIneligibility>
+<RateModification>
Sintaxe
O elemento <RateIneligibility>
usa a seguinte sintaxe:
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings ...>
<UserRateCondition ...>
...
</UserRateCondition>
<RateRule ...>
<UserRateCondition ...>
...
<!-- Required when using RateIneligibility -->
<MembershipProgram>program_name</MembershipProgram>
...
</UserRateCondition>
<RateIneligibility>
<IneligibilityType>[exact|price_band|existence]</IneligibilityType>
<IneligibilityReason>[program_member]</IneligibilityReason>
</RateIneligibility>
</RateRule>
</RateRuleSettings>
Atributos
O elemento <RateIneligibility>
não tem atributos.
Elementos filhos
O elemento <RateIneligibility>
tem os seguintes elementos filhos:
Elemento filho | Obrigatório? | Tipo | Descrição |
---|---|---|---|
<IneligibilityType> |
Required | enum | Define como o texto (mostrado ao lado da taxa tachada) vai descrever a taxa oculta. Os valores válidos são:
Saiba mais sobre os tratamentos de interface em Detalhes e exemplos de tarifas exclusivas. |
<IneligibilityReason> |
Required | enum | Os valores válidos são:
|
Exemplos de tarifas exclusivas
Esta seção inclui exemplos de taxa de membros oculta (básico) e exemplos de taxa de membros oculta (várias condições). Você também pode mostrar as tarifas para membros a subconjuntos de usuários. Para mostrar os preços para membros, envie primeiro o preço único para membros do pacote de quarto mais barato, seguido pelos preços dos pacotes restantes. Não é permitido usar vários preços para membros.
Para ver exemplos, consulte Exemplos de tarifas exclusivas.
Exemplos de tarifa para membros oculta (básico)
Desconto exato
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<RateRule id="membership_program">
<RateIneligibility>
<IneligibilityReason>program_member</IneligibilityReason>
<IneligibilityType>exact</IneligibilityType>
</RateIneligibility>
<UserRateCondition>
<MembershipProgram>[enter program name here]</MembershipProgram>
</UserRateCondition>
</RateRule>
</RateRuleSettings>
Desconto na pulseira
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<RateRule id="membership_program">
<RateIneligibility>
<IneligibilityReason>program_member</IneligibilityReason>
<IneligibilityType>price_band</IneligibilityType>
</RateIneligibility>
<UserRateCondition>
<MembershipProgram>[enter program name here]</MembershipProgram>
</UserRateCondition>
</RateRule>
</RateRuleSettings>
Desconto de dica
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<RateRule id="membership_program">
<RateIneligibility>
<IneligibilityReason>program_member</IneligibilityReason>
<IneligibilityType>existence</IneligibilityType>
</RateIneligibility>
<UserRateCondition>
<MembershipProgram>[enter program name here]</MembershipProgram>
</UserRateCondition>
</RateRule>
</RateRuleSettings>
Exemplos de tarifa para membros oculta (várias condições)
op="any"
Taxa de lista de público-alvo para membros + taxa de membros oculta (desconto de existência) para não membros
Este exemplo de tarifas privadas especifica o tipo existence
de tratamento oculto da interface da tarifa para assinantes, que será mostrado aos usuários e não à lista de público-alvo. Os usuários na lista de público-alvo vão ver a taxa de público-alvo.
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<RateRule id="membership_program">
<RateIneligibility>
<IneligibilityReason>program_member</IneligibilityReason>
<IneligibilityType>existence</IneligibilityType>
</RateIneligibility>
<UserRateCondition op="any">
<MembershipProgram>[enter program name here]</MembershipProgram>
<UserListId>[enter you audience list id here]</UserListId>
</UserRateCondition>
</RateRule>
</RateRuleSettings>
op="all"
Tarifa de membros oculta apenas para usuários da lista de público-alvo
Este exemplo de tarifa particular especifica o tipo exact
de tratamento da interface de assinatura oculta, modificado com o texto adicional "mais Wi-Fi gratuito". Essa abordagem de UI será mostrada aos usuários que corresponderem à lista de público-alvo.
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<RateRule id="membership_program_for_audience_list">
<RateIneligibility>
<IneligibilityReason>program_member</IneligibilityReason>
<IneligibilityType>exact</IneligibilityType>
</RateIneligibility>
<RateModification>
<HotelAmenity>free_wifi</HotelAmenity>
</RateModification>
<UserRateCondition op="all">
<MembershipProgram>[enter program name here]</MembershipProgram>
<UserListId>[enter you audience list id here]</UserListId>
</UserRateCondition>
</RateRule>
</RateRuleSettings>
Interface transparente/visível
Este exemplo mostra como especificar a taxa de membros com dois tratamentos de interface (interface transparente e visível) para usuários na lista de público-alvo e taxas ocultas para todos os outros usuários.
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<RateRule id="membership_program">
<RateIneligibility>
<IneligibilityReason>program_member</IneligibilityReason>
<IneligibilityType>existence</IneligibilityType>
</RateIneligibility>
<UserRateCondition op="any">
<MembershipProgram>[enter program name here]</MembershipProgram>
<UserRateCondition op="all">
<UserListId>[enter you audience list id here]</UserListId>
<AlwaysEligibleMembershipProgram>program_name</AlwaysEligibleMembershipProgram>
</UserRateCondition>
</UserRateCondition>
</RateRule>
</RateRuleSettings>
<RateModification>
Modifica o tratamento de interface para tarifas exclusivas.
O elemento <RateModification>
aparece no seguinte lugar na hierarquia XML das regras de taxa:
+<RateRuleSettings>
+<UserRateCondition>
+<RateRule>
+<UserRateCondition>
+<RateIneligibility>
+<RateModification>
Atributos
O elemento <RateModification>
não tem atributos.
Elementos filhos
O elemento <RateModification>
tem os seguintes elementos filhos:
Elemento filho | Obrigatório? | Tipo | Descrição |
---|---|---|---|
<HotelAmenity> |
Optional | enum | Combine com Os valores válidos são:
|
<PriceMultiplier> |
Optional | float | Multiplica esse valor pela taxa básica, tributos e taxas para modificar o preço. Por exemplo, se Isso permite aplicar um desconto a todas as tarifas com uma determinada regra de tarifa. |
Exemplos de tarifas exclusivas
Comodidade do hotel
Tarifa de membro oculta para todos os usuários (descontos por faixa) + Wi-Fi gratuito
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<RateRule id="membership_program">
<RateIneligibility>
<IneligibilityReason>program_member</IneligibilityReason>
<IneligibilityType>price_band</IneligibilityType>
</RateIneligibility>
<RateModification>
<HotelAmenity>free_wifi</HotelAmenity>
</RateModification>
<UserRateCondition>
<MembershipProgram>[enter program name here]</MembershipProgram>
</UserRateCondition>
</RateRule>
</RateRuleSettings>
Multiplicador de preço
Aplicar um desconto de 5% às tarifas para dispositivos móveis no feed de preços
<?xml version="1.0" encoding="UTF-8"?>
<RateRuleSettings>
<RateRule id="mobile">
<RateModification>
<PriceMultiplier>0.95</PriceMultiplier>
</RateModification>
<UserRateCondition>
<UserDeviceType>mobile</UserDeviceType>
</UserRateCondition>
</RateRule>
</RateRuleSettings>