growth/growth library

Camada de growth/omnipresença do Flenx — rastreamento (pixels/analytics), eventos e consentimento (LGPD). Tudo genérico e config-driven: cada projeto declara só os provedores que usa.

FlenxApp.run(
  tracking: FlenxTracking(providers: [Ga4('G-X'), MetaPixel('123')]),
  consent: const FlenxConsent(policyHref: '/privacidade'),
  ...
);

Classes

BingUet
Microsoft Advertising (Bing UET). Bom para decisores B2B (Edge/Outlook).
CustomPixel
Provedor genérico: cole o snippet do fornecedor e pronto — cobre Taboola, Outbrain, Pinterest, TikTok, Hotjar, Clarity ou qualquer pixel futuro sem alterar a lib.
FirebasePush
Push web via Firebase Cloud Messaging (FCM). config é o objeto JS de configuração do Firebase (ex.: "{apiKey:'..',projectId:'..',appId:'..'}"), vapidKey é a chave Web Push do projeto e tokenEndpoint (opcional) recebe o token via POST para o backend salvar. Requer o worker firebase-messaging-sw.js na raiz pública do site (com a mesma config). Sem consent mode → pede permissão e registra o token só após o aceite.
FlenxConsent
Banner de consentimento (LGPD/cookies). Genérico e themeável: cores via tokens (--surface/--ink/--border/--primary), textos configuráveis. Fica escondido para quem já decidiu; ao aceitar/recusar chama flenx.grantConsent()/flenx.denyConsent() (do FlenxTracking).
FlenxEvent
Nomes de evento padrão (compatíveis com Meta Pixel e GA4) e helper para disparar flenx.track a partir de qualquer componente (onclick/onsubmit).
FlenxTracking
Configuração de rastreamento/omnipresença do site. Genérica: passe só os provedores que o projeto usa (nenhum é fixo). O dispatcher flenx.track distribui um evento para TODOS os provedores de uma vez.
FlenxViewEvent
Dispara um evento de flenx.track no carregamento da página — drop-in para páginas de serviço/conteúdo (ex.: ViewContent). Configurável: event e params. Sem rastreamento configurado é no-op (o runtime flenx enfileira e respeita o consentimento).
Ga4
Google Analytics 4. Respeita Consent Mode → init imediato.
Google Ads. conversions mapeia evento → AW-XXX/label (dispara conversão).
LinkedInInsight
LinkedIn Insight Tag. conversions mapeia evento → conversion id numérico.
MetaPixel
Meta Pixel (Facebook/Instagram). Sem consent mode → init após o aceite.
TrackingProvider
Contrato de um provedor de rastreamento. Cada provedor sabe emitir:

Functions

flenxTrackJs(String event, {Map<String, String> params = const {}}) String
Trecho JS para atributos onclick/onsubmit: dispara o evento em TODOS os pixels de uma vez, sem quebrar a navegação. Ex.: attributes: {'onclick': flenxTrackJs(FlenxEvent.contact)}.