Zum Hauptinhalt springen
Asynchronous Server Side Events übertragen Daten aus dem Shop an ein fremdes System, ohne dass der Käufer darauf wartet. Wie die Übertragung eingerichtet wird, steht in der Referenz. Diese Seite zeigt, wie die zu übertragende Nutzlast entsteht. Wegweiser: Asynchronous Server Side Events · Referenz: Abschnitt ASSE

Vorab: ohne Einwilligung wird nichts gesendet

Die Beispiele auf dieser Seite übertragen Daten an Dienste Dritter, im zweiten Beispiel die IP-Adresse, die Browserkennung, Cookie-Werte und die gehashten Stammdaten des angemeldeten Kunden.
Lösen Sie eine solche Übertragung erst aus, wenn der Besucher ihr zugestimmt hat.Dass die Übertragung vom Server ausgeht und nicht aus dem Browser, ändert daran nichts. Entscheidend ist, welche Daten an wen fließen, nicht von wo.Klammern Sie ASSE-Fire() deshalb in die Prüfung auf die Einwilligung zur betreffenden Gruppe, wie sie der Consent-Layer bereitstellt. Der Parameter ServiceCategory im Abschnitt <ASSE> benennt die Kategorie, zu der das Ereignis gehört.
Ein Hashwert ist keine Anonymisierung. Eine mit SHA-256 gehashte E-Mail-Adresse ist genau dazu gedacht, beim Empfänger wieder einer Person zugeordnet zu werden. Das ist der Zweck des Verfahrens, und deshalb bleibt es eine Übermittlung personenbezogener Daten. Referenz: AC- (AgreementCookies)

Das gemeinsame Muster

Alle Beispiele setzen die Nutzlast in einem freien Parameter zusammen und übergeben ihn an ASSE-Fire().
Vergessen Sie das _jsonencoding bei keinem Text. Ein Produktname mit einem Anführungszeichen, ein Nachname mit einem Apostroph, und die Nutzlast ist kein gültiges JSON mehr. Der Empfänger verwirft dann die gesamte Übertragung, nicht nur das eine Feld. Bemerken würden Sie das erst, wenn die Zahlen im Zielsystem nicht mehr stimmen.Schalten Sie die Preisformatierung unmittelbar nach dem Preis wieder ein. Bleibt sie aus, erscheinen alle weiteren Preise auf dieser Seite unformatiert, also ohne Tausendertrennzeichen und mit Punkt statt Komma. In der bisherigen Beschreibung fehlt das Wiedereinschalten im zweiten Beispiel.Setzen Sie den Zeitpunkt mit ~DC-DateTime_set~, bevor Sie $DC-DateTime_unixtimestamp$ verwenden. Alle DC-DateTime-Tags beziehen sich auf den Zeitpunkt, den dieses Tag gesetzt hat. In der bisherigen Beschreibung fehlt es in allen Beispielen.
Referenz: DC-FPX_set() · DC-FPX_append · DC-FPX_jsonencoding · ASSE-Fire() · WS-DisableXSSProtectionOnce

Beispiel 1: Facebook Conversion API, Grundform

Die Konfiguration

Die Versionsnummer im Endpunkt, hier v10.0, gehört zur Schnittstelle des Anbieters und veraltet. Prüfen Sie beim Einrichten, welche Fassung aktuell unterstützt wird.

PageView

Auf jeder Seite, auf der das Ereignis gemeldet werden soll:

ViewContent

Auf der Produktdetailansicht:
Der Zähler DC-Int2 sorgt dafür, dass das Trennzeichen zwischen den Kategorieebenen nur zwischen den Einträgen steht und nicht vor dem ersten.Die bisherige Beschreibung schreibt die Klammerung dafür in das Argument des _append-Tags hinein. Das funktioniert, ist aber schwer zu lesen. Im Beispiel oben steht sie davor, mit demselben Ergebnis.

AddToCart, InitiateCheckout und Purchase

Diese drei Ereignisse unterscheiden sich nur im Namen und in der Stelle, an der sie stehen.
Für Purchase ändern Sie nur "event_name":"Purchase".
Für AddToCart wird der Produktname aus dem Warenkorb geholt. Dafür gibt es kein Tag mit eingebautem HTML-Entfernen, deshalb geht es über zwei Schritte:
Referenz: CAT-PathData · CAT-PathRegular · BASKET-PR-Data · BASKET-OrderTotal · WS-SID · WS-Currency

Beispiel 2: zusätzlich mit Cookies, IP-Adresse und Kundendaten

Die zweite Fassung ergänzt die Nutzlast um Angaben, mit denen der Empfänger den Besucher wiedererkennen kann.

Die Hash-Kennung anlegen

Die Kundendaten werden vor der Übertragung gehasht. Den Schlüssel dafür legen Sie in der shop.config an:
Erzeugen Sie den Schlüssel selbst und übernehmen Sie keinen aus einer Beschreibung. Ein Schlüssel, der in einer Anleitung steht, ist kein Geheimnis mehr.

Die Ergänzungen in der Nutzlast

Jedes einzelne dieser Felder ist ein personenbezogenes Datum, und zusammen ergeben sie ein vollständiges Kundenprofil. Für diese Fassung gilt der Hinweis vom Anfang der Seite in verschärfter Form: ohne ausdrückliche Einwilligung gar nicht.Nehmen Sie außerdem nur die Felder auf, die der Empfänger tatsächlich braucht. Geburtsdatum und Telefonnummer sind für eine Reichweitenmessung in aller Regel entbehrlich.
Jede Klammerung wie {A-E-Mail} sorgt dafür, dass das Feld nur erscheint, wenn es gefüllt ist. Ein Hashwert eines leeren Felds wäre für alle Kunden derselbe und damit nicht nur nutzlos, sondern irreführend. Referenz: DC-FPX_hash() · CheckCookie- · WS-ClientIPAddr · WS-UserAgent · ST-LoggedIn

Beispiel 3: Newsletter-Anmeldung an einen Dienstleister übergeben

Der Besucher trägt sich über ein INQUIRY-Formular ein, und das Ereignis meldet die Anmeldung an den Newsletter-Dienstleister.
Zwei <+ConditionGroup>-Abschnitte sind untereinander oder-verknüpft. Der Dienst antwortet je nach Fall mit 200 oder 201, und beides soll als Erfolg gelten. Im Template des Formulars:
Die bisherige Beschreibung hat an dieser Stelle zwei Fehler.Erstens stehen die Tags dort in der Tilde-Schreibweise innerhalb des _append-Arguments. In einem Tag-Argument gilt die Dollar-Schreibweise, so wie in allen übrigen Beispielen dieser Seite.Zweitens fehlt die Maskierung. Gerade hier wiegt das schwer, denn es handelt sich um Eingaben aus einem Formular. Ein Nachname mit Apostroph genügt, und die Anmeldung geht verloren. Deshalb der Umweg über drei freie Parameter mit _jsonencoding.Eine Newsletter-Anmeldung braucht eine Bestätigung per E-Mail. Übergeben Sie die Adresse an den Dienstleister so, dass dieser das Bestätigungsverfahren durchführt, und behandeln Sie den Empfänger erst danach als angemeldet.

Die Alternative: dieselbe Nutzlast mit den JSON-Tags

Alles auf dieser Seite lässt sich auch mit den Tags der JSON-Schnittstelle bauen. Dann setzt der Shop die Klammern und maskiert die Werte, und beide Fehlerquellen aus den Warnungen oben entfallen. Für neue Umsetzungen ist das der empfehlenswerte Weg. Die Fassung mit DC-FPX_append bleibt nachvollziehbar, solange nur Zahlen und Kennungen übertragen werden. Anwendungsbeispiel: Beispiele zur JSON-Schnittstelle · Referenz: EJD- (JSON-Daten)

Verwandte Themen