ABlyft integrierenDebugging

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.

SituationKonsolenmeldungLösung
Auf der Seite ist ein zweites SnippetABlyft aborting - first snippet already initializedBinde das Snippet nur einmal pro Seite ein, auch wenn du einen Tag Manager verwendest
Die Seite liegt in einem iFrameABlyft aborting - running in IframeAktiviere Allow in iFrames in den Project-Einstellungen, wenn das beabsichtigt ist
Der Visitor hat sich abgemeldetkeineÖffne die Seite mit ?ablyft_opt_out=false, siehe Opt-out
Do Not Track ist im Browser aktiviert und das Project beachtet esABlyft # stops because client's doNotTrack is enabledSchalte 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ülltGeneral Prerequisite Rules NOT met (Debug-Modus)Prüfe die Regeln unter Settings → Prerequisites
Run only on ablyft.reInit() ist aktiviertkeineRufe ablyft.reInit() auf, wenn deine Anwendung bereit ist
Die Visual-Editor-Session ist aktivVisual 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.

  1. Warte, bis die Anzeige Publishing … in der oberen Leiste verschwindet.
  2. Berücksichtige die Cache-Zeit. Siehe Snippet settings.
  3. Vergleiche ablyft.get('data').revision mit Snippet revision unter Settings → Snippet. Wenn sie abweichen, verwendet der Browser noch eine alte Kopie. Lade die Seite mit einem Hard Refresh neu.
  4. Prüfe, dass du die richtige Datei lädst: Ein Environment mit einem Sub-Snippet hat eine eigene Datei, etwa …/s/12345678-staging.js.
  5. 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. Vermeide async fü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> (oder VARIATION).
  • JavaScript-Regeln für Environments, Pages und Audiences, die einen Fehler werfen, zählen als nicht erfüllt. Die Konsole zeigt JS RULE mit 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.

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 eventName muss 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_tgoals im 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

On this page