Ir para o conteúdo

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.

  1. Página de Destino é VSL (Vídeo de Vendas longo):
  2. Regra: NUNCA crie uma presell longa de texto. O visitante irá cansar e abandonar antes de assistir ao vídeo (taxa de fuga > 60%).
  3. 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.
  4. Página de Destino é TSL (Página de Texto com Preços):
  5. Regra: Utilize o template Review & Comparativo (review), pre-enquadrando a dor, ingredientes e garantia antes da página de texto do produtor.
  6. Produtor Fornece Links Diretos de Checkout:
  7. 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.
  8. Tráfego Frio / Descoberta (Meta Ads / TikTok):
  9. 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:

  1. Informe a URL oficial do produtor e a fonte do HopLink (oferta existente ou nickname ClickBank manual);
  2. POST /api/cloner/fetch busca 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 handlers on* (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 recebe data-bv-media* (media-players.ts) antes de os scripts saírem;
    • Absolutiza recursos relativos (src, href, srcset, iframes) e os url()/@import de <style> e style="" (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;
    • artifactHash deriva do artefato sanitizado + manifestos + versões (serialização estável); sourceHash deriva da fonte recebida;
  3. Salve com slug/título/status — o HTML higienizado vai em cloned_html (limite 2MB) na tabela brandvelia.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

  1. O visitante clica no anúncio do Google/Meta e acessa brandvelia.com/lp/[slug]?gclid=...&utm_source=....
  2. O componente de tracking (TrackVisit) registra a visita em bv_visits gerando um click_id criptográfico de 32 caracteres hexadecimais, capturando país, dispositivo e parâmetros UTM.
  3. Ao clicar no CTA ou no card da presell, o CtaLink anexa automaticamente o click_id como extclid e repassa todos os parâmetros de rastreamento (gclid, utm_*, keyword, device) para o HopLink do ClickBank/BuyGoods.
  4. A rede de afiliados grava o cookie no navegador do comprador (janela de 60 dias).
  5. Quando o webhook de venda (ClickBank INS 8.0) é recebido em /api/webhooks/clickbank, a conversão é associada deterministicamente ao click_id original em PostgreSQL, gerando métricas reais de ROAS, CPA e lucro líquido.