Häufige Probleme
Typische technische Probleme mit dem ABlyft-Snippet und wie du sie löst.
Finde dein Symptom, prüfe die Ursache, wende die Lösung an. Schalte zuerst den Debug-Modus ein, denn die Konsolenausgabe nennt den Grund meist direkt.
Das Snippet startet nicht
Das Snippet stoppt in diesen Situationen stillschweigend. Einige geben auch ohne Debug-Modus eine Meldung in der Konsole aus.
| Situation | Konsolenmeldung | Lösung |
|---|---|---|
| Auf der Seite ist ein zweites Snippet | ABlyft aborting - first snippet already initialized | Binde das Snippet nur einmal pro Seite ein, auch wenn du einen Tag Manager verwendest |
| Die Seite liegt in einem iFrame | ABlyft aborting - running in Iframe | Aktiviere Allow in iFrames in den Project-Einstellungen, wenn das beabsichtigt ist |
| Der Visitor hat sich abgemeldet | keine | Öffne die Seite mit ?ablyft_opt_out=false, siehe Opt-out |
| Do Not Track ist im Browser aktiviert und das Project beachtet es | ABlyft # stops because client's doNotTrack is enabled | Schalte Do Not Track im Browser zum Testen aus oder prüfe die Einstellung unter Settings → Data Protection & Compliance |
Der Browser wird als Bot eingestuft (User-Agent enthält zum Beispiel bot, google, crawler, spider) | Rated as Bot- Exiting (Debug-Modus) | Nutze einen normalen Browser. Automatisierte Test-Tools mit einem solchen User-Agent werden ignoriert |
| Die allgemeinen Prerequisite-Regeln sind nicht erfüllt | General Prerequisite Rules NOT met (Debug-Modus) | Prüfe die Regeln unter Settings → Prerequisites |
Run only on ablyft.reInit() ist aktiviert | keine | Rufe ablyft.reInit() auf, wenn deine Anwendung bereit ist |
| Die Visual-Editor-Session ist aktiv | Visual Editor Mode activated (Debug-Modus) | Schließe den Editor-Tab oder lösche den Session Storage |
Das Snippet ist veraltet
Du hast eine Änderung veröffentlicht, aber die Seite verhält sich noch wie vorher.
- Warte, bis die Anzeige Publishing … in der oberen Leiste verschwindet.
- Berücksichtige die Cache-Zeit. Siehe Snippet settings.
- Vergleiche
ablyft.get('data').revisionmit Snippet revision unter Settings → Snippet. Wenn sie abweichen, verwendet der Browser noch eine alte Kopie. Lade die Seite mit einem Hard Refresh neu. - Prüfe, dass du die richtige Datei lädst: Ein Environment mit einem Sub-Snippet
hat eine eigene Datei, etwa
…/s/12345678-staging.js. - Wenn dein eigener Server oder ein CDN vor dem Snippet sitzt, stelle sicher, dass er die Datei nicht länger cacht.
Solange der Debug-Modus an ist, ist das Snippet-Caching ausgeschaltet, was beim Testen hilfreich ist.
Flicker
Flicker bedeutet, dass Visitors kurz die Originalseite sehen, bevor die Variation erscheint.
- Lade das Snippet synchron und so früh wie möglich im
<head>, vor großen Skripten und Stylesheets. Vermeideasyncfür das Snippet. Siehe Snippet einbinden. - Lass den Anti-flicker mode auf Use built-in mode (Settings → Snippet). Das Snippet blendet die Seite dann direkt nach dem Start aus und zeigt sie wieder, nachdem alle Experiments angewendet wurden, spätestens nach 2 Sekunden.
- Bleibt die Seite 2 Sekunden lang leer, wartet ein Experiment auf etwas, das nicht eintritt (zum Beispiel ein Element, das nie erscheint). Prüfe die Konsole auf Fehler.
- Mit Use your own custom mode blendet ABlyft nichts aus. Du musst die Seite selbst aus- und einblenden.
- Langsame Änderungen durch eine lange Kette von Redirects oder durch spät ladende Inhalte lassen sich nicht vollständig verbergen. Bitte deinen Entwickler, die Ladereihenfolge zu prüfen.
Selektoren finden keine Elemente
Änderungen an Variations verwenden CSS-Selektoren. Ist ein Element noch nicht auf der Seite, wartet ABlyft und wendet die Änderung an, sobald es erscheint. Nutze für deinen eigenen Code denselben Ansatz:
ablyftTools.waitForElement('.promo-banner', function (element) {
element.textContent = 'Free shipping today';
});Prüfe Selektoren in der Konsole mit document.querySelectorAll('your selector'). Selektoren mit generierten
Klassennamen ändern sich mit jedem Release deiner Website. Siehe Dynamische Inhalte.
JavaScript-Fehler in Experiment- oder Variation-Code
Code des Projects, eines Experiments und einer Variation wird vom Snippet ausgeführt. Ein Fehler darin wird abgefangen, sodass deine Website weiterläuft, der Rest dieses Codes aber nicht ausgeführt wird.
- Im Debug-Modus erscheint der Fehler in der Konsole als
ABlyft # ERROR on EXPERIMENT <id>: <message>(oderVARIATION). - JavaScript-Regeln für Environments, Pages und Audiences, die einen Fehler werfen, zählen als nicht erfüllt. Die
Konsole zeigt
JS RULEmit der Meldung. - Teste die Regel oder den Code in der Konsole, um die fehlerhafte Zeile zu finden.
Abonniere das Event ablyftError, um diese Fehler an dein eigenes Monitoring zu melden, siehe
Integration prüfen.
Consent blockiert das Tracking
Wenn dein Project Prerequisites für das Tracking verwendet (zum Beispiel eine Consent-Regel), hält ABlyft Daten im Arbeitsspeicher und sendet keine Events, bis die Regel erfüllt ist. Symptome:
- Visitors erhalten bei jedem Seitenaufruf eine neue Zuweisung, oder Experiments bleiben nicht stabil.
- Im Live Log erscheinen keine Events, und in der Konsole steht
Tracking Prerequisite Rules NOT met.
Prüfe, dass dein Consent Manager enableTrackingConsent aufruft, und lies den Status mit ablyft.get('trackingConsentEnabled').
Siehe Consent Manager.
Single-Page-Anwendungen
Wenn Experiments nur auf der ersten Seite und nicht nach der Navigation funktionieren, wird die Seite nicht erneut
geprüft. Nutze eine Page mit dem Trigger URL Change, aktiviere Use SPA features in den Project-Einstellungen oder
aktiviere Pages mit ablyft.push({ eventType: 'activatePage', pageId: … }). Siehe
SPA navigation.
Ein Goal wird nicht gemessen
- Prüfe das Goal im Preview-Modus mit
ablyft.get('pingedGoals'): Erscheint das Goal, wird es korrekt ausgelöst. - Click Goals: Der CSS-Selektor muss zum angeklickten Element oder einem seiner Eltern passen, und das Goal muss einer aktiven Page zugewiesen sein. Prüfe außerdem auf JavaScript-Fehler auf der Seite, da sie andere Skripte stoppen können.
- Custom und Revenue Goals: Der
eventNamemuss mit dem API name des Goals identisch sein. Siehe Custom goals. - Goal wird einmal gezählt: Goals mit der Counting Method One werden pro Variation und Visitor nur einmal
gesendet. Um erneut zu testen, lösche den Eintrag
ablyft_tgoalsim konfigurierten Storage (siehe Storage & privacy). - Andere Domain: Liegt das Goal auf einer anderen Domain, konfiguriere External tracking domains, siehe Snippet settings.
Der Visitor sieht immer dieselbe Variation
Das ist beabsichtigt. Die Zuweisung wird im konfigurierten Storage gespeichert (ablyft_exps, siehe
Storage & privacy), und der Visitor bleibt in derselben
Variation. Nutze für Tests ein privates Fenster oder lösche die Website-Daten. Verwende ?ablyft_set_bucketing=… nur,
wenn du eine Zuweisung von Hand setzen musst, siehe URL parameters.
Immer noch nicht gelöst?
Wende dich an den ABlyft-Support. Sende bitte die URL der Seite, die Project ID und Experiment ID, die Ausgabe von
ablyft.get('data') und die Konsolenausgabe bei eingeschaltetem Debug-Modus.
Nächste Schritte
- Integration prüfen
- Preview & Live Log
- Fehlerbehebung für nicht-technische Prüfungen