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:varBIn 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.