Die Nutzung des automatischen Formular Trackings ist bei Single Page Applications, die auf Frameworks wie Angular, React oder VueJS beruhen, problemlos möglich. Da in SPAs kein Neuladen der Seite stattfindet, sondern Formulare per AJAX Request verschickt werden, müssen Sie das Versenden der Formular Trackrequests manuell konfigurieren.
Dies erfolgt in 3 Schritten:
- Vorbereitung – Auswahl eines Attributs der Input Elemente mit eindeutigen Werten
- Initialisierung – Das Formular muss markiert und ans Pixel übergeben werden
- Versand – das Formular muss an den Mapp Intelligence Server versendet werden – entweder als „ausgefüllt“ oder „abgebrochen“
Vorbereitung
Grundsätzlich benötigen wir für jedes Form Element ein eindeutiges Attribut. Standardmäßig ist das das name-Attribut und kann mit dem wt.formFieldAttribute angepasst werden, was auch direkt in der Tag Integration Oberfläche möglich ist:
Anmerkung: die Benennung des Pixelinstanzobjektes in Form von „wt“ ist nicht vorgegeben, ggf. heißt das Objekt bei Ihnen also anders.
Diese Konfiguration des .formFieldAttribute Properties kann auch problemlos mit der globalen Konfiguration (i.d.R. webtrekkConfig) oder Seitenkonfiguration (i.d.R. pageConfig) ans Pixel übergeben werden.
Entscheiden Sie sich für ein Attribut, das in jedem einzelnen Inputelement einen eindeutigen Wert hat! Elemente mit mehrfach vorkommenden Werten oder Elemente ohne dieses Attribut werden beim Formtracking ignoriert (was ggf. auch gewünscht sein kann).
Initialisierung des Formulars
Jetzt müssen Sie dem Pixel mitteilen, welches Element auf Ihrer Seite das Formular ist, das sie tracken wollen – i.d.R. wird es sich dabei um ein Form Element handeln, dass Sie entweder allgemein mit „document.forms[#]“ ansprechen können, oder natürlich mit document.getElementById(„id“) wenn das Formelement ein id-Attribut besitzt.
Dann gibt es 3 Möglichkeiten, diese Information dem Pixel zukommen zu lassen:
- Im Tag Integration Frontend
- Per wts.push() -> Implementierungen mit Tag Integration
- Direkt in der Pixelinstanz -> Implementierungen ohne Tag Integration
Initialisierung im Tag Integration Frontend
Im Mapp Tag Integration Frontend legen Sie einen Parameter an, der das Formular markiert:
Unter Rules erstellen Sie eine Regel, die konfiguriert auf welcher Seite das Formular zu finden ist:
Jetzt gehen wir in unseren Container, und dort ins Mapp Intelligence Plugin. Dort legen wir unter Form ein neues Form Tracking an (1), hinterlegen den Form Parameter (2) und die URL Regel (3):
Nach den Änderungen nicht vergessen die Änderungen zu speichern und den Container neu zu publishen, damit die Änderungen wirksam werden.
Initialisierung im Code
Gerade in SPAs kann es einfacher sein, ein Formular direkt im Code zu markieren.
Wenn Sie Tag Integration nutzen steht Ihnen dafür die wts.push Methode zur Verfügung, und die Übergabe des ersten Formulars auf einer Seite würde so aussehen:
wts.push(['formTrackInstall', document.forms[0]]);
Wenn Sie keine Tag Integration laden, dann können Sie die Markierung direkt in der Pixelinstanz vornehmen:
wt.formTrackInstall(document.forms[0])
Senden des Form Requests
Wenn Sie Tag Integration nutzen, dann können Sie ein Formular mit wts.push so versenden:
wts.push(["send","form"])
Standardmäßig wird ein Formular jetzt als „abgebrochen“ übermittelt. Wenn es als „abgesendet“ in die Trackingdaten eingehen soll, dann muss vor dem send form folgendes ausgeführt werden:
wts.push(['formTrackSubmit']);
Damit gilt das Formular dann als submitted. Ob submittet oder nicht hat keinen Einfluss darauf, wie die einzelnen Elemente übertragen werden – hier wird unabhängig davon übermittelt ob ein Feld ausgefüllt war oder nicht.
Senden des Form Requests ohne Tag Integration
Hier wird der Form Request mit folgender Methode aus der Pixelinstanz (hier wieder „wt“ genannt) versendet:
wt.sendFormRequest(document.forms[0])
Damit wird ein Formular als „abgebrochen“ versendet. Soll ein Formular als „abgeschickt“ getrackt werden, dann müssen Sie zuvor das .formSubmit Property in der Pixelinstanz auf true setzen:
wt.formSubmit = true;
Beispielhafter Einbau in Ihre SPA
Haben Sie eine Komponente mit einem Formular, dann würden Sie das send form im Destroy-Hook der Komponente einbauen, und das formTrackSubmit an die Methode hängen, die die Formular Daten abschickt.