O contexto que seus eventos perdem e como a Amplitude resolve

abr 20, 2026

escrito por Victor Henri Vargas (Solutions Architect)

 

Você já passou por isso: um usuário clica em uma campanha, navega por três telas, adiciona ao carrinho e compra. Aí alguém pergunta de onde veio aquela compra — e o evento não tem a menor ideia.

Para times de produto e marketing, essa é uma frustração diária. Perguntas como “qual módulo da homepage gera mais receita por produto, não por sessão?” ou “quais termos de busca interna realmente convertem, e com qual ticket médio?” surgem o tempo todo. E a instrumentação tradicional de analytics torna essas respostas surpreendentemente difíceis de obter. A Amplitude lançou recentemente os Persisted Properties para mudar isso. Aqui está o que resolve, como funciona e onde se encaixa.

O Problema: O Contexto Que Desaparece Entre os Eventos

O cenário é familiar: um usuário clica em uma campanha, navega por três telas, adiciona ao carrinho e compra. Na hora de analisar, o evento de compra não sabe de onde o usuário veio.

Para a atribuição de aquisição por campanha, isso é historicamente resolvido por MMPs como Adjust ou AppsFlyer. Mas para o contexto in-app — qual página de entrada, qual termo de busca, qual módulo de descoberta levou à conversão — não existe MMP. Essa responsabilidade recai inteiramente sobre o time de produto e analytics, seja por uma implementação de propagação customizada, um modelo de atribuição construído internamente, ou alguma combinação de user properties e lógica de data lake que acumula complexidade sem que ninguém tenha planejado isso.

amplitude persisted properties

As soluções alternativas sempre tiveram um custo alto. Propagar contexto em todos os eventos acopla o tracking e exige manutenção constante. User properties gravam estado permanente no perfil do usuário para algo que deveria ser temporário — gerando perfis inflados, lógica dispersa de set vs. setOnce, e nenhuma forma de distinguir first-touch de last-touch.

A Solução: Persisted Properties

Persisted Properties são propriedades de eventos que a Amplitude estende automaticamente para eventos subsequentes, com base em regras de alocação e expiração — tudo computado no momento da consulta.

amplitude persisted properties

Digamos que você instrumenta page_path apenas na visualização de página, mas configura uma Persisted Property chamada “Página de Entrada” com alocação Original e expiração por sessão. A partir daí, qualquer evento nessa sessão — adicionar ao carrinho, compra, cadastro — carrega automaticamente o valor de Página de Entrada, mesmo que esses eventos nunca tenham sido instrumentados com essa propriedade.

amplitude persisted properties

Nenhum dado é alterado na ingestão. Nenhuma user property é criada. A Amplitude avalia as regras no momento da consulta e preenche o valor retroativamente.

Persisted Properties vs. User Properties

Essa é a fonte de confusão mais comum. Imagine um time tentando rastrear qual método de descoberta levou a uma compra — eles usam uma user property, sobrescrevem a cada nova interação e perdem todos os dados de first-touch. Esse é exatamente o problema que as Persisted Properties resolvem.

persistent properties

User Properties descrevem quem é o usuário. Persisted Properties descrevem o que levou o usuário a agir.

Modelos de Alocação e Expiração

Original (First Touch) captura o primeiro valor observado e o mantém por toda a janela de expiração. Responde: de onde o usuário veio?

Most Recent (Last Touch) reflete o último valor antes do evento de conversão. Responde: qual foi o último estímulo antes da ação?

Combinar ambos na mesma Data Table permite responder “de onde vieram” e “o que os convenceu” simultaneamente.

Para expiração: baseada em sessão funciona para contexto dentro de uma visita. Tempo personalizado — até 30 dias — cobre contexto que precisa sobreviver entre sessões, essencial para campanhas de longa consideração em fintechs, seguros ou B2B.

Merchandising e Descoberta de Produtos

Se há um cenário onde as Persisted Properties entregam valor desproporcional, é na atribuição de produto por método de descoberta.

Um app com catálogo tem múltiplos canais de descoberta — busca interna, recomendações, módulos da homepage, deep links. Quando um usuário adiciona três produtos ao carrinho, cada um descoberto por um canal diferente, “qual canal gera mais receita?” é quase impossível de responder da forma tradicional. Propagar discovery_method manualmente é frágil. Uma user property sobrescreve com o último valor. A modelagem no data lake funciona, mas o ciclo de feedback é lento demais para decisões operacionais.

amplitude persistent properties

Com Persisted Properties:

  1. Crie uma Persisted Property chamada “Método de Descoberta Mais Recente”, vinculada à propriedade de evento discovery_method, com alocação Most Recent e expiração por sessão.
  2. Ative a atribuição por item vinculada a product.item_id.
  3. Selecione eventos que contenham ambos (view_item_details, add_to_cart).

Cada produto retém seu próprio Método de Descoberta. A receita é atribuída de forma consistente com o modelo definido — last-touch por item. Não resolve multi-touch, mas para decisões operacionais de merchandising é um avanço significativo em relação a nenhuma atribuição ou atribuição por sessão.

Isso viabiliza: ROI por módulo da homepage, monetização de busca, testes A/B de layouts de recomendação com impacto em receita, e decisões de catálogo baseadas em canal de descoberta.

O Trade-off Que Vale Conhecer

Antes de migrar qualquer lógica crítica, aqui está a comparação honesta:

persistent properties

Para times com um data lake maduro, as Persisted Properties funcionam melhor como uma ferramenta exploratória. Para times que operam principalmente dentro da Amplitude, pode ser a solução definitiva.

Um risco de governança que vale destacar: a lógica de atribuição migra do código para as Configurações de Dados da Amplitude. Sem um registro para cada Persisted Property — nome, origem, alocação, expiração, responsável — definições conflitantes vão surgir.

Limitações Atuais

A funcionalidade está em beta, o que importa para a forma como você a adota:

  • Apenas Data Tables — sem funis, coortes ou outros gráficos ainda
  • Janela máxima de 30 dias
  • Sem exportação — risco de divergência entre as métricas da Amplitude e do data warehouse
  • Beta — não migre lógica crítica sem um fallback

Por Onde Começar

Configure Página de Entrada (Original, sessão) — se page_path já está sendo capturado, os resultados aparecem no mesmo dia. Se há um catálogo, teste Método de Descoberta com atribuição por item em seguida.

Mantenha as user properties existentes em paralelo. Alinhe com o time de data lake que essas métricas não serão reproduzíveis fora da Amplitude. A configuração é inteiramente nas Configurações de Dados da Amplitude — sem deploy, sem refatoração.

Você já enfrentou desafios semelhantes com atribuição in-app ou análise de descoberta de produtos? Adoraríamos saber como seu time aborda isso — vamos trocar ideias.

Referência: Persisted Properties — Amplitude Docs

Related Articles
Catálogos do Braze: automatize notificações de estoque e preço sem esforço de manutenção

Catálogos do Braze: automatize notificações de estoque e preço sem esforço de manutenção

Os seus dados já estão lá. Agora eles podem responder.

Os seus dados já estão lá. Agora eles podem responder.

Você está deixando os dados da sua loja Shopify fora do Braze?

Você está deixando os dados da sua loja Shopify fora do Braze?