Zum Inhalt springen

Fehlerbehebung

Wenn Varianten nicht erscheinen, „kleben“ oder in SPAs verschwinden, hilft systematisch: erst Zuweisung prüfen, dann Markup/Schlüssel, dann Session- und Routing-Verhalten.

/* CSS zu <head> hinzufügen, um Flimmern zu reduzieren */
.ab-test-loading {
visibility: hidden !important;
}
<body class="ab-test-loading">
</body>
// Nach Varianten-Anwendung sichtbar machen
document.body.classList.remove("ab-test-loading");

Kombiniere das mit einem HTML-Fallback, damit Nutzer ohne JS oder bei langsamem Netz trotzdem Inhalt sehen. Siehe HTML-Varianten → Anti-Patterns.


  1. API verfügbar?

    typeof window.usertrax?.getVariant; // "function"

    Sonst Script noch nicht geladen — siehe JavaScript-API → Queue.

  2. Zuweisung vorhanden?

    window.usertrax.getAssignments();
    // erwartet z. B. { button_color_test: "variant_red" }

    Leer? Test aktiv? URL-Targeting trifft die aktuelle Seite? Domain/API-Key korrekt?

  3. Schlüssel abgleichen

    data-usertrax-ab-test-group = Test-Schlüssel, data-usertrax-ab-test-variant = Varianten-Schlüssel — bytegenau.

  4. Inline-Styles

    Nicht-zugewiesene Varianten sollten initial style="display: none" haben; die zugewiesene bekommt display vom Tracker entfernt. Eigenes CSS mit display: none !important kann das überschreiben.

  5. Fallback vs. Zuweisung

    Mit Zuweisung zeigt der Tracker nur die passende Variante — auch wenn ein anderes Element data-usertrax-ab-test-fallback hat.


Zuweisungen werden in sessionStorage unter usertrax_ab_<test_key> gespeichert und bleiben für die Sitzung stabil — das ist gewollt, damit Nutzer nicht zwischen Varianten springen.

Zum erneuten Zufallsziehen (nur zum Testen):

// Alle usertrax A/B-Keys entfernen und Seite neu laden
Object.keys(sessionStorage)
.filter((k) => k.startsWith("usertrax_ab_"))
.forEach((k) => sessionStorage.removeItem(k));
location.reload();

Oder Inkognito-Fenster / anderer Browser. Traffic-Split-Änderungen wirken vor allem auf neue Sessions, nicht auf bereits zugewiesene.


Der Tracker horcht auf Client-Side-Navigation und kann Session bzw. Element-Sichtbarkeit erneut anwenden. Trotzdem typische Stolpersteine:

ProblemWas tun
Neue Route rendert Varianten-Markup erst nach NavigationAttribute am neuen DOM setzen; bei Bedarf window.usertrax.applyElementVisibility() aufrufen
Test ist URL-targetiert, SPA ändert den Path ohne ReloadSicherstellen, dass das URL-Muster die Client-Route trifft; nach Navigation Zuweisung erneut prüfen
Framework hydriert und setzt Styles zurückNach Hydration Sichtbarkeit erneut anwenden oder Varianten über Framework-State + getVariant steuern
getVariant zu früh in Setup-HooksWarten, bis die Methode existiert (siehe JavaScript-API)
// Nach eigenem Route-Change / dynamischem Insert
if (typeof window.usertrax?.applyElementVisibility === "function") {
window.usertrax.applyElementVisibility();
}

  • A/B-Test-Zuweisungen werden in sessionStorage gespeichert (usertrax_ab_<test_key>)
  • Sitzungen bleiben 30 Minuten nach der letzten Aktivität aktiv
  • Nach Ablauf / neuer Session kann eine andere Variante zugewiesen werden
  • Conversions erhalten automatisch ab_test_data mit den aktuellen Zuweisungen
  • HTML-Elemente mit A/B-Attributen, die nach dem Load eingefügt werden, werden über einen MutationObserver zunächst im Fallback-Modus behandelt und nach geladenen Tests korrekt geschaltet

Wenn Session- und Attributionsfragen darüber hinaus gehen: Sessions & Attribution.