|
//Alle APIs, die wir zum Lesen, Verarbeiten und Weitergeben brauchen, werden hier geladen |
|
const claimRequest = require('claimRequest'); |
|
const returnResponse = require('returnResponse'); |
|
const getRequestQueryParameter = require('getRequestQueryParameter'); |
|
const runContainer = require('runContainer'); |
|
const setPixelResponse = require('setPixelResponse'); |
|
const getRequestHeader = require('getRequestHeader'); |
|
const getRequestPath = require('getRequestPath'); |
|
const getRemoteAddress = require('getRemoteAddress'); |
|
|
|
//Wurde "unser" Endpunkt angesprochen? Wenn ja, sind die Daten für |
|
//diesen Client relevant, sonst tun wir nichts |
|
if (getRequestPath() === '/pagelogger') { |
|
|
|
//Wir werden die Daten verarbeiten, kein anderer Client muss diese dann noch bekommen |
|
claimRequest(); |
|
|
|
//Auslesen der drei erforderlichen Parameterwerte aus der Anfrage |
|
//oder im Fall der url entweder per Parameter oder aus dem Referrer des Aufrufs |
|
//Sonderfall cid: Wir nutzen eine Konstante, wenn diese fehlen sollte |
|
const ref = getRequestQueryParameter('ref'); |
|
const url = getRequestQueryParameter('url') || getRequestHeader('Referer'); |
|
const cid = getRequestQueryParameter('cid') || 666; |
|
|
|
//Exemplarisch "erheben" wir auch den User Agent und die IP, um diese |
|
//allen nutzenden Tags zur Verfügung zu stellen |
|
const ip = getRemoteAddress(); |
|
const ua = getRequestHeader('user-agent'); |
|
|
|
//Daten zusammenstellen, die den Tags zur Verfügung gestellt werden sollen |
|
var event = {event_name : "page_view", page_location : url, client_id : cid, |
|
ip_override : ip, user_agent : ua, page_referrer: ref}; |
|
|
|
//Container aufrufen und Daten übergeben, danach ein Pixel als Antwort auf den Request senden |
|
runContainer(event, () => { |
|
setPixelResponse(); |
|
returnResponse(); |
|
}); |
|
} |