Zum Hauptinhalt springen

Kampagnen-Tracking und Conversion-Messung

Welche Anzeige hat diesen Termin gebracht? Bucht ein Patient nach dem Klick auf eine Anzeige in einem externen Buchungsportal, verlässt er Ihre Seite – Ihr Werbekonto sieht dann nur den Klick auf „Termin buchen“, aber nicht, ob daraus ein Termin wurde. Google Ads und Meta optimieren auf Klicks, und Sie wissen nicht, welches Budget sich lohnt.

Mit Dr.wait findet die Buchung auf Ihrer eigenen Buchungsseite statt, und die Kampagne wird direkt am Termin gespeichert. Damit sehen Sie:

  • Welcher Kanal den Termin gebracht hat – Google-Anzeige, Google-Unternehmensprofil, Newsletter, Instagram, Flyer oder QR-Code im Wartezimmer, bis hinunter zu Kampagne, Suchbegriff und Anzeigenvariante.
  • Echte Buchungen statt Klicks: Gezählt werden nur Termine, die der Patient bestätigt hat. Abgebrochene Reservierungen zählen nicht.
  • Was danach mit dem Termin passiert: Wird ein Termin später abgesagt, bleibt er seiner Kampagne zugeordnet und wird in der Auswertung getrennt als „Entfernt“ ausgewiesen.
  • Welche Behandlungen sich lohnen: Über die API werten Sie Kampagnen zusätzlich nach Terminart und Behandler aus, z. B. Neupatienten getrennt von Kontrollterminen.
  • Buchungen zurück an Google Ads: Google Ads ruft die bestätigten Termine automatisch als Offline-Conversions ab. Google ordnet jede Buchung der richtigen Anzeige und dem Suchbegriff zu und optimiert Ihre Kampagnen auf Termine statt auf Klicks.

Dr.wait setzt dafür keine Cookies, keine Tracking-Pixel und keine Drittanbieter-Tags ein. Ausgewertet werden ausschließlich die Parameter im Link, den der Patient öffnet. Ein Cookie-Banner ist dafür nicht nötig.

So funktioniert es​

  1. Sie hängen Kampagnen-Parameter (utm_*) an Ihren Buchungslink an – am einfachsten mit dem Kampagnen-Baukasten in Dr.wait.
  2. Ein Patient öffnet den Link und bucht einen Termin.
  3. Dr.wait speichert die Kampagne am Termin. Sie sehen sie im Termin, in der Kampagnen-Auswertung und über die API.

Zusätzlich wird jeder Aufruf der Buchungsseite, des Praxisprofils oder der Online-Rezeption als Seitenaufruf protokolliert. So sehen Sie auch, wie viele Patienten den Link geöffnet, aber nicht gebucht haben.

Öffnen Sie Einstellungen › Online-Rezeption › Terminbuchung einbetten.

  1. Legen Sie unter Was soll angezeigt werden? bei Bedarf fest, welche Termintypen, Kalender oder Standorte angeboten werden.
  2. Füllen Sie den Bereich Kampagne (optional) aus:
FeldParameterBeispiel
Quelleutm_sourcegoogle, google_business, instagram, newsletter, qr
Mediumutm_mediumcpc, organic, social, email, print
Kampagnennameutm_campaignneupatienten_herbst_2026
Suchbegriff (optional)utm_termorthopaede_bochum
Variante (optional)utm_contentflyer_a, anzeige_2

Quelle und Kampagnenname sind Pflicht – erst dann werden die Parameter an den Link angehängt. Für Quelle und Medium gibt es Vorschläge, Sie können aber auch eigene Werte eingeben (z. B. x oder linkedin).

Die Werte werden automatisch kleingeschrieben und Leerzeichen durch Unterstriche ersetzt, damit sich Ihre Auswertung nicht in Newsletter, newsletter und news letter aufsplittert. E-Mail-Adressen und URLs sind als Werte nicht erlaubt.

Unter So erscheint es am Termin sehen Sie sofort, wie die Kampagne später am Termin angezeigt wird.

  1. Verwenden Sie das Ergebnis:
    • Direktlink – für Anzeigen, Google-Unternehmensprofil, Newsletter, Social-Media-Posts und Ihre Website.
    • QR-Code – für Flyer, Plakate, Visitenkarten oder das Wartezimmer. Der Code enthält den Direktlink inklusive Kampagne.
    • HTML-Code zum Einbetten – siehe Hinweis unten.
Pro Kanal ein eigener Link

Erstellen Sie für jeden Kanal einen eigenen Link, z. B. einen für die Google-Anzeige, einen für den Flyer und einen für den Newsletter. Nur so lassen sich die Kanäle später unterscheiden.

Direktlink statt Einbettung für Kampagnen

Die Kampagnen-Parameter im Einbettungs-Code sind fest eingetragen. Betten Sie das Widget mit Kampagne auf Ihrer Homepage ein, wird jede Buchung über Ihre Website dieser Kampagne zugeordnet – auch von Besuchern, die gar nicht über die Anzeige kamen. Für Anzeigen und andere Kampagnen verwenden Sie daher den Direktlink. Den Einbettungs-Code auf der Homepage lassen Sie ohne Kampagne (oder markieren ihn bewusst als utm_source=website).

Die Parameter funktionieren auf allen öffentlichen Praxislinks, auch wenn Sie sie selbst anhängen oder Ihr Werbekonto sie automatisch ergänzt:

LinkSeite
https://app.drwait.de/b/IHRE-PRAXIS-IDOnline-Terminbuchung
https://app.drwait.de/r/IHRE-PRAXIS-IDOnline-Rezeption
https://app.drwait.de/p/IHRE-PRAXIS-IDPraxisprofil / Patienten-App

Beispiel:

https://app.drwait.de/b/IHRE-PRAXIS-ID?utm_source=google&utm_medium=cpc&utm_campaign=neupatienten_herbst_2026

Folgende Parameter werden ausgewertet:

ParameterBedeutung
utm_source, utm_medium, utm_campaign, utm_term, utm_contentStandard-Kampagnenparameter
gclidKlick-ID von Google Ads (wird von Google automatisch angehängt, wenn die automatische Tag-Kennzeichnung aktiv ist)
fbclidKlick-ID von Meta (Facebook/Instagram)

Andere Parameter werden ignoriert. Werte, die wie eine E-Mail-Adresse oder URL aussehen, werden verworfen; jeder Wert wird auf 200 Zeichen gekürzt.

Führt ein Link über die Online-Rezeption (/r/…) weiter zur Terminbuchung, werden die Kampagnen-Parameter automatisch mitgenommen. Verweist die Online-Rezeption auf ein externes Buchungssystem, werden sie an dessen Link angehängt.

Wo sehe ich die Kampagne?​

Öffnen Sie den Termin und wechseln Sie auf den Reiter Erweitert. Dort steht bei Terminen, die über einen Kampagnenlink gebucht wurden, eine Zeile wie:

Kampagne: google / cpc / neupatienten_herbst_2026

Wurde über eine Google- oder Meta-Anzeige gebucht, wird zusätzlich die Klick-ID (gclid bzw. fbclid) angezeigt. Termine ohne Kampagne zeigen diese Zeile nicht.

Die Kampagne wird einmal bei der Buchung gespeichert und danach nicht mehr verändert – auch nicht, wenn der Patient den Termin bestätigt, die Praxis ihn verschiebt oder er abgesagt wird. Sie bleibt dauerhaft am Termin und ist zusätzlich über die API abrufbar.

Kampagnen auswerten​

Unter Einstellungen › Termine › Terminstatistiken finden Sie den Reiter Kampagnen.

  1. Wählen Sie den Zeitraum, in dem die Termine gebucht wurden.
  2. Grenzen Sie bei Bedarf nach Quelle, Medium oder Kampagne ein und klicken Sie auf Anwenden.

Oben sehen Sie die Summen für den Zeitraum:

KennzahlBedeutung
BuchungenVom Patienten bestätigte Termine mit Kampagne
AktivDavon Termine, die weiterhin bestehen
EntferntDavon Termine, die später abgesagt oder gelöscht wurden
Praxisentscheidung offenDavon Terminanfragen, die die Praxis noch bestätigen muss

Darunter steht eine Zeile pro Kombination aus Quelle, Medium und Kampagne. Ein Klick auf die Quelle zeigt die einzelnen Termine dieser Kampagne; jeder Termin lässt sich direkt öffnen. Mit CSV herunterladen exportieren Sie die Termine des Zeitraums für Ihre eigene Auswertung.

Conversion-Tracking​

Als Conversion zählt in Dr.wait ein gebuchter und vom Patienten bestätigter Termin mit Kampagne. Reservierungen, die der Patient nicht abschließt, zählen nicht.

Weil auf app.drwait.de bewusst keine Tracking-Tags von Google, Meta oder anderen Anbietern laufen, messen Sie Conversions nicht per Pixel, sondern über die Daten am Termin:

  • In Dr.wait: Die Kampagnen-Auswertung zeigt die Buchungen pro Kampagne. Zusammen mit den Seitenaufrufen aus der API ergibt sich die Conversion-Rate pro Kampagne (Aufrufe → Buchungen).
  • In Google Ads: als Offline-Conversions, siehe unten.
  • Meta: Die fbclid wird ebenso gespeichert und kann für einen Offline-Abgleich über die API genutzt werden.

Buchungen an Google Ads zurückmelden​

So sieht Google Ads nicht nur den Klick, sondern jeden bestätigten Termin – mit der Anzeige und dem Suchbegriff, die ihn gebracht haben.

Einmalig einrichten

  1. Aktivieren Sie in Google Ads die automatische Tag-Kennzeichnung. Google hängt dann an jeden Anzeigenklick eine Klick-ID (gclid) an, die Dr.wait am Termin speichert.
  2. Legen Sie unter Ziele › Conversions › Neue Conversion-Aktion › Importieren eine Conversion-Aktion für Conversions aus Klicks an, z. B. mit dem Namen Dr.wait Terminbuchung.
  3. Verwenden Sie für die Anzeige den Kampagnenlink Ihrer Buchungsseite als Ziel-URL.

Automatischer Abruf (empfohlen)

Google Ads holt die Buchungen selbst ab, z. B. täglich. Sie müssen danach nichts mehr hochladen.

  1. Öffnen Sie die Kampagnen-Auswertung und gehen Sie zum Abschnitt Automatischer Abruf.
  2. Tragen Sie unter Conversion-Name den Namen Ihrer Conversion-Aktion ein – genau so, wie er in Google Ads heißt – und klicken Sie auf Zugang erstellen.
  3. Dr.wait zeigt URL, Benutzername und Passwort. Das Passwort wird nur dieses eine Mal angezeigt; kopieren Sie es direkt.
  4. Legen Sie in Google Ads unter Ziele › Conversions › Uploads › Zeitpläne einen neuen Zeitplan an, wählen Sie als Quelle HTTPS und tragen Sie URL, Benutzername und Passwort ein. Als Häufigkeit empfehlen wir täglich.

Jeder Abruf liefert die bestätigten Termine mit Google-Klick-ID der letzten 90 Tage. Zeilen, die Google bereits importiert hat, zählt Google nicht erneut. Unter Zuletzt abgerufen sehen Sie, wann Google die Daten zuletzt geholt hat.

  • Conversion-Name ändern: neuen Namen eintragen und Speichern klicken. Das Passwort bleibt gleich.
  • Neues Passwort erstellen: das bisherige Passwort funktioniert sofort nicht mehr. Tragen Sie das neue im Zeitplan in Google Ads ein.
  • Zugang widerrufen: Google Ads kann die Daten danach nicht mehr abrufen.

Pro Praxis gibt es einen Zugang. Den Abruf und seine Einstellungen verwalten nur Administratoren der Praxis.

Alternativ: manuell hochladen, z. B. wöchentlich

  1. Öffnen Sie die Kampagnen-Auswertung und wählen Sie den Zeitraum seit dem letzten Upload.
  2. Tragen Sie unter Conversions exportieren den Namen Ihrer Conversion-Aktion ein – genau so, wie er in Google Ads heißt.
  3. Klicken Sie auf Conversions als CSV herunterladen.
  4. Laden Sie die Datei in Google Ads unter Ziele › Conversions › Uploads hoch.
Rechtzeitig hochladen

Google Ads nimmt Klick-Conversions nur bis 90 Tage nach dem Anzeigenklick an. Laden Sie deshalb regelmäßig hoch; doppelt hochgeladene Zeilen erkennt Google und zählt sie nicht erneut.

Inhalt der Daten

Abruf und Download enthalten jeden bestätigten Termin mit Google-Klick-ID im Importformat von Google Ads: Klick-ID, Conversion-Name und Buchungszeitpunkt (Zeitzone Europe/Berlin). Termine, die nach der Bestätigung abgesagt wurden, sind enthalten – die Buchung hat die Anzeige ja gebracht. Über die API oder CLI können Sie sie weglassen und einen Conversion-Wert pro Termin mitgeben.

Beim Einrichten der Offline-Conversions unterstützen wir Sie gern.

Grenzen​

  • Maßgeblich ist der Link, über den gebucht wird. Öffnet ein Patient zuerst die Anzeige und bucht Tage später über Ihre Homepage, zählt die Homepage (bzw. keine Kampagne). Dr.wait speichert nichts auf dem Gerät des Patienten, um Besuche wiederzuerkennen.
  • Kampagnen Ihrer Website werden nicht an das Widget weitergegeben. Landet ein Patient mit utm_* auf Ihrer Homepage und bucht dort im eingebetteten Widget, sieht Dr.wait nur die Parameter im Einbettungs-Code, nicht die Ihrer Seite.
  • Patienten-App: Öffnet der Link die Dr.wait-App, wird die Kampagne übernommen. Muss die App erst installiert werden, bleibt die Kampagne unter Android erhalten, unter iOS derzeit nicht.
  • Telefonische Buchungen über den Telefonassistenten oder durch das Praxisteam haben keine Kampagne.
  • Filter in der Kampagnen-Auswertung: In Dr.wait filtern Sie nach Quelle, Medium und Kampagne. Nach Terminart, Behandler, Suchbegriff oder Variante werten Sie über die API aus.
  • Die Vorschau in den Einstellungen wird ohne Kampagne geladen, damit Ihre eigenen Tests die Auswertung nicht verfälschen.

Auslesen über die API​

Für eigene Auswertungen, Dashboards oder einen automatischen Upload an Google Ads steht die Kampagne über die Dr.wait-API, das SDK und die drwait-CLI zur Verfügung. Zugriff haben nur Administratoren der Praxis.

Feld attribution am Termin​

"attribution": {
"source": "google",
"medium": "cpc",
"campaign": "neupatienten_herbst_2026",
"term": "orthopaede_bochum",
"content": "anzeige_2",
"landing": "BOOKING",
"capturedAt": "2026-09-24T08:15:02.000Z",
"extra": {
"gclid": "Cj0KCQjw…",
"src": "embed"
}
}
FeldBedeutung
source, medium, campaign, term, contentWerte von utm_source … utm_content
landingSeite, über die gebucht wurde: BOOKING, RECEPTION, PROFILE, INVITE, FORM, APPOINTMENT
capturedAtZeitpunkt, zu dem die Kampagne gespeichert wurde (vom Server gesetzt)
extra.gclid, extra.fbclidKlick-IDs von Google Ads bzw. Meta
extra.srcembed, wenn über das eingebettete Widget gebucht wurde

Termine ohne Kampagne haben kein attribution-Feld.

Endpunkte​

ZweckRESTCLI
Einzelner TerminGET /appointment/:iddrwait appointment get <id>
Termine eines ZeitraumsGET /place/:placeId/scheduledrwait appointment list --from … --to …
TerminsuchePOST /place/:placeId/appointments/searchdrwait appointment search
Seitenaufrufe (letzte 30 Tage)GET /logs/:placeId?action=PAGE_VISIT&limit=500drwait logs action PAGE_VISIT --limit 500
Kampagnen-AuswertungGET /stats/:placeId/appointments?breakdown=campaign–
Conversions als CSVGET /stats/:placeId/conversions/exportdrwait stats conversion-export
Automatischer Abruf verwaltenGET, POST, DELETE /place/:placeId/conversion-feeddrwait stats conversion-feed show, create, revoke
Einstellungen des AbrufsPOST /place/:placeId/conversion-feed/settingsdrwait stats conversion-feed update

Seitenaufrufe liefern je Aufruf die Seite (page) und – falls vorhanden – dieselbe attribution. Standardmäßig werden 200 Einträge zurückgegeben, maximal 1000; Seitenaufrufe werden 30 Tage aufbewahrt. Für längere Zeiträume rufen Sie die Daten regelmäßig ab.

Kampagnen-Auswertung und Conversions​

Beide Endpunkte erwarten den Zeitraum, in dem die Termine gebucht wurden: attributionCapturedFrom (inklusive) und attributionCapturedTo (exklusive) als ISO-Zeitstempel. Optional filtern Sie exakt nach attributionSource, attributionMedium, attributionCampaign, attributionTerm, attributionContent, attributionGclid, resourceId (Behandler) und appointmentTypeId (Terminart). Gezählt werden – wie in Dr.wait – vom Patienten bestätigte Termine, einschließlich später abgesagter.

breakdown=campaign liefert die Summen und eine Zeile pro Quelle, Medium und Kampagne (bookings, active, removed, onRequest). conversions/export liefert die CSV-Datei für Google Ads mit diesen zusätzlichen Parametern:

ParameterBedeutung
conversionNameName der Conversion-Aktion in Google Ads (Standard: Dr.wait Terminbuchung)
conversionValueWert pro Termin, z. B. 80; ohne Angabe bleibt die Spalte leer
conversionCurrencyWährung zum Wert (Standard: EUR)
excludeRemovedtrue lässt später abgesagte Termine weg

Mit der CLI z. B. die Conversions für September mit einem Wert von 80 € pro Termin:

drwait --place IHRE-PRAXIS-ID stats conversion-export --from 2026-09-01 --to 2026-09-30 \
--conversion-name "Dr.wait Terminbuchung" --value 80

--from und --to sind hier ganze Kalendertage; die Datei landet als conversions-…csv im aktuellen Ordner, mit --out - auf der Standardausgabe.

Automatischer Abruf über API und CLI​

Der Abruf hat eine feste Adresse pro Praxis:

https://app.drwait.de/longstreet-service-v2/feeds/IHRE-PRAXIS-ID/conversions.csv

Sie ist mit Benutzername (drwait) und Passwort geschützt (HTTP-Basic-Authentifizierung). Ein Anmelde-Cookie oder API-Token öffnet sie nicht, und das Passwort funktioniert nirgendwo sonst in Dr.wait. Jeder Abruf liefert die letzten 90 Tage.

POST /place/:placeId/conversion-feed legt den Zugang an oder ersetzt das Passwort und gibt es einmalig zurück. Einstellungen (JSON): conversionName, conversionValue, conversionCurrency und excludeRemoved (true/false), mit denselben Regeln wie beim Download. GET zeigt Benutzername, Einstellungen und den letzten Abruf, nie das Passwort.

Mit der CLI z. B. einen Zugang mit 80 € pro Termin anlegen und später abgesagte Termine weglassen:

drwait --place IHRE-PRAXIS-ID stats conversion-feed create \
--conversion-name "Dr.wait Terminbuchung" --value 80 --exclude-removed

create gibt URL, Benutzername und Passwort einmalig aus. Existiert schon ein Zugang, ersetzt create --yes das Passwort; update ändert nur die Einstellungen, revoke --yes schaltet den Abruf ab.

Alle Termine eines Monats mit Kampagne:

drwait --json --place IHRE-PRAXIS-ID appointment list --from 2026-09-01 --to 2026-09-30 \
| jq '[.data[] | select(.attribution) | {start, type, campaign: .attribution.campaign, gclid: .attribution.extra.gclid}]'

Buchen Sie Termine über ein eigenes Frontend per API, können Sie attribution beim Anlegen (POST /appointment) mitsenden. Es gelten dieselben Regeln: erlaubte Felder, 200 Zeichen, keine E-Mail-Adressen oder URLs; capturedAt setzt der Server.

Datenschutz​

  • Gespeichert werden nur die oben genannten Kampagnenwerte – nie die vollständige Adresse der Seite, nie die Herkunftsseite als URL und keine Daten auf dem Gerät des Patienten.
  • Die Kampagne ist nur für die Praxis sichtbar, nicht für den Patienten, und wird nicht an Google, Meta oder andere Dritte übertragen. Google Ads erhält die gclid nur, wenn Sie die Datei selbst hochladen oder den automatischen Abruf einrichten.
  • Der automatische Abruf ist passwortgeschützt. Dr.wait speichert das Passwort nur als Prüfwert (Hash), nicht im Klartext; ein neues Passwort oder der Widerruf sperrt den bisherigen Zugang sofort.
  • Die Kampagne wird zusammen mit dem Termin aufbewahrt und gelöscht.