Funktionsweise und Sicherheit
Der Kurskalender meldet Ereignisse an die einbettende Webseite — welche Domänen sie empfangen dürfen und wie Sie sie in Ihrem Listener prüfen.
Funktionsweise:
Sicherheit:
So funktioniert die Event-Bridge
Der Kurskalender wird als eingebetteter Inhalt (iFrame) in Ihre Webseite eingefügt. Aus Sicherheitsgründen sind eingebettete Inhalte und die umgebende Webseite im Browser voneinander getrennt: Ihre Webseite kann nicht einfach mitlesen, was im Kurskalender passiert.
Die Event-Bridge stellt für diesen Zweck einen definierten Weg bereit. Erreicht ein Besucher einen der festgelegten Schritte, sendet der Kurskalender eine Nachricht an das umgebende Fenster Ihrer Webseite – das sogenannte Elternfenster (parent frame). Dieses Ereignis (event) enthält strukturierte Zusatzdaten, etwa Kurstitel, Preis oder Zahlungsart.
In der Praxis bedeutet das: Auf Ihrer Webseite hinterlegen Sie ein JavaScript, das auf diese Ereignisse hört. Sobald ein Ereignis eintrifft, rufen Sie darin Ihr eigenes Conversion-Skript auf.
Bewusst ist in SEMCO kein festes Tracking-System eingebaut. Stattdessen erhalten Sie die Information und entscheiden selbst, was damit geschieht. Typische Anwendungen sind:
- Google Ads bzw. Google Conversion Tracking
- Facebook Pixel
- ein Analyse-System (intern oder extern)
- beliebige eigene Skripte, etwa zum Auslösen einer internen Statistik
Der Vorteil dieses Ansatzes: Sie sind nicht auf die von SEMCO unterstützten Tracking-Anbieter beschränkt und behalten die vollständige Kontrolle darüber, welche Daten Ihr Tracking-Anbieter erhält und zu welchem Zeitpunkt.
Technischer Hintergrund
Die Event-Bridge nutzt den Standard-Browsermechanismus postMessage(), mit
dem eingebettete Inhalte sicher mit der umgebenden Seite kommunizieren können. Es ist keine
zusätzliche Software und keine Freigabe im Browser erforderlich; der Mechanismus wird von
allen aktuellen Browsern unterstützt.
Weiterführende technische Details zu postMessage() finden Sie in der MDN-Dokumentation.
Zugelassene Domänen in SEMCO
Der SEMCO-Kurskalender darf nur auf Webseiten eingebettet werden, deren
Domänen von SEMCO zugelassen sind. Durchgesetzt wird das über den
Content-Security-Policy-Header (CSP) des Kurskalenders, insbesondere über die Direktive
frame-ancestors. Diese Domänen hinterlegt unser Support in Absprache mit
Ihnen bei der Einrichtung.
Die Event-Bridge prüft dieselbe Liste: Ereignisse gehen ausschließlich an das einbettende Fenster, und nur dann, wenn dessen Domäne zugelassen ist. Eine fremde Webseite kann Ihren Kurskalender also weder anzeigen noch Ereignisse von ihm empfangen.
Zwei Domänen spielen hier eine Rolle:
- Die Zulassungsliste in SEMCO enthält die Domäne Ihrer Webseite, also der Seite, die den Kurskalender einbettet.
event.originist dagegen die Domäne des Kurskalenders, also der Seite, die nach Weiterleitungen tatsächlich geladen ist. Sie kann vomsrc-Attribut des iFrame abweichen, etwa vonhttpzuhttpsoder mit und ohnewww. Der Kurskalender läuft meist unter einer Subdomäne Ihre Webseite.
Als Origin bezeichnet man die Kombination aus Protokoll und Domäne, also
beispielsweise https://www.ihre-domain.de.
Möchten Sie den Kurskalender auf einer weiteren Domäne einbetten, etwa auf einem Test- oder Staging-System, wenden Sie sich an unseren Support, damit die Domäne ergänzt wird. Ohne diesen Eintrag empfängt die Seite keine Ereignisse.
Prüfungen auf Ihrer Webseite
Ein Empfänger für Nachrichten (Listener) empfängt grundsätzlich Nachrichten von jedem Fenster – also auch von anderen eingebetteten Inhalten oder von Skripten Dritter. Prüfen Sie deshalb in Ihrem Listener immer diese drei Punkte:
event.origingegen die von Ihnen erwartete Domäne des Kurskalenders. Diese Prüfung ist zwingend erforderlich. Lesen Sie diesen Wert nicht aus demsrc-Attribut des iFrame ab. Verlässlich ist nur die Domäne, die das Test-Skript ausgibt.event_nameauf das Präfixsemco_. So schließen Sie Nachrichten anderer Systeme aus, die zufällig dieselbe Struktur verwenden.- Die Hauptversion des Schemas im Feld
version, damit Sie nur Ereignisse verarbeiten, deren Aufbau Sie kennen.
Alle drei Prüfungen sind im Grundgerüst unter Tracking-Werkzeuge anbinden bereits enthalten.
