Widgets de intenção de saída
Pro FeatureCapture os visitantes antes que eles vão embora. Os widgets de intenção de saída são pop-ups definidos pelo cliente, disparados no exato momento em que um visitante sinaliza que está prestes a abandonar a página — com análise integrada de cada impressão, clique e fechamento.
Os widgets de intenção de saída estão disponíveis nos planos Pro, Scale e Enterprise. Atualize seu plano para ativar este recurso.
Visão geral
Um widget é uma pequena sobreposição configurável renderizada pelo script de rastreamento da Zenovay quando um sinal de intenção de saída é detectado. Você desenha o conteúdo e define a segmentação, e a Zenovay cuida da entrega, do limite de frequência e da análise.
Quando os widgets disparam
O rastreador usa dois sinais de saída específicos por dispositivo:
| Dispositivo | Sinal |
|---|---|
| Desktop | Evento mouseleave quando o cursor cruza a borda superior do viewport |
| Mobile / tablet | Rolagem rápida para cima (gesto back-to-top) ou retorno da página a partir de uma aba em segundo plano via visibilitychange |
Ambos os sinais têm anti-rebote e respeitam o limite de frequência configurado por widget, de modo que o mesmo visitante não veja o mesmo widget duas vezes em uma sessão.
Widgets exibidos pelo rastreador rodam no lado do cliente. No modo cookieless, o rastreador não persiste IDs de visitante entre carregamentos de página, então a desduplicação entre abas é apenas de melhor esforço — um único visitante que abrir a mesma página em duas abas pode ver o widget em cada uma.
Configuração
Os widgets são gerenciados inteiramente pelo painel da Zenovay — não são necessárias alterações de código além de ter o script de rastreamento já instalado.
- Vá ao seu painel e selecione o site ao qual deseja adicionar um widget.
- Abra a aba Widgets.
- Clique em New widget.
- Percorra o construtor de quatro etapas.
O construtor em 4 etapas
Etapa 1 — Conteúdo
Defina o que o widget exibe.
- Título — o cabeçalho (máx. 120 caracteres)
- Corpo — o texto de apoio (máx. 500 caracteres, texto puro)
- CTA principal — rótulo do botão e URL de destino (ou um nome de
goal_eventse quiser registrar a conclusão de uma meta em vez de um redirecionamento)
Etapa 2 — Segmentação
Defina quem vê o widget.
- Padrão de página — em quais URLs o widget é executado (consulte Semântica de segmentação)
- País — lista de códigos ISO 3166-1 alfa-2 (por exemplo
US,DE,FR); deixe em branco para todos os países - Dispositivo — um ou mais entre
desktop,mobile,tablet - Limite de frequência — número máximo de exibições por visitante em N dias (por exemplo, uma vez a cada 7 dias)
- Mínimo de visitas — disparar somente a partir da N-ésima visualização da página pelo visitante neste site (requer modo não-cookieless)
Etapa 3 — Design
Personalize o widget para combinar com sua marca.
- Posição, largura, raio de borda (consulte Enumerações de design)
- Cores de fundo, texto e botão (hex)
- Imagem com posição selecionável (topo, esquerda, direita ou fundo de página inteira)
- Botão secundário (opcional) — ou uma ação passiva
dismissou umlinksecundário
Etapa 4 — Programação
- Status —
draft,activeoupaused - Data de início / Data de fim (opcional) para campanhas com prazo
Clique em Salvar e o widget vai ao ar em menos de um minuto (o rastreador recarrega a lista de widgets ativos no próximo carregamento de página).
Semântica de segmentação
Padrão de página
Por padrão, o campo de padrão de página é uma correspondência por substring com o pathname do visitante.
| Padrão | Corresponde a |
|---|---|
/blog | /blog, /blog/post-1, /de/blog/x, /team-blog/about |
/checkout | /checkout, /checkout/payment, /api/checkout/v2 |
* | todas as páginas |
Para correspondência mais precisa, use globs explícitos:
| Padrão | Corresponde a |
|---|---|
/blog/* | /blog/post-1, /blog/category/x (NÃO /de/blog/...) |
/checkout/*/payment | /checkout/abc/payment, /checkout/xyz/payment |
/products/[id] | /products/123, /products/abc-def |
Substring é o padrão porque a maioria dos clientes espera que "/blog" corresponda a todas as páginas de blog independentemente do prefixo de idioma. Use globs (*) quando precisar ancorar o início ou o fim do caminho.
País
Códigos ISO 3166-1 alfa-2 separados por vírgula:
US,CA,GB,DE,FR
A detecção de país usa a geolocalização do IP do visitante no momento do carregamento da página. Visitantes da UE com GPC ativado não são enriquecidos, então a segmentação por país recai em "todos os países" para esses visitantes.
Dispositivo
Escolha um ou mais dos três grupos:
desktop
mobile
tablet
O rastreador classifica os dispositivos pelo User-Agent e pela largura do viewport, idêntico ao restante do painel.
Limite de frequência
Definido como max_shows_per_n_days. O rastreador armazena uma marcação de tempo de exibição por widget no registro do visitante (no servidor, nunca em cookies/localStorage). Enquanto frequency_cap_n_days ainda não tiver decorrido desde o último evento shown para esse par widget × visitante, o widget é suprimido.
Mínimo de visitas
Definir min_visit_count > 1 exige que o rastreador lembre quantas vezes esse visitante carregou o site. Como o rastreador da Zenovay roda cookieless por padrão enquanto o consentimento não tiver sido dado, essa regra de segmentação recai silenciosamente em "disparar na primeira visita" para qualquer visitante em modo cookieless.
Se você depende dessa regra, garanta que o rastreador seja carregado com data-cookieless="false" (ou seja, após o consentimento); caso contrário, a regra é inócua para a vasta maioria do tráfego da UE.
Enumerações de design
Os campos de design são enumerações travadas por segurança — a API só aceita os valores abaixo. Isso protege todo widget servido pela Zenovay contra injeção de CSS.
Posição
center
top-banner
bottom-banner
top-right
top-left
bottom-right
bottom-left
top-banner e bottom-banner são faixas de largura total. As quatro posições de canto são cartões menores e fixos.
Largura
sm (máx. 320px)
md (máx. 480px)
lg (máx. 640px)
xl (máx. 800px)
As larguras são responsivas — encolhem em viewports menores e nunca excedem a tela do visitante.
Raio de borda
none
sm
md
lg
full
full arredonda o widget até virar uma pílula (só faz sentido com uma posição em banner).
Posição da imagem
top
left
right
background
background coloca a imagem como fundo de página inteira com um véu de contraste atrás do texto.
Ação secundária
dismiss
link
dismiss fecha o widget sem registrar um clique. link registra um evento secondary_clicked e navega para a URL configurada.
Análise
Cada widget registra quatro tipos de eventos:
| Evento | Quando dispara |
|---|---|
shown | O widget ficou visível no viewport |
clicked | O visitante clicou no CTA principal |
secondary_clicked | O visitante clicou no botão secundário (quando configurado como link) |
dismissed | O visitante fechou o widget sem clicar |
Visão de detalhe
Abra qualquer widget pela aba Widgets para ver:
- CTR —
clicked / shown, com comparação à média do site - Gráfico diário — barras diárias de impressão / clique / fechamento com sparklines
- Funil de conversão —
shown → clicked → goal completed(quando o CTA aponta para uma meta rastreada) - Páginas principais — as URLs em que o widget mais disparou, com CTR por página
- Desdobramento por dispositivo — divisão desktop / mobile / tablet para impressões vs cliques
Todas as métricas respeitam os mesmos filtros de data e segmento do restante do painel.
Privacidade
Os eventos de análise dos widgets usam o mesmo pipeline de eventos cookieless do restante da Zenovay:
- O ID do visitante é um hash SHA-256 com sal diário calculado no servidor sobre (sub-rede IP + User-Agent + sal do dia). Nenhum cookie e nenhum
localStorageé gravado no navegador do visitante. - A desduplicação entre abas (para que o mesmo visitante não veja o widget duas vezes em duas abas) é apenas de melhor esforço no modo cookieless — sem armazenamento persistente, duas abas são indistinguíveis de dois visitantes com a mesma impressão IP/UA.
- Visitantes com Global Privacy Control (
Sec-GPC: 1) não são enriquecidos — os campos de país e B2B são descartados no servidor, mas o widget continuará disparando se o padrão de página, o dispositivo e o limite de frequência forem atendidos. - Nenhum conteúdo de widget, nenhum snapshot do DOM e nenhuma entrada de visitante é coletada. Apenas os quatro tipos de eventos listados acima.
Se precisar de uma segmentação mais estrita (por exemplo, exibir apenas para usuários autenticados), condicione o widget a um evento personalizado emitido a partir do código da sua própria aplicação, em vez de confiar em persistência entre abas.
Limites por plano
| Plano | Widgets por site |
|---|---|
| Free | 0 (bloqueado) |
| Pro | 3 |
| Scale | 10 |
| Enterprise | Ilimitado |
Os limites são aplicados pela API no momento da criação e exibidos como erro no painel se você tentar excedê-los. Para aumentar seu limite, atualize seu plano.
Acesso à API
Gerencie widgets programaticamente:
# Listar widgets de um site
GET /api/popup-widgets/:websiteId
Authorization: Bearer YOUR_API_KEY
# Obter um widget
GET /api/popup-widgets/:websiteId/:widgetId
# Obter a análise de um widget
GET /api/popup-widgets/:websiteId/:widgetId/stats
# Criar
POST /api/popup-widgets/:websiteId
# Atualizar
PATCH /api/popup-widgets/:websiteId/:widgetId
# Excluir
DELETE /api/popup-widgets/:websiteId/:widgetId
O endpoint público utilizado pelo rastreador (GET /api/popup-widgets/active/:trackingCode) é chamado automaticamente pelo script de rastreamento e não requer autenticação.
Boas práticas
- Comece pelo valor, não pelo pânico. "Economize 20% no seu primeiro pedido" tem desempenho muito melhor do que "Espere! Não vá embora!".
- Limite a no máximo uma vez por visitante por semana. Um widget a cada visita vira isca de bloqueador de anúncios.
- Teste mobile separadamente. Os sinais mobile (rolagem para cima + retorno de visibilidade) disparam de forma diferente do
mouseleavedesktop. Um widget que converte no desktop pode ser invisível no mobile. - Vincule o CTA a uma meta. Apontar o CTA principal para uma URL rastreada ou um
goal_eventpermite ver o funil completoshown → clicked → convertedem vez de apenas cliques. - Pause antes de iterar. Não exclua um widget que esteja em teste A/B — pause-o para que as análises históricas continuem associadas.
Próximos passos
- Conversion Funnels - Acompanhe os caminhos de conversão de múltiplas etapas que o widget pode alimentar
- Goals - Defina os eventos que o CTA do seu widget deve concluir
- Incidentes de conversão - Receba alertas quando as conversões impulsionadas por widgets caírem