Documentación del SDK

Inicio rápido

Añade este script al <head> de tu web:

<!-- fluxAB — Anti-flicker + SDK — instalar una vez, nunca más tocar -->
<script>!function(){var e="body{opacity:0!important}",t=document.createElement("style");t.textContent=e,t.id="fluxab-hide",document.head.appendChild(t),window._fluxabShow=function(){var e=document.getElementById("fluxab-hide");e&&e.remove(),document.body.style.opacity=""},setTimeout(window._fluxabShow,800)}();</script>
<link rel="preconnect" href="https://cdn.fluxabtest.com" />
<script async src="https://cdn.fluxabtest.com/client.js" data-project-key="pk_live_xxx"></script>

La pk_live_xxx la encuentras en Configuración de tu proyecto.

Después de instalar el snippet, verifica el dominio en Configuración. Solo los dominios verificados registran asignaciones y conversiones.

getVariant() — Asignación local

La asignación es determinista y local. La primera llamada descarga la configuración (y las variantes si aún no están en caché); después es instantánea. No registra exposición.

// Solo necesitas el <script> en el <head>.
// fluxAB se inicializa automáticamente como window.fluxAB

const result = await fluxAB.getVariant('new-checkout');

if (result.variant === 'B') {
  showNewCheckout();
}

activate() — Registra exposición

Como getVariant() pero registra que el usuario entró al experimento.

document.querySelector('#payment-btn')
  .addEventListener('click', async () => {
    const r = await fluxAB.activate('payment-test');
    showVariant(r.variant);
  });

track() — Conversiones

Envía eventos de conversión. Se agrupan cada 2s.

fluxAB.track('payment_completed');

fluxAB.track('payment_completed', {
  amount: 325.50,
  currency: 'EUR'
});

identify() — Vincular usuario

Asocia el ID anónimo con tu ID de cliente. Las asignaciones y conversiones anteriores se reasignan al usuario.

fluxAB.identify('customer_12345');

URL Split — Automático

Aplica la variante cuando la página coincide con la URL o los parámetros configurados. No redirige a otra URL.

const result = await fluxAB.getVariant('landing-test');

if (result.variant === 'B') {
  document.body.classList.add('variant-b');
}

SPAs y cambios de ruta

Después de un cambio de ruta con pushState o replaceState, llama a refresh(). El SDK escucha popstate (atrás/adelante) automáticamente.

fluxAB.refresh();

QA y preview

?fluxab_force=B fuerza una variante sin registrar asignación ni conversiones.

?fluxab_preview=clave&fluxab_token=token previsualiza un borrador o un test pausado sin registrar datos. El token está en la página de detalle del experimento.