Widget
JavaScript-Ereignisse
Öffne und schließe das Widget per JavaScript und melde eigene Ereignisse, Ziele und Käufe an die Auswertung.
Überblick
Das Script stellt zwei Objekte im Fenster bereit:
| Objekt | Zweck |
|---|---|
window.LymbeWidget | Das Chatfenster steuern: öffnen, schließen, umschalten |
window.lymbe | Ereignisse, Ziele und Käufe für die Auswertung melden |
Widget steuern
| Methode | Wirkung |
|---|---|
LymbeWidget.open() | Öffnet das Chatfenster |
LymbeWidget.close() | Schließt es |
LymbeWidget.toggle() | Öffnet oder schließt, je nach Zustand |
<button type="button" id="hilfe">Fragen? Schreib uns</button>
<script>
document.getElementById('hilfe').addEventListener('click', function () {
if (window.LymbeWidget) window.LymbeWidget.open();
});
</script>
LymbeWidget gibt es erst, wenn widget.js geladen ist. Ein Ereignis „bereit“ gibt es nicht. Prüfe daher wie oben, ob das Objekt da ist, oder ruf es erst nach einem Klick auf.
Ereignisse messen
| Aufruf | Wirkung |
|---|---|
lymbe.track(name, props) | Eigenes Ereignis, z. B. "newsletter_angemeldet" |
lymbe.goal(name, props) | Ein Ziel; erscheint als goal:name |
lymbe.purchase(props) | Ein Kauf, z. B. mit Betrag und Bestellnummer |
lymbe.page() | Seitenaufruf von Hand melden (meist unnötig, siehe unten) |
lymbe.track('pdf_heruntergeladen', { datei: 'preisliste-2026' });
lymbe.goal('kontaktformular', { seite: 'beratung' });
lymbe.purchase({ betrag: 89.9, waehrung: 'EUR', bestellung: 'B-10023' });
Aufrufe, bevor das Script geladen ist
Lädt widget.js später als dein Code, legst du vorher eine kleine Warteschlange an. Das Widget arbeitet sie nach dem Laden ab.
<script>
window.lymbe = window.lymbe || function () {
(window.lymbe.q = window.lymbe.q || []).push(arguments);
};
lymbe('track', 'seite_mit_angebot');
</script>
Regeln für Namen und Angaben
- Ereignisname höchstens 64 Zeichen.
- Höchstens 9 Angaben (
props) je Ereignis. - Nur einfache Werte: Text, Zahl, wahr/falsch. Keine Objekte oder Listen.
- Texte höchstens 500 Zeichen.
- Keine Personendaten wie E-Mail-Adressen oder Namen in
props.
Was automatisch gemessen wird
| Ereignis | Wann |
|---|---|
session_start | Beginn eines Besuchs |
page_view | Jeder Seitenaufruf, auch Seitenwechsel in Single-Page-Apps |
| Scrolltiefe | Bei 25, 50, 75 und 100 Prozent |
bot_viewed | Das Widget wurde angezeigt |
session_end | Ende des Besuchs |
Ereignisse werden gesammelt verschickt (bis zu 20 auf einmal, spätestens alle 5 Sekunden). Die Messung kommt ohne Cookies aus.
Wann nichts gemessen wird
- Die Messung ist am Assistenten ausgeschaltet (siehe Anpassen).
- Der Browser sendet Do-Not-Track oder Global Privacy Control und du hast eingestellt, das zu respektieren.
- Der Browser wurde mit
?lymbe_track=offausgeschlossen. - Die Seite wird von einem automatisierten Browser gesteuert.
Was es nicht gibt
Methoden wie sendMessage, setUser, reset, destroy oder Rückrufe wie onMessage stellt das Widget nicht bereit. lymbe.identify() ist vorhanden, tut aber bewusst nichts und schreibt nur eine Warnung in die Konsole.
Fehlerbehebung
| Problem | Lösung |
|---|---|
LymbeWidget is undefined | Das Script ist noch nicht geladen oder fehlt. Aufruf in einen Klick verlegen oder vorher prüfen. |
| Eigene Ereignisse fehlen in der Auswertung | Messung eingeschaltet? Browser mit lymbe_track=off ausgeschlossen? Werte flach und kurz genug? |
| Ziel taucht nicht unter seinem Namen auf | Ziele erscheinen mit dem Vorsatz goal:. |