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.
Häufige Probleme und Lösungen
Section titled “Häufige Probleme und Lösungen”/* 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 machendocument.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.
// Lazy Loading für schwere Variantenif (window.usertrax.getVariant("heavy_test") === "variant_with_video") { // Video nur bei Bedarf laden loadVideoAssets();}Schwere Assets nicht in beiden Varianten eager laden — nur in der zugewiesenen Variante nachziehen.
// Debug-Informationen in der Konsoleconsole.log("Aktive A/B-Tests:", window.usertrax.getAssignments());
// Test-Zuweisung in sessionStorage prüfenObject.keys(sessionStorage).forEach((key) => { if (key.startsWith("usertrax_ab_")) { console.log(key, sessionStorage.getItem(key)); }});Variante wird nicht sichtbar
Section titled “Variante wird nicht sichtbar”API verfügbar?
typeof window.usertrax?.getVariant; // "function"Sonst Script noch nicht geladen — siehe JavaScript-API → Queue.
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?
Schlüssel abgleichen
data-usertrax-ab-test-group= Test-Schlüssel,data-usertrax-ab-test-variant= Varianten-Schlüssel — bytegenau.Inline-Styles
Nicht-zugewiesene Varianten sollten initial
style="display: none"haben; die zugewiesene bekommtdisplayvom Tracker entfernt. Eigenes CSS mitdisplay: none !importantkann das überschreiben.Fallback vs. Zuweisung
Mit Zuweisung zeigt der Tracker nur die passende Variante — auch wenn ein anderes Element
data-usertrax-ab-test-fallbackhat.
Sticky Assignment (Zuweisung „klebt“)
Section titled “Sticky Assignment (Zuweisung „klebt“)”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 ladenObject.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.
SPA-Routing
Section titled “SPA-Routing”Der Tracker horcht auf Client-Side-Navigation und kann Session bzw. Element-Sichtbarkeit erneut anwenden. Trotzdem typische Stolpersteine:
| Problem | Was tun |
|---|---|
| Neue Route rendert Varianten-Markup erst nach Navigation | Attribute am neuen DOM setzen; bei Bedarf window.usertrax.applyElementVisibility() aufrufen |
| Test ist URL-targetiert, SPA ändert den Path ohne Reload | Sicherstellen, dass das URL-Muster die Client-Route trifft; nach Navigation Zuweisung erneut prüfen |
| Framework hydriert und setzt Styles zurück | Nach Hydration Sichtbarkeit erneut anwenden oder Varianten über Framework-State + getVariant steuern |
getVariant zu früh in Setup-Hooks | Warten, bis die Methode existiert (siehe JavaScript-API) |
// Nach eigenem Route-Change / dynamischem Insertif (typeof window.usertrax?.applyElementVisibility === "function") { window.usertrax.applyElementVisibility();}Technische Details: Sitzungsverwaltung
Section titled “Technische Details: Sitzungsverwaltung”- A/B-Test-Zuweisungen werden in
sessionStoragegespeichert (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_datamit 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.