Measurement · Guideline

Data Layer

O Data Layer funciona como um contrato entre a aplicação e a camada de mensuração.

01

Problem

UNDERSTAND

Plataformas de marketing não devem depender da estrutura visual da página para entender eventos de negócio. Quando o tracking lê botões, classes CSS e textos, qualquer ajuste de layout pode quebrar a medição sem aviso.

02

Why it matters

UNDERSTAND
  • Redesigns e testes de página deixam de quebrar conversões.
  • O mesmo evento tem o mesmo significado em todas as plataformas.
  • Desenvolvimento e marketing passam a falar pelo mesmo contrato.
  • O que é enviado para cada destino fica explícito e auditável.
03

Principle

UNDERSTAND

Separate the business event from the presentation layer.

A interface muda. O significado do evento de negócio não deveria mudar junto.

04

Approach

APPLY

A interface gera um evento de negócio, o evento é publicado no Data Layer e só então as ferramentas o consomem:

  1. 01 UI Botões, páginas, formulários
  2. 02 Business Event O que aconteceu para o negócio
  3. 03 Data Layer Contrato de dados
  4. 04 GTM Lê o contrato, não a interface
  5. 05 Platforms GA4, Google Ads, Meta
05

Implementation

APPLY

Data Contract V1. Exemplo conceitual. Nenhum push é feito nesta etapa.

{
  event: "generate_lead",
  event_id: "b7c1e9a2-4f3d-4c1a-9e2b-5d8f6a0c3e71",
  event_timestamp: "2026-09-15T14:32:08.120Z",

  page: {
    path: "/labs/lead-demo",
    title: "Lead Demo"
  },

  form: {
    id: "lead_demo",
    name: "Lead Demo"
  },

  offer: {
    id: "portfolio_conversation",
    name: "Conversa sobre projeto"
  }
}
FieldRuleRequired
eventEvento semântico, em snake_case, definido na taxonomia.Sempre
event_idIdentificador único da ocorrência; rastreabilidade e futura deduplicação.Sempre
event_timestampMomento do evento, ISO 8601 em UTC.Sempre
pageContexto da página: path e title.Sempre (exceto consent_update)
formContexto do formulário: id e name.form_start, generate_lead
offerContexto da oferta: id e name.Quando aplicável
ctaContexto do CTA: id e location.cta_click
consentEstado por finalidade: granted ou denied.consent_update

event_data ≠ user_data. Dados de evento e dados pessoais são camadas diferentes.

event_data

Contexto do evento: page, form, offer, cta.

Pode seguir para analytics (GA4) como parâmetros comuns.

user_data

Dados pessoais: e-mail, telefone, nome.

Nunca como parâmetros comuns no GA4. Uso futuro e controlado apenas para Enhanced Conversions, Meta CAPI e CRM, sempre respeitando consentimento, destino, necessidade e políticas da plataforma.

Naming convention.

ScopePatternExamples
Events snake_case page_view
form_start
generate_lead
qualify_lead
GTM Tags TAG | Platform | Purpose TAG | GA4 | Generate Lead
GTM Triggers TRG | Type | Event TRG | Custom Event | generate_lead
GTM Variables VAR | Type | Name VAR | DLV | event_id
06

Validation

PROVE

Antes de qualquer tag consumir o contrato, cada push precisa passar por estas verificações:

  • event existe na taxonomia.
  • event_id é único por ocorrência.
  • event_timestamp está em ISO 8601 UTC.
  • Os contextos obrigatórios do evento estão presentes.
  • Nenhum dado pessoal aparece em event_data.

Prova

A validação será demonstrada com o push real no milestone Consent + Lead Demo e inspecionada no GTM Preview no milestone GTM Web + GA4.

07

Business Impact

PROVE
  • Menos retrabalho: mudanças visuais não exigem refazer o tracking.
  • Dados consistentes entre GA4, Google Ads e Meta.
  • Governança clara sobre dados pessoais e destinos.
  • Base pronta para server-side e deduplicação com event_id.
08

Failure Modes

PROVE
  1. 1

    DOM selector = business truth

    Mudanças visuais quebram o tracking sem nenhum aviso.

  2. 2

    PII inside analytics events

    Dados pessoais em eventos de analytics são governança inadequada.