O arquivo XML das regras de tarifação define as regras para veicular tarifas condicionais e privadas. É possível 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 uma
<Rate>
de uma mensagem de transação. Um <Rate>
que
faz referência a um ID de regra de tarifação só é veiculado para os usuários e sob as condições
definidas pela regra de tarifação. Um ID de regra de tarifa também pode ser referenciado 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>
(anteriormente <PrivateRates>
) contém:
Elementos
<UserRateCondition>
que definem as condições a serem atendidas para 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 uma<Rate>
em uma mensagem de transação. Cada<RateRule>
especifica as condições e o tratamento da interface que constroem uma tarifa condicional ou particular.
O elemento <RateRuleSettings>
aparece no seguinte lugar na hierarquia
de regras de taxa do XML:
+<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. Requer um atributo |
<UserRateCondition> |
Optional | <UserRateCondition> |
Define uma ou mais condições que, quando atendidas, resultam em 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 tarifas condicionais.
É recomendável fazer referência a condições predefinidas, como mostrado no exemplo de Usuários de dispositivos móveis.
Usuários de dispositivos móveis
O exemplo de tarifas condicionais a seguir define uma regra de tarifa que corresponde
a todos os usuários de dispositivos móveis, referenciando 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 de tarifas condicionais a seguir define uma regra de tarifa que corresponde
a todos os usuários que pesquisam nos EUA, referenciando 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 tarifa
- Modificações, se houver, no preço e no tratamento da interface para a tarifa
- Uso de tratamentos de IU ocultos para tarifas exclusivas
O elemento <RateRule>
aparece no seguinte local na hierarquia XML das regras de
taxa:
+<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 <MembershipProgram> .
Válido apenas quando |
<UserRateCondition> |
Required | <UserRateCondition> |
Define uma ou mais condições que, quando atendidas, resultam em tarifas condicionais ou exclusivas. As condições podem ser definidas inline usando elementos filhos
No entanto, quando um |
<RateModification> |
Optional | <RateModification> |
Modifica o tratamento da interface para tarifas particulares. |
<PromoCode> |
Optional | string | Especifica um código a ser associado à tarifa se essa regra for aplicada. Refletido na variável da página de destino PROMO-CODE . |
<UserRateCondition>
Define uma ou mais condições que, quando atendidas, resultam em taxas condicionais ou privadas.
O elemento <UserRateCondition>
aparece no seguinte lugar na hierarquia de XML das regras de tarifas:
+<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 esse |
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 de IU visível da taxa de membro. O valor desse elemento pode ser qualquer nome de programa de associação. |
<Description> |
Optional | string | Descreve o <UserRateCondition> . Isso é para fins de documentação
e não afeta os recursos.
|
<LanguageCode> |
Optional | string | Especifica que a tarifa será oferecida a usuários cujo idioma corresponde a este código de idioma de duas letras. |
<MaxUsersPercent> |
Optional | float | Especifica que a tarifa 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 IU do programa de associação
conforme determinado pelo Para que O valor de |
<UserRateCondition> |
Optional | <UserRateCondition> |
Define uma ou mais condições que, quando atendidas, resultam em 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 do 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 ou não fazer login na
Conta do Google. Um valor de true indica que o
usuário precisa ter feito login. Um valor de false indica que
o usuário não precisa estar conectado. Se não for importante saber 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 de tarifas condicionais a seguir especifica que a tarifa 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>
Reino Unido e usuários de dispositivos móveis
O exemplo de tarifas condicionais a seguir 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 de tarifas condicionais a seguir mostra uma regra de tarifa que corresponde a usuários no Japão e outra que corresponde a usuários no resto do mundo (RoW, na sigla em inglês):
<?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 de tarifas condicionais a seguir 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 vários
países. Conforme 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 tarifa row_mobile_tablet
vai corresponder aos usuários que estão no resto do mundo (linha), excluindo a Austrália e a 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 participantes 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 participantes 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 da 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 IU visível para tarifas de membros 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 IU oculta da tarifa de assinatura. Se não for incluído, o tratamento da IU oculta da tarifa de assinatura não será mostrado.
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
de regras de taxa do XML:
+<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 (exibido ao lado da taxa riscada) 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 ocultos de taxa de membro (básico) e de taxa de membro ocultos (várias condições). Também é possível mostrar as tarifas para membros a subconjuntos de usuários. Para conferir exemplos, consulte Exemplos de tarifas exclusivas.
Exemplos de tarifas para membros ocultas (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 de 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 sugestão
<?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 tarifas de membros ocultas (várias condições)
op="any"
Tarifa da lista de público-alvo para membros + tarifa de membros oculta (desconto de existência) para não membros
Este exemplo de tarifas privadas especifica o tipo existence
de tratamento de interface
oculto de tarifa de membro, 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 do 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 para usuários da lista de público-alvo
Este exemplo de tarifa privada especifica o tipo exact
de tratamento de IU oculto da tarifa de membro, modificado com o texto adicional "mais Wi-Fi gratuito". Esse tratamento de interface
será mostrado aos usuários que correspondem à 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 da interface para tarifas particulares.
O elemento <RateModification>
aparece no seguinte lugar na hierarquia de XML das regras de tarifas:
+<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 | Modifica o preço multiplicando esse valor pela taxa básica, tributos
e taxas. 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 de banda) + 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>