Measurement · Guideline
Data Layer
O Data Layer funciona como um contrato entre a aplicação e a camada de mensuração.
Problem
UNDERSTANDPlataformas 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.
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.
Principle
UNDERSTANDSeparate the business event from the presentation layer.
A interface muda. O significado do evento de negócio não deveria mudar junto.
Approach
APPLYA interface gera um evento de negócio, o evento é publicado no Data Layer e só então as ferramentas o consomem:
- 01 UI Botões, páginas, formulários
- 02 Business Event O que aconteceu para o negócio
- 03 Data Layer Contrato de dados
- 04 GTM Lê o contrato, não a interface
- 05 Platforms GA4, Google Ads, Meta
Implementation
APPLYData 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"
}
} | Field | Rule | Required |
|---|---|---|
event | Evento semântico, em snake_case, definido na taxonomia. | Sempre |
event_id | Identificador único da ocorrência; rastreabilidade e futura deduplicação. | Sempre |
event_timestamp | Momento do evento, ISO 8601 em UTC. | Sempre |
page | Contexto da página: path e title. | Sempre (exceto consent_update) |
form | Contexto do formulário: id e name. | form_start, generate_lead |
offer | Contexto da oferta: id e name. | Quando aplicável |
cta | Contexto do CTA: id e location. | cta_click |
consent | Estado 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.
| Scope | Pattern | Examples |
|---|---|---|
| Events | snake_case | page_viewform_startgenerate_leadqualify_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 |
Validation
PROVEAntes de qualquer tag consumir o contrato, cada push precisa passar por estas verificações:
eventexiste na taxonomia.event_idé único por ocorrência.event_timestampestá 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.
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.
Failure Modes
PROVE- 1
DOM selector = business truth
Mudanças visuais quebram o tracking sem nenhum aviso.
- 2
PII inside analytics events
Dados pessoais em eventos de analytics são governança inadequada.