Landing Pages & Bridge Pages¶
O módulo de Landing Pages gerencia as páginas intermediárias próprias (Presell, Advertoriais, Bridge Pages, Quizzes e Páginas de Review) da operação. Cada página possui pré-visualização em tempo real (Live Preview), slug de rastreamento dedicado e blocos modulares estruturados.
Estrutura e Campos¶
| Campo | Significado |
|---|---|
id |
Identificador único (BV_ID) no workspace. |
name |
Nome interno da página (ex: Presell - Quiz Digestão Leve v2). |
slug |
Identificador na URL pública (ex: brandvelia.com/lp/[slug]). |
status |
Estado de publicação: DRAFT, PUBLISHED, ARCHIVED. |
blocks |
Estrutura JSON com a lista de blocos que compõem a página. |
is_primary |
Flag que define esta página como a Landing Page principal vinculada ao produto. |
landing_metric |
Métricas agregadas de visualizações, cliques no CTA e conversões. |
Construtor Orientado a Blocos (Schema-Driven)¶
Em vez de editores pesados de arrastar e soltar (como Elementor/WordPress) que tornam as páginas lentas e aumentam o bounce rate, a Brandvelia adota uma arquitetura schema-driven ultra veloz em Next.js com componentes pré-otimizados e renderização sub-100ms:
- Popup Card (Presell Zero-Fuga): Card modal de 1 clique, com badge de desconto oficial, imagem do produto, 3 bullets de impacto e botão pulsante. Ideal para VSLs. Sem promessa de CTR — medir por coorte.
- Product Bundles (Direct-to-Checkout): Tabela de preços com kits conforme o produtor (ex.: Joint Genesis 6/2/3), sem presumir 1/3/6 universal, e botões por kit com destino versionado
/out/{revisionId}/{bundleId}. - Hero & Headlines: Título principal, subtítulo e imagem de destaque de carregamento instantâneo com suporte a Dynamic Keyword Insertion (DKI).
- Story & Problem/Solution: Narrativa estruturada de identificação com o problema e apresentação da solução.
- Proof & Comparisons: Tabelas comparativas e depoimentos verificados.
- Quiz / Multi-step: Perguntas interativas para qualificar e engajar o visitante antes do clique no CTA.
- Compliance Footer Automatizado: Bloco padrão com aviso FTC de comissão de afiliado, disclaimer de saúde FDA para nutracêuticos, políticas de privacidade, termos e contato.
A Regra de Ouro do Alinhamento de Presell & Taxa de Fuga¶
No tráfego pago (especialmente Google Ads Search), o formato da página intermediária deve espelhar o formato da página de destino do produtor. Medir CTR/ROI por coorte; sem garantia de multiplicador.
- Página de Destino é VSL (Vídeo de Vendas longo):
- Regra: NUNCA crie uma presell longa de texto. O visitante irá cansar e abandonar antes de assistir ao vídeo (taxa de fuga > 60%).
- Solução: Utilize o template Zero-Fuga 1-Click Bridge (
zero-fuga-popup). O objetivo único é transferir o lead para o vídeo em 1 clique e gravar o cookie de 60 dias. - Página de Destino é TSL (Página de Texto com Preços):
- Regra: Utilize o template Review & Comparativo (
review), pre-enquadrando a dor, ingredientes e garantia antes da página de texto do produtor. - Produtor Fornece Links Diretos de Checkout:
- Regra: Utilize o template Direct-to-Checkout Bundles (
direct-checkout-bundles), permitindo que o usuário escolha o kit (1, 3 ou 6 potes) e vá direto para o carrinho sem passar por páginas intermediárias do produtor. - Tráfego Frio / Descoberta (Meta Ads / TikTok):
- Regra: Utilize o template Quiz Bridge (
quiz) ou Advertorial Storytelling (advertorial) para quebrar objeções e despertar curiosidade.
Live Preview e Teste Visual¶
Cada página permite a visualização em tempo real dentro do painel através da rota
autenticada /app/landing-pages/[id]/preview, permitindo testar o layout antes da
publicação. Páginas publicadas ficam em /lp/{slug} (link "Ver ao vivo" no editor).
Page Cloner & Anti-Abandono¶
Clonador de Página Oficial (page_type = 'clone')¶
Em Nova landing page → Clonador de Página Oficial:
- Informe a URL oficial do produtor e a fonte do HopLink (oferta existente ou nickname ClickBank manual);
POST /api/cloner/fetchbusca a página server-side com guardas SSRF (bloqueio de hosts privados/loopback, timeout 20s, cap 5MB, validação DNS/IP por salto), sanitiza via cheerio (apps/web/src/lib/cloner/html-rewriter.ts), analisa kits por manifesto (import-service.ts) e — no caminho da jornada (offerId+launchId) — persiste job → landing rascunho → revisão → artefato imutável, devolvendo IDs:- Remove
<script>do vendor e handlerson*(modo fiel guarda os scripts no HTML salvo, mas eles não executam no/lp— ver render público abaixo); - Player de VSL Vidalytics reconhecido: o
<div>placeholder recebedata-bv-media*(media-players.ts) antes de os scripts saírem; - Absolutiza recursos relativos (
src,href,srcset, iframes) e osurl()/@importde<style>estyle=""(css-urls.ts) — sem isso a imagem de fundo da página do produtor resolvia contra o nosso domínio; - Resolve cada CTA ClickBank por SKU + assinatura comercial para
/out/{revisionId}/{bundleId}; CTA fora do manifesto exige revisão (CHECKOUT_REVIEW_REQUIRED), nunca HopLink genérico silencioso; artifactHashderiva do artefato sanitizado + manifestos + versões (serialização estável);sourceHashderiva da fonte recebida;
- Remove
- Salve com slug/título/status — o HTML higienizado vai em
cloned_html(limite 2MB) na tabelabrandvelia.landing_pages.
No render público (/lp/[slug]), o corpo e os assets de estilo são extraídos do
documento armazenado; scripts nunca executam via innerHTML — o runtime roda como
elementos <script> reais no stream.
O VSL do produtor volta pelo loader controlado bv-media-vidalytics
(media-policy.ts): os IDs marcados no HTML salvo são revalidados e só o host
fixo fast.vidalytics.com/embeds/… é carregado — o bootstrap inline original
(que pode trazer GTM/pixels do produtor) nunca é reexecutado. Limite: a
Vidalytics libera a reprodução por domínio (license?hash=<vídeo>|<domínio>).
Se o produtor travou o vídeo no domínio dele, o player mostra "This video can't
be played" no nosso domínio — confira na página publicada e peça a liberação ao
produtor ou use o Zero-Fuga 1-Click Bridge. Nunca contornar essa trava. O
preview autenticado (app.*) não carrega o player: script de terceiros não roda
na origem que tem a sessão do operador.
Ferramentas Anti-Abandono (aba no editor)¶
Configuráveis por página clonada (todas OFF por default):
| Técnica | Implementação |
|---|---|
| Back Redirect | Desativado por padrão; viola políticas do Google Ads — não usar em tráfego pago. |
| Cookie Drop | Desativado por padrão; não usar tráfego invisível para atribuição. |
| Exit Intent Popup | mouseout topo (desktop) + scroll-up rápido (mobile); cupom, título, CTA configuráveis. |
| WhatsApp Flutuante | Botão fixo wa.me/<número> com mensagem padrão. |
| Barra de Escassez | Contador regressivo fixo no topo até countdown_end_at. |
| Pixels customizados | Campos <head>/<body> livres (GTM/Meta Pixel/Google Tag); cada <script> colado é re-renderizado como elemento real executável. |
Snippets gerados por builders puros em
apps/web/src/lib/cloner/runtime-snippets.ts (com interceptor de cliques que
anexa extclid aos HopLinks e repassa gclid/wbraid/gbraid/utm_*).
extclid transporta o clique; não comprova comissão em payment links.
Jornada de lançamento (preparação persistente)¶
Entrada única: Preparar lançamento no Radar, em Ofertas e em Campanhas
(StartLaunchButton → POST via startLaunchAction →
/app/campaigns/wizard?launch_id=<uuid>). Contrato brandvelia.launch_drafts
+ RPCs start_launch/save_launch_section/get_launch_context/get_launch_readiness
+ rascunho atômico save_launch_campaign_draft. Etapas: Produto e afiliação →
Sua pressel → Anúncios e orçamento → Revisar e criar no Google pausada.
Ativação é ação posterior explícita. Verificação por verifyLandingRevisionAction
(PREVIEW/PUBLIC) com provas por revisão/hash; mídia PASS exige playback
observado em navegador, nunca ausência de script.
Fluxo de Atribuição e Tracking Transparente¶
- O visitante clica no anúncio do Google/Meta e acessa
brandvelia.com/lp/[slug]?gclid=...&utm_source=.... - O componente de tracking (
TrackVisit) registra a visita embv_visitsgerando umclick_idcriptográfico de 32 caracteres hexadecimais, capturando país, dispositivo e parâmetros UTM. - Ao clicar no CTA ou no card da presell, o
CtaLinkanexa automaticamente oclick_idcomoextclide repassa todos os parâmetros de rastreamento (gclid,utm_*,keyword,device) para o HopLink do ClickBank/BuyGoods. - A rede de afiliados grava o cookie no navegador do comprador (janela de 60 dias).
- Quando o webhook de venda (ClickBank INS 8.0) é recebido em
/api/webhooks/clickbank, a conversão é associada deterministicamente aoclick_idoriginal em PostgreSQL, gerando métricas reais de ROAS, CPA e lucro líquido.