Snippet runtime

lvbl.js è il client universale: gestisce assignment, anti-flicker, cache e tracking. Caricalo una volta per progetto.

Installazione base

html
<script
  src="https://project--YOUR_PROJECT.lovable.app/snippets/lvbl.js"
  data-project="YOUR_PROJECT_ID"
  data-analytics="auto"
  defer></script>

Anti-flicker

Gli elementi con data-ab-experiment sono nascosti (opacity:0) fino al completamento dell'assegnazione, con failsafe di 1.5s che li mostra comunque per evitare blocchi.

Cache assegnazioni

Le assegnazioni sono persistite in localStorage per 24h sotto la chiave lvbl_assign_*. La navigazione tra pagine non causa re-bucketing.

Adapter analytics

html
<!-- Forward esposizioni e conversioni a GA4 + Mixpanel -->
<script src=".../lvbl.js" data-project="..." data-analytics="ga4,mixpanel" defer></script>

<!-- Disabilita completamente il forwarding -->
<script src=".../lvbl.js" data-project="..." data-analytics="off" defer></script>

Eventi forwarded: lvbl_exposure (al primo render di una variante) e lvbl_conversion (a ogni track). Compatibile con window.gtag, window.dataLayer e window.mixpanel.

QA mode

bash
?lvbl_force=EXPERIMENT_ID:VARIANT_ID
?lvbl_force=exp1:varA,exp2:varB
In QA mode lo snippet non scrive su database, non invia eventi analytics e mostra un badge in alto a destra. Usalo per testare manualmente le varianti prima di lanciare l'esperimento.