Für Webdesigner
Tracking-Anleitung für Events aus dem Booking-Widget
So greifen Sie auf Analytics-Events aus dem Dr. Flex Buchungsablauf zu.
Das Tracking und der datenschutzkonforme Umgang mit personenbezogenen Daten liegen vollständig im Verantwortungsbereich der Praxis.
Action Required
Mit einem durchgeführten Update wurde das Buchungs-Widget technisch überarbeitet. Im Zuge unseres Privacy-First-Ansatzes wurde die Tracking-Funktionalität vollständig aus dem Basis-Code des Widgets entfernt.
Konsequenz: Tracking-Code für Google Analytics, Google Tag Manager, Meta Pixel oder andere Analytics-Tools ist nicht mehr automatisch enthalten und muss bei Bedarf aktiv ergänzt werden.
Dr. Flex stellt ausschließlich die technische Schnittstelle bereit: ein von Ihnen selbst zu definierendes JavaScript-Callback-Objekt. Eine automatisierte Weitergabe dieser Daten findet nicht statt. Daten werden erst übergeben, wenn Sie das Callback-Objekt explizit definieren.
Meine Website verwendet:
Aktive Anleitung: Anderes System
Voraussetzungen für aktives Buchungs-Tracking
An jeder Stelle Ihrer Website, an der das Dr. Flex Buchungs-Widget per
JavaScript geöffnet wird, muss ein zusätzliches JSON-Objekt übergeben werden.
Dieses Objekt enthält eine Callback-Funktion mit dem Namen
analyticsCallback.
Wichtig: Das Objekt muss bei jedem Funktionsaufruf des Buchungs-Widgets mitgegeben werden.
Einbindung bei
<html>
<head>
<script src="https://dr-flex.de/embed.js?medicalPracticeId=XXXXX"></script>
<script>
const myCallback = {
analyticsCallback: function (data) {
// Hier kommen Ihr Tracking-Code und die Anbindung an Ihr Analytics-Tool.
// Das data-Objekt enthält die unten aufgeführten Attribute.
// Direkten Support für Ihr Analytics-Tool kann Dr. Flex nicht leisten.
// if (data.category == "appointment_opened") {
// Event-Handling nach der Terminauswahl
// }
// if (data.category == "send") {
// Event-Handling nach der Anforderung der SMS-TAN
// }
// if (data.category == "confirm") {
// Event-Handling nach der Buchungsbestätigung (TAN korrekt)
// }
//
}
};
</script>
</head>
<body>
<button onclick="toggleDrFlexAppointments(myCallback)">
Termin buchen
</button>
</body>
</html>
Die Praxis-ID steht bereits in der Script-URL. Im Funktionsaufruf wird deshalb nur das Callback-Objekt übergeben.
<html>
<head>
<script src="https://dr-flex.de/embed.js"></script>
<script>
const myCallback = {
analyticsCallback: function (data) {
// Hier kommen Ihr Tracking-Code und die Anbindung an Ihr Analytics-Tool.
// Das data-Objekt enthält die unten aufgeführten Attribute.
// Direkten Support für Ihr Analytics-Tool kann Dr. Flex nicht leisten.
// if (data.category == "appointment_opened") {
// Event-Handling nach der Terminauswahl
// }
// if (data.category == "send") {
// Event-Handling nach der Anforderung der SMS-TAN
// }
// if (data.category == "confirm") {
// Event-Handling nach der Buchungsbestätigung (TAN korrekt)
// }
//
}
};
</script>
</head>
<body>
<button onclick="toggleDrFlexAppointments(XXXXX, XXXXX, XXXXX, myCallback)">
Termin buchen
</button>
</body>
</html>
Das generische embed.js wird ohne
medicalPracticeId eingebunden. Die Praxis-IDs werden
kommasepariert im Funktionsaufruf übergeben, das Callback-Objekt steht
dahinter.
Aktive Anleitung: Dr. Flex WordPress-Plugin
Buchungs-Tracking: WordPress-Version
Getting Started
Um auf ein bestimmtes Event zu reagieren, kann die Callback-Funktion genutzt
werden. Prüfen Sie dazu das data-Objekt und reagieren Sie per
if-Abfrage auf das gewünschte Ereignis.
Events in der Browser-Konsole prüfen
console.log(data);
Einrichtung im WordPress-Backend
- WordPress-Adminbereich öffnen
- Dr. Flex WordPress-Plugin aufrufen
- Unter „Konfiguration“ in das Feld „Callback“ eigenen JavaScript-Callback-Code eintragen
- Im Tab „Codebeispiele“ finden Sie Beispielintegrationen, die Sie kopieren und in das Feld „Callback“ eintragen können. Die Beispiele sind ohne Gewähr für Korrektheit und Aktualität. Dr. Flex kann keinen Support für Drittsysteme bieten.
- Speichern
Wann wird der Callback ausgelöst?
Entlang des Buchungsprozesses werden drei Events ausgelöst. Das jeweilige
Ereignis steht im Attribut category.
| category | Wann | label |
|---|---|---|
appointment_opened |
Ein konkreter Termin wurde ausgewählt und das Formular für Name, Patientenfragen und Mobilnummer öffnet sich. | Datum des gewählten Termins, z. B. Di, 1.9.2020 11:30 Uhr |
send |
Alle Pflichtfelder wurden ausgefüllt und die TAN zur Buchungsbestätigung wird angefordert. | SMS-TAN gesendet |
confirm |
Die TAN wurde erfolgreich geprüft und die Buchung ist final abgeschlossen. Nur hier sind die Buchungs-IDs gefüllt. | SMS-TAN eingegeben |
Für buchungsbasierte Conversion-Ziele sollte ausschließlich
confirm verwendet werden - erst dort liegt eine abgeschlossene
Buchung vor.
Struktur des data-Objekts
Der Callback erhält ein Objekt mit den folgenden Attributen. Textfelder, die
nicht erhoben wurden, enthalten einen leeren String statt null.
| Attribut | Typ | Beschreibung |
|---|---|---|
event |
String |
Konstant Terminbuchung. Dient als Event-Name, etwa
beim Push in den dataLayer.
|
category |
String |
Das ausgelöste Ereignis: appointment_opened,
send oder confirm.
|
label |
String |
Beschreibender Text zum Ereignis - bei
appointment_opened das gewählte Termindatum.
|
consultation |
String | Bezeichnung der gewählten Terminart. |
therapist |
String | Name des gewählten Behandlers. |
insuranceType |
String |
Versicherungsart: Gesetzlich, Privat
oder Berufsgenossenschaft.
|
patientStatus |
String |
Patientenstatus: Neupatient oder
Bestandspatient.
|
practiceName |
String | Name der Praxis, in der gebucht wird. |
medicalPracticeId |
Number | null | Eindeutige ID der Praxis. In allen Events verfügbar. |
ordinalBookingId |
Number | null |
Eindeutige Buchungs-ID der Hauptbuchung. Nur beim Event
confirm gefüllt, sonst null.
|
combinedOrdinalBookingIds |
Number[] | Buchungs-IDs der weiteren Terminarten bei Kombiterminen. Sonst ein leeres Array. |