Events und Tracking

Eventliste

Modul Eventname extra Daten Hinweise
search load {} wird beim Laden der Suche einmalig ausgelöst
search view {ObjMetaNr} wird ausgelöst, wenn ein bestimmtes Objekt in der Suche geladen wird
object load {ObjMetaNr} wird ausgelöst, wenn ein bestimmtes Objekt angezeigt wird
object share {ObjMetaNr} wird ausgelöst, wenn für ein bestimmtes Objekt ein Share Button genutzt wird (zählt nicht, ob der Share dann auch erfolgt ist bei Drittanbietern)
booking load {ObjMetaNr} wird ausgelöst, wenn die Buchungsstrecke für ein Objekt geladen wird
booking render-step {ObjMetaNr,step} wird bei jedem Buchungsschritt ausgelöst
booking submit-error {ObjMetaNr} bei versuchter aber fehlgeschlagener abgesendeter Buchung (diverse Gründe)
booking submit-success {ObjMetaNr, BuchungNr, price [, payment]} bei abgesendeter erfolgreicher Buchung (payment=true, wenn Onlinezahlung gewählt)
contactform submit {mode, objectId} unverbindliches Anfrageformular wurde verschickt

Beispielcode für eigene Custom Anbindung beliebiger Tracker

Das Frontend stellt verschiedene Javascript Events bereit die bei diversen Aktionen ausgelöst werden. Diese können durch einen beliebigen Listener empfangen und verarbeitet werden. Dazu müssen die Listener in der nachfolgenden Struktur registriert werden.


    // make sure we have the client object, even if client is loaded asynchronously at a later stage
    var secra_op_client;
    if(!secra_op_client){ secra_op_client = {}; }

    // populate the listener object
    secra_op_client.tracking = {}; // all listeners are placed under this object

    secra_op_client.tracking.search = {}; // this level is the modulname (see list)

    // attach a listener to an event of this module
    // note: you are not required to use an anonymus function here and you can reuse the same function for
    // different events.
    secra_op_client.tracking.search.view = function(module, eventname, attached_data){
        // do something useful here ;)
    };
    // alternative syntax as per JS standard:
    // secra_op_client.tracking.booking["submit-success"] = function(module, eventname, attached_data){   };

Hinweis: Die Events können innerhalb eines Seitenaufrufs mehrfach auslösen, da der Nutzer ohne Seitenwechsel andere dynamische Inhalte laden kann. Wird jedoch nur nur zwischen bereits geladenen Seiten umgeschaltet (ohne dazwischen neue Inhalte zu laden) erfolgt kein neues "load" Event beispielsweise.

Tracking von Adwords Conversions (Standalone Methode)

Folgen Sie zum Erzeugen des Codes dieser Anleitung: https://support.google.com/google-ads/answer/6331314?hl=de#zippy=%2Cconversion-tracking-mithilfe-von-javascript-einrichten

Binden Sie den nachfolgenden Code an das Ende des Body Elements ein.

Hinweis: Der Code kann nicht zusammen mit anderen Trackern benutzt werden die auch die Buchungsstrecken Events verwenden, da dann diese überschrieben werden. Verwenden Sie dann eine Method-Chain, um alle Listener zu bedienen.

<script>
    let secra_op_client;
    if (!secra_op_client) { secra_op_client = {}; }
    secra_op_client.tracking = {};
    secra_op_client.tracking.booking = {}; // this level is the modulname (see list)
    secra_op_client.tracking.booking['submit-success'] = function(module, eventname, attached_data) {
      let imageelem = new Image();
      imageelem.src = '//www.googleadservices.com/pagead/conversion/1234567890/?value='+attached_data['price']+'&amp;currency_code=EUR&amp;label=xxx-XXx1xXXX123X1xX&amp;guid=ON&amp;script=0'; // random example, replace with your code
      imageelem.width = 1;
      imageelem.height = 1;
      document.getElementsByName('body')[0].append(imageelem);
    };
</script>

Tracking von Adwords Conversions (mit secraAnalytics.js Adapter)

Diese Verwendung kann problemlos mit dem nachfolgenden Punkt kombiniert werden. Geben Sie dazu unter dem Parameter extra_id die Analytics oder Adwords ID an, je nachdem.

<script type="text/javascript">
  var secraAnalyticsConfig = { 
    "client": "google", 
    "client_id": "AW-XXXXX", 
    "doNotLoadTagManager": false,
    "conversions": {
      "OP-EVENT-NAME-HERE": {
        "OBJEKTNUMMER-HIER": { "send_to": "LABEL-DER-CONVERSION-VON-GOOGLE" },
        "ANDERE-OBJEKTNUMMER-HIER": { "send_to": "LABEL-DER-CONVERSION-VON-GOOGLE" }
      }
    }
  };
</script>
<script type="text/javascript" src="https://www.optimale-praesentation.de/frontend/seo/secraAnalytics.js"></script>

Für den Wert OP-EVENT-NAME-HERE muss ein Key aus den vorhandenen Events (siehe oben) gewählt werden. Das Format lautet dabei "MODULNAME_EVENTNAME". Ein Beispiel: booking_submit-success, dies wäre eine Conversion bei erfolgreicher Buchung, was wohl der häufigste Anwendungsfall ist.

Wenn Sie nur eine Conversion für alle Objekte verwenden wollen, geben Sie als Objektnummer * an. Dieser Wert wird immer dann verwendet, wenn keine exakte Objektnummer vorhanden ist (Fallback).

Tracking im Frontend v2 der Optimalen-Präsentation mit Google Analytics

Das Frontend selbst ist eine SPA (Single Page Application), es sind daher keine PageViews außer der Einstiegsseite verfügbar. Damit dennoch entsprechende Aufrufe erfasst werden können, bietet das Frontend verschiedene Ereignisse die durch Programmcode (Javascript) in der umgebenden Webseite empfangen und an GA weitergeleitet werden können.

Die entsprechende Doku ist in den nachstehenden Abschnitten zu finden.

Mit Hilfe dieser Ereignisse kann das Frontend prinzipiell an jeden beliebigen Tracker angebunden werden, jedoch muss die Verbindung entsprechend programmiert werden.

Da diese Aufgabe natürlich nicht von jedem Nutzer selbst gelöst werden muss, bieten wir ein fertiges Javascript File an, dass mit den nötigen Trackingparametern GA mit allen Frontend Ereignissen befüllt, von Objektaufrufen bis Buchungen. Diese können dann in GA verarbeitet werden. Die Einrichtung von GA bleibt dabei dem Kunden überlassen (sofern nicht anders beauftragt).

Die Javascript Datei sollte (um zukünftige Updates zu erhalten) von unserem Server eingebunden werden. Eine Einbindung könnte beispielhaft so aussehen:

<script type="text/javascript">
  var secraAnalyticsConfig = { "client": "google", "client_id": "UA-XXXX-X", "doNotLoadTagManager": false}; // die client_id muss angepasst werden!
</script>
<script type="text/javascript" src="https://www.optimale-praesentation.de/frontend/seo/secraAnalytics.js"></script>

Achtung, die Einbindung wird den Tracking Code (gtag.js) selbstständig laden. Falls auf den Frontendseiten schon Tracking Code (gtag.js) eingebaut wurde, kann man durch das Setzen des "doNotLoadTagManager“ auf "true“ (siehe oberes Beispiel) das selbstständige Laden verhindern.

Je nachdem welche Detailtiefe man in GA haben möchte kann es sinnvoll sein eine bezahlte Version zu verwenden (die Free-Version verwirft Ereignisdetails bzw. sie sind nicht unbegrenzt sichtbar). Für elementare Statistiken ist die kostenlose Version aber ausreichend.

Zuordnung GA Events zu OP Frontend Events

Aktion Kategorie Event im Frontend (s.o.) Standard Event in GA
OP Event: Suche: load Suche:load search:load view_item_list
OP Event: Suche: view Suche:view search:view view_item_list_item*
OP Event: Objekt: load Objekt:load object:load view_item
OP Event: Objekt: share Objekt:share object:share share
OP Event: Buchungsstrecke: load Buchungsstrecke:load booking:load begin_checkout
OP Event: Buchungsstrecke: render-step Buchungsstrecke:render-step booking:render-step checkout_progress
OP Event: Buchungsstrecke: submit-error Buchungsstrecke:submit-error booking:submit-error checkout_submit_error*
OP Event: Buchungsstrecke: submit-success Buchungsstrecke:submit-success booking:submit-success purchase
OP Event: Kontaktformular: submit Kontaktformular:submit contactform:submit generate_lead

Mit * markierte Events sind nicht im Standard enthalten, werden aber von uns geschickt, um weitergehende Auswertungen zu erlauben.

Die Verfügbarkeit der einzelnen Optionen hängt von der verwendeten GA Connector Version ab.

Beispieleinrichtung in Google Analytics

Für diese Einrichtungsanleitung wird ein frisch angelegter (leerer) Google Analytics Account angenommen. Wenn Sie andere Google Dienste zum tracken verwenden ist diese Anleitung evtl. nicht passend. Ebenso sollten Sie beachten, dass bei vorhandenen komplexeren Trackingszenarien entsprechende Anpassungen nötig sein können. Bitte haben Sie Verständnis dafür, dass wir nur die Ausleitung der Ereignisse zu GA bereitstellen, wir können jedoch keinen Support für Google Produkte im Rahmen der Frontendeinbindung bereitstellen.

Nachdem Sie ein neues GA Projekt angelegt haben, erhalten Sie zunächst einen neuen Tracking Code.

Wir benötigen aus diesem Code für das Frontendtracking nur die Kennung, im oberen Teil des Screenshots als "Tracking ID" beschriftet. Der restliche Codeabschnitt der von GA bereitgestellt wird kann auf den anderen Seiten eingebunden werden in denen nicht das Frontend geladen wird.

Neue Tracking ID

Für den nächsten Schritt benötigen Sie ggf. Fachwissen oder Hilfe Ihrer Agentur.

Als nächsten Schritt bauen Sie in den Quellcode Ihrer Seite den von uns oben bereitgestellten Javascript Abschnitt ein und tragen die von Google bereitgestellte ID ein. Der Codeabschnitt sollte vor dem Ende des BODY Elements stehen, wenn Sie unseren asynchronen Loader verwenden oder im HEAD, wenn Sie die (alte) synchrone Version verwenden.

Einbettungscode

Wenn der Code erfolgreich eingebunden wurde, können Sie unter dem Menüpunkt Berichte > Echtzeit > Ereignisse Daten sehen, wenn Sie auf dem Frontend navigieren (und Sie nicht dem Tracking in irgendeiner Form widersprochen haben, beliebte Fehlerquellen sind beispielsweise Cookie Ablehnungen für Statistiken oder auch Browser mit aggressiven Privatspäre Einstellungen).

Hier einmal ein Bild vor dem Einbau des Trackingcodes...

Ereignisse vor Einbau

und eines nach dem Einbau...

Ereignisse nach Einbau

Zu diesem Zeitpuntk haben Sie die Einbindung auf Ihrer Webseite erfolgreich abgeschlossen.

Das nächste Ziel ist nun üblicherweise aus den Ereignissen Daten und Analysen abzuleiten. In diesem Punkt sind Ihrer Kreativität mit Google Analytics keine Grenzen gesetzt, definieren Sie einfach ein Ziel aufgrund eines bereitgestellten Ereignisses (vgl. auch die vorstehende Liste der verfügbaren Ereignisse).

An dieser Stelle sei einmal exemplarisch ein Ziel für das vornehmen einer Buchung definiert. Unsere Ereignisse liefern für das Buchungsevent zusätzlich auch den Wert der Buchung mit, damit eine grobe monetäre Auswertung in GA möglich wird (getrackt wird der bezahlte Reisepreis der auch im Frontend sichtbar war, eine Aufteilung nach Provision etc. ist an dieser Stelle nicht möglich und auch nicht Ziel der GA Anbindung).

Ebenso könnten Sie die Aufrufe der Objektseiten zählen, die Aufrufe der Anfrageseiten, u.v.m., je nach eigenem Interesse. Die Einrichtung der Ziele erfolgt dabei analog.

Klicken Sie in GA zunächst auf Verwaltung (Zahnrad Icon). In der Spalte Datenansicht wählen Sie den Punkt Zielvorhaben aus.

Zielvorhaben definieren

Legen Sie nun ein neues Zielvorhaben an.

Hinweis: Das Zielvorhaben für dieses Beispiel müssen Sie nicht zwingend abtippen, um es zu übernehmen. Am Ende des Artikels finden Sie einen Share-Link für die Vorlage zu diesem Zielvorhaben, damit Sie es einfach importieren können!

Zielvorhaben definieren

Im ersten Schritt wählen Sie keine Vorlage, sondern den Punkt Benutzerdefiniert aus und klicken Sie dann auf Weiter.

Zielvorhaben definieren

Im nächsten Schritt vergeben Sie einen beliebigen Namen für das Ziel, etwa "Erfolgreiche Buchungen" und wählen Sie als Typ Ereignis aus. Klicken Sie dann auf Weiter.

Zielvorhaben definieren

In den Zielvorhabendetails können Sie nun entsprechend filtern. Wir benötigen nur die Werte für Kategorie und Aktion. Die Werte die hier angegeben werden können Sie leicht auf der Echtzeit-Ereignis Seite aus dem Einrichtungsschritt ablesen.

Für die abgeschlossenen Buchungen tragen Sie folgendes ein:

  • Kategorie Beginnt mit Buchungsstrecke
  • Aktion Beginnt mit OP Event: Buchungsstrecke: submit-success

Übernehmen Sie den Ereigniswert als Zielvorhabenwert, wie es auch als Vorgabe ausgefüllt ist. Speichern Sie Ihre Angaben.

Hinweis: Wenn Sie das Zielvorhaben frisch anlegen kann die angebotene Prüffunktion keinen Treffer finden. Das ist leider normal.

Zielvorhaben definieren

Wenn Sie nach der Einrichtung des Zielvorhabens eine Testbuchung vornehmen oder eine reguläre Buchung erhalten, können Sie den Erfolg direkt unter dem Menüpunkt Berichte > Echtzeit > Conversions sehen. Dort sollte in der Liste der Zielvorhaben auch das neue Ziel stehen (sofern es schon einmal erreicht wurde).

Zielvorhaben Realtime

Nach einiger Zeit wurden die Daten von Google Analytics aufbereitet und Sie finden die Buchung auch unter Berichte > Conversions > Zielvorhaben > Übersicht. Dort ist auch eine Filterung auf das neu erstellte Buchungsziel möglich.

Wichtig: Bitte beachten Sie, dass die Auswertungen die nicht im Echtzeitbereich von GA stehen zeitverzögert bereitgestellt werden, d.h. eingegangene Daten sind evtl. erst nach einiger Zeit oder am nächsten Tag in der Auswertung sichtbar.

Zielvorhaben Auswertung

In der Auswertung ist hier der Buchungswert, der ungefähre Zeitpunkt und natürlich der Anteil an den Gesamtzielen zu sehen (in unserem Fall 100%, da nur ein Ziel definiert ist).

Falls Sie diese Konfiguration direkt importieren möchten, können Sie (während Sie in GA eingeloggt sind) folgenden Link aufrufen: "Erfolgreiche Buchungen" Ziel importieren!

Hier eine Zielkonfiguration für die Anzahl der Objektseitenaufrufe: "Objektseitenaufrufe" Ziel importieren!

Auf Basis dieser Anleitung können Sie nun weitere Ziele definieren, je nach individuellen Interessen und möglichen Zielen.

FAQ

Ich habe weniger Buchungen in GA als in der OP! Warum?

Grundsätzlich hat der Besucher die Möglichkeit das Tracking abzulehnen. Wenn Google Analytics nicht geladen werden kann, dann ist auch ein entsprechendes Tracking nicht möglich. Sie werden daher niemals 100% der tatsächlichen Buchungen/Seitenaufrufe/etc. in Google Analytics finden.

Ich kann die Buchung in GA keiner Buchung im System zuordnen, woran kann das liegen?

Grundsätzlich erhalten Sie von GA keine exakten Zeitangaben zum vorliegenden Ereignis. Zudem kann es sein, dass eine Buchung z.B. zwischenzeitlich storniert wurde, dies wird über ein reines Frontendtracking natürlich nicht erfasst.

Wie kann ich die Buchungen mit denen in der OP in Verbindung bringen?

Sofern Sie dies zu Testzwecken wollen, können Sie sich in den Echtzeitdaten die Details des Ereignisses einer Buchung ansehen. Diese enthalten auch die Buchungsnummer.

Kann ich feststellen, wieviele Aufrufe ein bestimmtes Objekt hatte?

Grundsätzlich wird bei einem Objektaufruf auch die Objektnummer an GA übermittelt. Eine darauf basierende Auswertung ist denkbar.

Ich erhalte pro Event jeweils 2 Einträge in GA!

Wir übermitteln zusätzlich zu den OP Events auch die entsprechenden Standard GA Events, soweit definiert. Es reicht grundsätzlich nur eine von beiden Varianten auszuwerten. Die Standardevents sollen Ihnen lediglich das Leben bei der Einrichtung erleichtern, inhaltlich gibt es keinen Unterschied.

Wofür stehen die search:view Ereignisse?

Da die Suchergebnisliste Infinityscrolling nutzt, werden laufend neue Objekte nachgeladen, wenn die Liste gescrollt wird. search:view gibt an, dass ein bestimmtes Objekt in die Suchergebnisliste geladen wurde und damit potentiell gesehen wurde. Zusammen mit der Sortierung der Ergebnisliste kann man so z.B. auswerten, welche Objekte besonders interessant waren. Für einige dieser Auswertungen ist eine Custom Tracking Anbindung empfehlenswert, besonders wenn der Analysehunger sehr groß ist und etwa eine weitergehende Verknüpfung mit den Objektdetail-Aufrufen gewünscht wird. Nicht alle denkbaren Auswertungen lassen sich unbegrenzt in den Standard Tracking Tools abbilden, um Ihnen jedoch alle Möglichkeiten offen zu halten stellen wir dennoch zusätzliche Events und Daten bereit.

Google zeigt in der Admin > Events Liste scheinbar "Löcher" in den Daten

Leider ist die Aufbereitung von Google an dieser Stelle falsch bzw. verzögert, so dass Ereignisse dem falschen Datum zugeordnet werden (in dieser Ansicht). Bitte beachten Sie, dass die Ereignisse immer durch den Seitenbesucher in Echtzeit an Google gesendet werden, es gibt also keine "Sammlung" durch uns. Das ist relativ leicht durch Besuch der Echtzeit > Events Seiten zu prüfen. Dort laufen die Ereignisse (limitiert auf die letzten x) in Echtzeit auf, also so, wie sie auch durch den Seitennutzer ausgelöst wurden.

Dieses unerwartete Verhalten gilt wohl nicht für zusammengestellte Reports aus GA, sondern nur für diese Ansicht.

Tatsächlich ist dies auch kein Umstand, welcher nur speziell unsere Einbindung betrifft, sondern ein grundsätzliches Thema, wie eine Google Suche schnell zeigt.

results matching ""

    No results matching ""