Mithilfe von PS.Content #Insights können nicht nur Artikel-Nutzungsdaten, sondern auch beliebige weitere Metriken, wie zB. Aufrufe von Webseiten, Web-Services, App-Interaktionen etc erfasst werden.
Zum Erfassen der Metriken (Tracking) stellt PS.Content #Insights einen generischen REST WebService inkl. Java-Script API zur Verfügung.
Einrichtung neuer Tracking-Clients und Tracking-Events
Welche Metriken aus welchen Datenquellen konkret erfasst werden, kann frei konfiguriert werden.
Dazu wird der Stammdatendialog "#Insights: Externes Tracking" verwendet.
In diesem Dialog wird zunächst ein neuer Tracking-Client (in Beispiel WebAnzeigen und HUP NewsReader App) angelegt.
Pro Tracking-Client können dann beliebige Tracking-Events angelegt werden. (Im Beispiel APP-LAUNCH, EPAPER-DL, etc.)
Die Client- und Event-ID wird für die Tracking-API verwendet, der "Anzeigename" für die Anzeige im #Insights Dashboard. Beides kann nachträglich geändert werden, bereits erfasste Daten werden automatisch überführt.
Sind ein Client oder ein Event nicht aktiv können über die Tracking-API keine neuen Impressions erzeugt werden. Vorhandene Daten bleiben bestehen.
Tracking über die REST API
Die Tracking API ist selbstdokumentierend über eine Swagger-UI aufrufbar:
http://INSIGHTS-PROXY-SERVER-URL/swagger-ui.html#/ext-impression-controller
Im Folgenden werden die APIs nach ihrem chronologsichen Ablauf beschrieben:
- (optional) Erstellen einer neuen Client ID
- Abrufen einer Impression ID
- (optional) Setzen einer bereits vorhandenen Client ID
- Auslösen eines Tracking-Ereignisses
Erstellen einer eindeutigen Client ID für ein Endgerät / eine Benutzersitzung (optional)
Um Metriken gerätespezifisch oder sitzungsspezifisch aufzuzeichnen, kann über die API 'generateClientId' eine Client-ID erstellt und in allen API-Aufrufen optional übermittelt werden. Die Client-ID sollte in einem Cookie oder dem App-Speicher abgelegt und später wieder verwendet werden.
Beispiel:
/generateClientId
Response: 45bc2918-7151-4cb9-8ae9-5b39913af5fb (HTTP Code 200)
Abrufen einer Impression ID für ein Tracking-Objekt
Über die API "impression" wird eine eindeutige Impression ID abgerufen. Als Parameter ist der Tracking-Client als 'trackingcode' und die Client-Version als 'version' zu übergeben. Optional kann eine 'clientid' übermittelt werden. Alle Parameter sind vom Typ 'string'.
Beispiel:
/impression?trackingcode=NWSRDR&version=1.50
Response: 56d2882f-68aa-43f6-8748-6c9e7e583ef5 (HTTP Code 200)
Setzen einer vorhandenen Client ID für eine Impression (optional)
Einer bereits registrierten Impression kann über die API 'clientid4impression' nachträglich eine bereits vorhandene Client-ID aufgeprägt werden (zB. wenn sich der Anwender erst nachträglich anmeldet).
Beispiel:
/clientid4impression?clientid=45bc2918-7151-4cb9-8ae9-5b39913af5fb&impressionid=56d2882f-68aa-43f6-8748-6c9e7e583ef5
Response:(HTTP Code 200)
Tracking eines Ereignisses
Nachdem eine Impression-ID registriert wurde, können dieser beliebig viele Events zugeordnet werden, also das eigentliche Tracking erfolgen. (zB. das Downloaden einer ePaper Ausgabe)
Die API 'event' akzeptiert optional eine JSON Struktur, mit der weitere Daten je Event fest gehalten werden können (also zB. das Datum und die jeweilige Ausgabe eines ePapers).
Beispiel:
/event?eventcode=APP-LAUNCH&impressionid=56d2882f-68aa-43f6-8748-6c9e7e583ef5
Response:(HTTP Code 200)
Optionale JSON struktur (HTTP PUT):
{
"array": true,
"bigDecimal": true,
"bigInteger": true,
"binary": true,
"boolean": true,
"containerNode": true,
"double": true,
"float": true,
"floatingPointNumber": true,
"int": true,
"integralNumber": true,
"long": true,
"missingNode": true,
"nodeType": "ARRAY",
"null": true,
"number": true,
"object": true,
"pojo": true,
"short": true,
"textual": true,
"valueNode": true
}