Verwendung von JavaScript auf Ihren Webseiten

Die Kommunikation zwischen Site und der Website des Kunden erfolgt über eine kundenspezifisch erstellte JavaScript-Bibliothek. Das Script muss auf jeder Seite der Website des Kunden geladen werden, für den durch Site ein Tracking erfolgen oder der angesprochen werden soll.

In diesem Thema:


Standard-Skript zur Einbindung

Das Standard-Skript sollte auf allen Webseiten eingebunden sein, auf denen Sie Tracking und Targeting ermöglichen möchten. Sie können es unter 'Konfiguration, Einstellungen Universum,Allgemeines’ abrufen. Klicken Sie auf "Integrations-Skript anzeigen".

Kopieren

Beispiel:

var wa = document.createElement("script"),
    wa_s = document.getElementsByTagName("script")[0];
wa.src = "//PATH PROVIDED/xxxxxx.js";
wa.type = "text/javascript";
wa_s.parentNode.insertBefore(wa, wa_s);
wa.bt_queue = [];
wa.afterInit = function() {
    wa.bt_queue.push(JSON_OBJECT());
};

Technischer Hinweis:
Die ersten Zeilen in diesem Script (Zeilen 1 bis 6) schließen das anfängliche Site-Script in den Quellcode der Website ein. Dieses Script lädt automatisch ein zweites Site-Script, nachdem das erste geladen wurde. Sobald beide Scripte geladen sind, wird eine Callback-Funktion ausgelöst, die verwendet werden kann, um spezifische Site-Aufrufe auf der aktuellen Website-Seite (Zeilen 7 bis 9) auszuführen. Meistens führt der Kunde seinen ersten Tracking-Aufruf durch, um jeden Seitenbesuch in Site zu verfolgen (wa.bt_queue.push).

Technischer Hinweis:
Der in diesem Script verwendete Pfad verweist auf ein CDN (Content Delivery Network), in dem jedes Universum über einen eigenen Ordner und eine eigene Datei verfügt. Diese Datei wird automatisch generiert und enthält zudem Informationen über Platzierungen, die für das Universum definiert wurden. Sie ist bei jeder Installation anders.

Dieses Script muss auf jeder Seite der Website des Kunden geladen werden. Dies kann durch Einschließen in die HTML-Quelle jeder Seite oder durch asynchrones Laden über JavaScript (zum Beispiel mit Google Tag Manager) erfolgen.

Hinweis: In einem Angebot können Sie ein Angebotsziel setzen (Konversion), um zu sehen ob der Benutzer das Angebot akzeptiert hat oder nicht. Eine Art, dies zu überprüfen ist die Verwendung eines "CRM (Journey) Seiten-Tags". Dazu muss das Tracking-Skript auf der Journey-Seite liegen. Siehe auch ‘Angebote,Warum? Definieren Sie Ihre Ziele’.

 

Bestätigung, dass das Script geladen ist

Wenn das Site-Script auf der Website des Kunden korrekt geladen wird, werden 2 externe JavaScript-Dateien in der Website des Kunden geladen. Dies kann in der Netzwerk-Registerkarte der Debugging-Konsole des Browsers verifiziert werden. Der genaue Name dieser Dateien unterscheidet sich für jede Site-Website-Sammlung, wird aber immer von der Domäne „targetemsecure.blob.core.windows.net“ geladen:

Wenn ein Tracking-Aufruf in die afterInit-Funktion des Basisscripts eingeschlossen wurde, sollte auch ein erster Tracking-Aufruf an Site in der Netzwerk-Registerkarte des Browsers erscheinen. Dieser Tracking-Aufruf wird, abhängig vom Standort des Kunden, entweder von der Domäne „siteeuwest.slgnt.eu“ (für europäische Kunden) oder der Domäne „siteus.slgnt.eu“ (für Kunden in den USA) geladen:

Wenn die Site-Implementierung korrekt ist, sollte der Kunde außerdem Besucher, die bei Site angemeldet sind, in Echtzeit sehen.

 

Tracking

Um Tracking-Daten an Site zurückzusenden, setzen Sie ein JSON-Objekt in die JavaScript array wa.bt Warteschlange.

Kopieren
wa.bt_queue.push(JSON_OBJECT)

Hinweis: Auch wenn Sie keine Daten zurücksenden, muss der Push-Befehl im Tracking-Skript enthalten sein. Andernfalls wird nichts an Site gesendet, auch keine Standard-Trackingdaten für Seitenaufrufe, Aufrufzeitpunkte, Standard-Site-Tags, etc.

Im Folgenden finden Sie ein Beispiel mit 2 Tag-Werten (CATEGORY und Q_PURCHASES), eine benutzerdefinierte Kennung und einige Einstellungen.

Kopieren

Beispiel:

wa.bt_queue.push({
    "tagValues": [{
            "tag": "CATEGORY",
            "value": "Phones"
        },
        {
            "tag": "Q_PURCHASES",
            "value": 1
        }
    ],
    "customIdentifier": "12345",
    "async": false,
    "isEvent": false,
    "isTargeting": true
});
  • Werte für Tags zurücksenden: Ein JSON-Array von Tags mit ihren entsprechenden Tag-Werten. Dies sind die Tags, die tatsächlich gemessen werden.
    "tagValues":[{"tag":"CATEGORY","value":"Phones"},{"tag":"Q_PURCHASES","value":1}]

Verwenden Sie den öffentlichen Namen des Tags

  • customIdentifierz.B. Kunden-ID nach dem Login auf der Webseite. "customIdentifier": "12345"Legt eine mögliche benutzerdefinierte Kennung fest, durch die der Besucher eindeutig definiert wird. Normalerweise ist dies ein Wert, durch den Sie Besucher zwischen verschiedenen Sitzungen erkennen können (zum Beispiel Anmelde-ID oder GUID). Es ist sehr wichtig, dass der hier angegebene Wert gültig und für jeden Besucher eindeutig ist. Wenn zum Zeitpunkt des Aufrufs keine benutzerdefinierte Kennung bekannt ist, sollte diese Eigenschaft in den Tracking-Aufruf eingeschlossen werden.

  • async — true oder false. Falls der Tracking-Call asynchron vorgenommen werden soll. Meist false, bei Ajax-Calls ist auch true möglich. "async": false

  • isEvent — true oder false. Ist der Tracking-Call ein Seitenaufruf (false) oder ein Ereignis (true, z.B. Anklicken eines Buttons). "isEvent": false

  • isTargeting — true oder false. Ob der Tracking-Aufruf für Targeting verwendet wird. Falls ja, wird der Aufruf nur ausgeführt, wenn der DOM bereit ist. Der Aufruf stellt sicher, dass die gefundenen Platzhalter ordnungsgemäß mit Angebots-/Aktionsinhalten gefüllt werden.Setzen Sie dies auf true, wenn Sie Angebote verwenden. "isTargeting": true

  • isConsentless : true oder false. Wenn der Website-Besucher dem Tracking und der Speicherung von Cookies nicht zugestimmt hat, setzen Sie diesen Parameter auf true. "istConsentless": true

Wichtige Anmerkung: Site fügt nur Inhalt zur Website hinzu, es entfernt ihn nicht. Wenn isTargeting also auf true eingestellt ist und sich zurzeit ein Profil in einer Zielgruppe befindet, für die spezifische Inhalte auf der Website angezeigt werden müssen, wird dieser Inhalt angezeigt. Wenn zu einem bestimmten Augenblick das Profil nicht mehr in dieser Zielgruppe ist, wird der Inhalt immer noch auf der Website angezeigt.

Beispiel : Es ist ein Angebot vorhanden, bei dem ein gewisser Inhalt angezeigt wird, wenn das Profil mindestens einen Artikel in seinem Einkaufswagen hat. Wenn ein Profil einen Artikel zum Einkaufswagen hinzufügt und die Eigenschaft Targeting auf true eingestellt ist, wird das Angebot bewertet und der Inhalt wird angezeigt. Wenn das Profil jedoch den Artikel aus dem Einkaufswagen entfernt und die Eigenschaft Targeting auf true eingestellt ist, wird das Angebot neu bewertet, der Inhalt wird jedoch NICHT entfernt, obwohl sich das Profil nicht mehr in der Zielgruppe befindet.

Kopieren

Beispiel eines JavaScript-Aufrufs zum Einstellen von Tag-Werten, die einen „Score“ enthalten :

wa.bt_queue.push({
    "tagValues": [{
            "tag": "VEHICLES",
            "value": "ford_focus"
        },
        {
            "tag": "VEHICLES",
            "value": "bmw_x5",
            "score:7"
        }
    ]
});

//Score liefert ein Gewicht für einen bestimmten Tag-Wert. Ohne Angabe ist der Standard-Score-Wert 1.

Hinweis: Weitere Informationen über Site JavaScript API-Tracking-Aufrufe finden Sie im entsprechenden technischen Dokument.

 

Targeting

Folgende Erläuterung wird nur benötigt, wenn Sie Ihre Website, abgesehen vom Anzeigen von Angeboten, auf Grundlage von Trackingdaten aus Site individuell anpassen möchten.. Mit Angeboten gibt es nur wenige Gründe, ein benutzerdefiniertes JavaScript zum Verändern von Seitenelementen, die auf Site-Daten basieren, einzufügen. Sie tun das mit Angeboten bereits in ausreichendem Maße. Es könnte jedoch hilfreich sein, wenn Sie zum Beispiel mit einem Bannerunternehmen als Drittanbieter zusammenarbeiten, das mit besonderen JavaScript-Elementen eine gewisse Überlagerung zeigt.

Sie können eine JavaScript Callback-Funktion einrichtigen, die ausgeführt wird, nachdem Tracking-Daten an Site zurückgesendet und Profile aktualisiert wurden.

Legen Sie im JavaScript Tracking-Call fest, welche Tracking-Tags und Felder zurückgesendet werden sollen (Anzahl der Klicks, durchschnittliche Besuchsdauer, Identifizierung...), damit Sie diese in Ihrer Callback-Funktion verwenden können. Diese können Profilfelder, Tags oder CRM-Felder sein. Die einzigen Werte, die an das Front-End (Prozessankopplung) zurückgegeben werden, wurden vorher in den Einstellungen des Universums festgelegt.  Unter ‘Einstellungen Universum,Verfügbare Felder auf der API’ erhalten Sie einen Beispielcode. Mit Ausnahme der Angebotsdaten. Angebotsdaten werden immer zurückgegeben:

  • Name — der öffentliche Name des Angebots
  • isInOffer— ist der Besucher im Angebot oder nicht (boolescher Wert)
  • Datum — Datum, an dem der Besucher zum ersten Mal im Angebot war (wenn isInOffer=true). Oder das Datum, an dem der Besucher nicht mehr im Angebot war (wenn isInOffer=false).

Oben stehendes Beispiel wird mit einem Callback-Funktionsnamen (bt_trackingFinishedCallback) sowie einer Abfrage von Profil-, CRM- und Tagwert-Daten erweitert:

Kopieren
wa.bt_queue.push({
    "tagValues":[
       {"tag":"CATEGORY",
        "value":"Phones"
       },        
       {"tag":"Q_PURCHASES","value":1}
    ],
    "customIdentifier":"12345",
    "async":false,
    "isEvent":false,
    "isTargeting":true,
    "finishedCallback":"bt_trackingFinishedCallback",
    "exposedFields":[ 
      {"field":"CustomIdentified"},
      {"field":"CustomId"},
      {"field":"FirstHitDateTime"},
      {"field":"AvgVisitDuration"},
      {"field":"HitsVisit"},
      {"field":"BOUGHTITEMS",
       "type":"Count",
       "parameter":""
      },
      {"field":"CATEGORY",
       "type":"Last",
       "parameter":"SUBCATEGORY"
      },
      {"field":"NEWSLETTER_OPTIN"}
    ]
});
 
  • FinishedCallback — Die Callback-Funktion, die ausgeführt werden soll.
    "finishedCallback": "bt_trackingFinishedCallback"
  • exposedFields — Profildaten werden abgefragt, Tag-Werte werden abgefragt, Daten von Campaign werden abgefragt.

Hinweis: Für eine Erläuterung aller API-Werte siehe Einstellungen Universum,Verfügbare Felder auf der API.

Die Callback-Funktion kann nun die abgefragten Daten verwenden. Ein zuvor mit den abgefragten Daten geparstes JSON-Objekt wird an die Callback-Funktion zurückgegeben. Somit müssen Sie einen JSON-String in der Callback-Funktion nicht mehr parsen.

Kopieren
bt_trackingFinishedCallback = function(data) {
    var trackingData = data;
    var html = '';
    for (var i = 0; i < trackingData.profileFields.length; i++) {
        if (trackingData.profileFields[i].name == 'CustomIdentified') {
            html += '<li>CustomIdentified: ' + trackingData.profileFields[i].value + '</li>';
        }
    }
    for (i = 0 ; i < trackingData.offers.length; i++) {
        if (trackingData.offers[i].date != "1970-01-01T00:00:00.000Z") {
            html += '<li'+(trackingData.offers[i].inOffer === true ?'':'style="text-decoration:line-through"') +
                '>' + trackingData.offers[i].name + ' [>' + trackingData.offers[i].date + ']</li>';
        }
    }
    // ...
};
  • Die Variable trackingData wird auf das zurückgegebene geparste JSON-Objekt festgelegt. vartrackingData = data;
  • Das Objekt wird mit Hilfe der 'for'-Schleifen auf Angebotsdaten überprüft und wird der Variablen 'html' mit HTML-Listentags hinzugefügt.
  • //… Die HTML-Variable wird als Stichpunktliste in einem Verzeichnis ausgegeben.

Sie können die zurückgegebenen Profildaten mit BT.SAVEProfileInfo() im lokalen Speicher oder einem Cookie 'sbt_pi' speichern. Dies ist nützlich, wenn Profildaten sofort verwendet werden müssen, solange sich der Besucher auf der Webseite aufhält und die Daten noch nicht im Tracking-Skript abgefragt wurden. Die gespeicherten Daten können mit der im Site API-Handbuch beschriebenen JavaScript API-Funktion wiederhergestellt werden. Um zum Beispiel zu sehen, ob der Besucher über eine benutzerdefiniert Kennung identifiziert wurde (custom identified), hätten wir die MethodeBT.isCustomIdentified()verwenden können, anstatt das JSON-Objekt nach CustomIdentfied mit einer 'for'-Schleife zu durchsuchen.

Bedenken Sie: Da die zurückgegebenen Daten aus dem lokalen Speicher oder einem Cookie stammen, sind sie möglicherweise nicht immer auf dem neusten Stand. Sie müssen erst wieder mit BT.SaveProfileInfo() gespeichert werden. Verwenden Sie BT.GetProfileInfo(), um ein Objekt mit den Profildaten wiederherzustellen, und BT.ClearProfileInfo(), um gespeicherte Profildaten zu löschen.

Kopieren
bt_trackingFinishedCallback = function(data) {
    var trackingData = data;
    var html = '';
    html += '<li>CustomIdentified: ' + BT.isCustomIdentified() + '</li>';
    for (var i = 0 ; i < trackingData.offers.length ; i++) {
        if (trackingData.offers[i].date != "1970-01-01T00:00:00.000Z") {
            html+='<li'+(trackingData.offers[i].inOffer===true ?'':'style="text-decoration:line-through"')+
            '>'+trackingData.offers[i].name+' ['+trackingData.offers[i].date+']</li>';
        }
    }
    // ...
};

Hinweis: Das Objekt 'BT' wird im Standard-Skript festgelegt:
wa.src
  = "//PATH PROVIDED/xxxxxxxx.js"

 

Tracking deaktivieren

Es besteht die Möglichkeit, einen Hyperlink einzufügen, der es dem Besucher ermöglicht, das Site Tracking zu deaktivieren (“Wir verfolgen Ihren Website-Besuch, um Ihr Kundenerlebnis zu verbessern. Falls Sie dies nicht wünschen, klicken Sie hier, um die Funktion zu deaktivieren”).

Fügen Sie den folgenden Hyperlink ein:<ahref="javascript:BT.optout()">Klicken Sie hier, um die Funktion zu deaktivieren.</a>

Stellen Sie sicher, dass das Tracking-Skript geladen ist. Es wird ein Cookie gesetzt, welches das Sammeln von Daten durch Site deaktiviert.