Changelog do DataLayer
Este documento reúne o histórico de mudanças relevantes nos eventos do data layer do Motor Niara (OTA Builder).
O objetivo é ajudar quem consome esses eventos (Google Tag Manager, Google Analytics, BI) a entender o que mudou entre uma configuração e outra, principalmente ao migrar de otabuilder_v1 para otabuilder_v2 ou ao investigar diferenças de payload entre períodos.
As referências entre parênteses (ex: `#222243`) apontam para o tíquete/US interno que originou a mudança. O campo **Eventos** indica quais eventos do data layer tiveram o payload afetado.
[13/07/2026] - Correções e novos eventos
Correção de nomenclatura (Eventos:
ecommerceChain,ecommerceSearch,ecommerceAddToCart,ecommerceRemoveFromCart,ecommerceCheckout,ecommercePurchase)O campo
isRemark, que havia sido introduzido comoisremark(minúsculo) nesses eventos, é padronizado de volta paraisRemark(camelCase) (#262119).Correção do
item_idno Purchase (Evento:ecommercePurchase)O
item_idda acomodação estava usando o localizador da reserva; corrigido para usar o ID do tipo de quarto (roomTypeId), consistente com o significado deitem_idnos demais eventos (#262114).Correção no cálculo de
discount(Eventos:ecommerceSearch,ecommerceAddToCart,ecommerceRemoveFromCart,ecommerceCheckout(Passos 1, 2 e 3),ecommercePurchase)O desconto estava somando o
discountBreakdownde todas as reservas do pedido em vez de apenas da reserva/item atual. Padronizado: todos esses eventos agora calculamdiscountsomando odiscountBreakdowndo próprio item; o campo legadodiscountsdeixa de ser usado como fonte desse valor (#262115).Novo evento
login(Evento:login, novo)Disparado quando o usuário realiza login no Motor Niara (por código, usuário/senha ou provedor de identidade), com
methodindicando o meio utilizado (CODE,OAUTH2,USER_PASSWORDouNIARA_ACCOUNT) (#262120).Novo evento
sign_up(Evento:sign_up, novo)Disparado quando o usuário se cadastra via formulário interno da aplicação, com
methodindicando o meio de cadastro (hoje,NIARA_ACCOUNT) (#262120).Evento
exceptioncom contexto de hotel (Evento:exception)O evento de erro passa a incluir
hotelId,hotelName,chainId,chainNameeisRemark, que antes não eram enviados nesse evento (#262117).
[09/2025 - 06/2026] Evolução do otabuilder_v2
Atribuição cross-domain para o widget
Novas funções para capturar e propagar
clientId/sessionIddo GA4 entre o site do hotel e o Motor Niara, sem alterar os eventos de e-commerce existentes (#235506, 02/10/2025).isRemarkpassa a ser preenchido de fato (Eventos:ecommerceChain,ecommerceSearch,ecommerceAddToCart,ecommerceRemoveFromCart,ecommerceCheckout(Passos 1, 2 e 3),ecommercePurchase)Antes sempre
null, o indicador de remarketing passa a ser enviado corretamente nesses eventos (#236475, 28/11/2025).Suporte a buscas "Long Stay" (Eventos:
ecommerceChain,ecommerceSearch)numberAdults,numberChildrenenumberRoomspassam a retornarnull(em vez de erro) quando a busca não usa o formato tradicional de quartos (#251991, 24/03/2026).Rastreamento de experiências (add-ons) (Eventos:
ecommerceAddToCart,ecommerceRemoveFromCart,ecommerceCheckout(Passos 1, 2 e 3),ecommercePurchase)Novos disparos de
ecommerceAddToCart/ecommerceRemoveFromCartcomitem_category: "EXTRA"para experiências adicionadas ao carrinho; os itens de experiência passam a aparecer também nos eventos de checkout e no Purchase (#253376, 16/04/2026).Múltiplas formas de pagamento (Eventos:
ecommerceCheckout(Passo 3),ecommercePurchase)ecommerce.payment_typepassa a concatenar todas as formas de pagamento usadas com" / "(antes considerava só a primeira), somando"POINTS"quando há uso de pontos/cashback; novo campoecommerce.paymentsdetalha cada pagamento (type,value,currency) (#253376, 16/04/2026).Preço do item como média diária (Eventos:
ecommerceChain,ecommerceSearch)pricepassa a representar o preço médio por noite (antes era o valor total) equantitypassa a refletir o número real de noites (antes fixo em1) (#253376, 16/04/2026).Correção no evento de pagamento (Passo 2) (Evento:
ecommerceCheckout(Passo 2 - Pagamento))Itens de experiência não estavam sendo enviados corretamente por um parâmetro ausente na função; corrigido, além de completar campos que faltavam nesses itens (
niaraChainId,checkIn/checkOut) (#257197, 29/05/2026).Novo evento
ecommerceNoResults(Evento:ecommerceNoResults, novo)Disparado quando uma busca (ou refresh do carrinho) não retorna quartos disponíveis, com
reason(motivo da indisponibilidade) edeviceType(#260090, 26/06/2026).ecommerceNoResultscom dados reais (Evento:ecommerceNoResults)deviceType(mobile/desktop) ereason[]deixam de ser placeholders e passam a refletir a restrição de disponibilidade real retornada pelo motor, com fallback genérico (status/code"NO_RESULTS") quando não há detalhamento (#260090, 03/07/2026).
[05/2025 - 09/2025] Introdução do otabuilder_v2
Antes desse período, o data layer só existia na versão otabuilder_v1, com nomes de evento fixos e um conjunto bem mais limitado de dados do usuário.
Nova versão configurável do datalayer (Eventos:
ecommerceHomepage,ecommerceChain,ecommerceSearch,ecommerceCheckout(Passos 1, 2 e 3),ecommercePurchase,exception)O campo
versionBE, antes fixo em"otabuilder_v1", passa a ser dinâmico (setDatalayerVersion), permitindo configurarotabuilder_v2por storefront no cadastro de páginas (#229156).Renomeação de eventos de busca (Eventos:
ecommerceChain,ecommerceSearch)Com
otabuilder_v2ativo: o evento antes chamadoecommerceSearch(listagem por destino/cadeia) passa a se chamarecommerceChain, e o eventoecommerceHotelDetails(detalhes do hotel) passa a se chamarecommerceSearch(#222243).Ajustes em
ecommercePurchase,ecommerceAddToCart,ecommerceRemoveFromCarteecommerceCheckout(Eventos:ecommerceChain,ecommerceSearch,ecommerceAddToCart,ecommerceRemoveFromCart,ecommerceCheckout(Passos 1, 2 e 3),ecommercePurchase)Reorganização de campos e comentários para deixar claro o que é enviado apenas pela Niara (
niaraHotelId,niaraChainId) versus o que segue o formato originado no Omnibees (#222243).Envio do localizador da reserva (Evento:
ecommercePurchase)ecommerce.transaction_id(eitem_idda acomodação no Purchase) passam a usar o localizador real da reserva, inclusive em reservas com múltiplos quartos (#222914).Campo
ecommerce.valueno Checkout e consistência de dados do comprador (Eventos:ecommerceCheckout(Passos 1, 2 e 3))Novo campo
ecommerce.valueno início do checkout e maior consistência dos dados do comprador entre os três passos (#222916).Expansão massiva dos dados de usuário (Eventos:
ecommerceChain,ecommerceSearch,ecommerceAddToCart,ecommerceCheckout(Passos 1, 2 e 3),ecommercePurchase)Novos campos
userTel,userNationality,userCountry,userAddressCity/Complement/District/Number/State/Street/ZipCode,userDob,userPassport,userPersonId,userRg,userRgOrgaoEmissor,userVatNumber,userBrandName,userCorporateName,userInscricaoMunicipal,userInscricaoEstadualpassam a ser enviados (quando disponíveis), centralizados na funçãobuildBuyerData(#232666).userDoceuserTeldeixam de ser mascarados (Eventos:ecommerceChain,ecommerceSearch,ecommerceAddToCart,ecommerceCheckout(Passos 1, 2 e 3),ecommercePurchase)Na função central de dados do comprador, alguns eventos que antes mascaravam CPF/telefone (
maskDocument/maskPhone) de forma inconsistente passam a enviar o valor sem máscara (#232666).