O arquivo XML de regras de tarifação define as regras para veicular tarifas condicionais e tarifas exclusivas. É possível adicionar ou editar um arquivo XML de regras de tarifação na página Regras de tarifação da Central para Hotéis. Para mais informações sobre tarifas condicionais e exclusivas, consulte Tarifas condicionais e exclusivas.
Cada regra de tarifação requer 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 é exibido apenas para os usuários e nas condições
definidas pela regra de tarifação. Um ID de regra de tarifação também pode ser referenciado usando uma variável em um URL da página de destino.
<RateRuleSettings>
O elemento raiz do arquivo XML das regras de tarifação. O
elemento <RateRuleSettings>
(anteriormente <PrivateRates>
) contém:
Elementos
<UserRateCondition>
que definem as condições de correspondência 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 tarifação para referência em um<Rate>
em uma Mensagem de transação. Cada<RateRule>
especifica as condições e o tratamento da interface que geram uma tarifa condicional ou particular.
O elemento <RateRuleSettings>
aparece no seguinte local na hierarquia XML de
regras de tarifação:
+<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, as modificações e a qualificação para
disponibilizar uma tarifa condicional ou exclusiva. Requer um atributo |
<UserRateCondition> |
Optional | <UserRateCondition> |
Define uma ou mais condições que, quando correspondidas, 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 tarifas condicionais.
É recomendável referenciar condições predefinidas, conforme mostrado no exemplo Usuários de dispositivos móveis.
Usuários de dispositivos móveis
O exemplo de tarifas condicionais abaixo define uma regra de tarifação 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 nos EUA
O exemplo de tarifas condicionais a seguir define uma regra de tarifação que corresponde
a todos os usuários que pesquisam nos EUA, fazendo 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 veiculação de uma taxa
- Modificações, se houver, no preço e no tratamento da interface referente à taxa
- Uso de tratamentos de interface ocultos para tarifas exclusivas
O elemento <RateRule>
aparece no seguinte local na hierarquia XML de regras
de tarifação:
+<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ção. Esse ID é referenciado usando o
atributo O número máximo permitido de caracteres é 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 de interface específico para uma
taxa de <MembershipProgram> .
Válida somente quando |
<UserRateCondition> |
Required | <UserRateCondition> |
Define uma ou mais condições que, quando correspondidas, resultam na veiculação de tarifas condicionais ou exclusivas. As condições podem ser definidas in-line usando elementos filhos No entanto, quando um |
<RateModification> |
Optional | <RateModification> |
Modifica o tratamento da interface para tarifas exclusivas. |
<PromoCode> |
Optional | string | Especifica um código a ser associado à tarifa caso essa regra seja
aplicada. Refletido na variável de página de destino PROMO-CODE . |
<UserRateCondition>
Define uma ou mais condições que, quando correspondidas, resultam na veiculação de tarifas condicionais ou exclusivas.
O elemento <UserRateCondition>
aparece no seguinte local na
hierarquia XML de regras de tarifação:
+<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 usará o tratamento de interface visível da taxa de associação. O valor desse elemento pode ser qualquer nome de programa de assinatura. |
<Description> |
Optional | string | Descreve o <UserRateCondition> . Esse texto é apenas para fins de documentação e não afeta os recursos dele.
|
<LanguageCode> |
Optional | string | Especifica que a tarifa será oferecida aos usuários com idioma correspondente a esse código de idioma de duas letras. |
<MaxUsersPercent> |
Optional | float | Especifica que a taxa vai ser oferecida aleatoriamente para essa porcentagem de usuários finais. O valor precisa ser um número inteiro entre 0 e 100 (inclusive). Por exemplo, 20 segmentarão 20% dos usuários finais. |
<MembershipProgram> |
Optional | string | Especifica que a tarifa vai usar um tratamento de interface do programa de assinatura,
conforme determinado pelo Para que O valor de |
<UserRateCondition> |
Optional | <UserRateCondition> |
Define uma ou mais condições que, quando correspondidas, resultam na veiculação de tarifas condicionais ou exclusivas. Uma |
<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 pelo endereço IP. |
<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 para 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 estar conectado à Conta do Google. Um valor de true indica que o
usuário precisa estar conectado. Um valor de false indica que
o usuário não pode estar conectado. Se o usuário está
conectado ou desconectado, não inclua uma condição
<UserSignedIn> .
|
<IsDomestic> |
Optional | boolean | Um booleano que especifica se o usuário precisa ou não 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 do hotel. Um valor de false indica que o usuário pode ser de qualquer país que não seja 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>
Usuários de dispositivos móveis e no Reino Unido
O exemplo de tarifas condicionais a seguir define uma regra de tarifação que corresponde
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>
no Japão, e não no Japão
O exemplo de tarifas condicionais a seguir mostra uma regra de tarifação 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 um, 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 diferentes maneiras
usando os valores any
, all
e none
. Por exemplo, conforme mostrado na condição au_nz
, é possível usar qualquer um para corresponder usuários em vários países. Conforme mostrado na regra de tarifação au_nz_mobile_tablet
, é possível usar
all
para exigir que os usuários correspondam a várias condições. A regra de tarifação row_mobile_tablet
vai corresponder a usuários que estão no restante do mundo (linha), excluindo Austrália e Nova Zelândia, e que também correspondam à 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 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 de lista de público-alvo 2
Este exemplo de tarifas exclusivas mostra como especificar um tratamento de interface visível da tarifa de associação para 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 exibir o tratamento de interface oculto da taxa de associação. Se não for incluído, o tratamento de interface oculto da taxa de associação não vai ser mostrado.
Para usar <RateIneligibility>
em um <RateRule>
, <MembershipProgram>
também precisa ser especificado em um elemento <UserRateCondition>
para a <RateRule>
.
O elemento <RateIneligibility>
aparece no seguinte local na hierarquia XML
de regras de tarifação:
+<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) descreverá a taxa oculta. Os valores válidos são:
Saiba mais sobre 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 tarifas de membros (básicos) e exemplos ocultos de taxas de membros (várias condições). Você também pode mostrar suas tarifas para subconjuntos de usuários. Para conferir alguns exemplos, consulte Exemplos de tarifas exclusivas.
Exemplos de tarifas de associação 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 para pulseiras
<?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 tarifas de associação ocultas (várias condições)
op="qualquer"
Taxa da lista de público-alvo para membros + tarifa de associação oculta (desconto por existência) para não participantes
Este exemplo de tarifas exclusivas especifica o tipo existence
de tratamento de interface oculto da tarifa de associação, 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 participantes oculta apenas para usuários da lista de público-alvo
Este exemplo de tarifa exclusiva especifica o tipo exact
de tratamento de interface oculto da
taxa de associação, modificado com o texto extra "mais Wi-Fi gratuito". Esse tratamento de interface será exibido 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 tarifa de associação com dois tratamentos de interface (interface transparente e visível) para usuários na lista de público-alvo e tarifas ocultas para todos os outros.
<?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 exclusivas.
O elemento <RateModification>
aparece no seguinte local na
hierarquia XML de regras de tarifação:
+<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ção. |
Exemplos de tarifas exclusivas
Comodidade do hotel
Tarifa de membros oculta para todos os usuários (descontos para bandas) + 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 5% de desconto à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>