Created
August 22, 2020 15:41
-
-
Save mbaersch/a045ead4f07de9d480c9abeba3e6326f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//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(); | |
}); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const getAllEventData = require('getAllEventData'); | |
const sendHttpGet = require('sendHttpGet'); | |
const encodeUriComponent = require('encodeUriComponent'); | |
//URL des Trackers aus den Feldern lesen | |
const serviceUrl = data.endpointUrl; | |
//Alle Event-Daten lesen (weil wir faul sind) | |
const eventData = getAllEventData(); | |
//Die beiden verwendeten Datenelemente auslesen | |
const url = encodeUriComponent(eventData.page_location || ""); | |
const cid = encodeUriComponent(eventData.client_id || ""); | |
//Wenn wenigstens eine URL oder ID da sind, Trackinghit | |
//senden. Sonst Fehler an Container zurückmelden | |
if (cid || url) { | |
sendHttpGet(serviceUrl + '?cid='+cid+'&loc='+url); | |
data.gtmOnSuccess(); | |
} else data.gtmOnFailure(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/*************************************************************************************************************/ | |
//logging parameters in a text file in a (too) simple way. do not use like this in a productive environment ;) | |
/*************************************************************************************************************/ | |
$logfile = "gtm_log.txt"; | |
$loc = $_GET['loc']; | |
$cid = $_GET['cid']; | |
if (!isset($cid)) $cid = "---"; | |
if (($loc != "") && ($loc != "undefined")) { | |
if (!file_exists($logfile)) touch($logfile); | |
$datetime = date("d.m.Y H:i:s"); | |
$logstring = $datetime."\t$cid\t$loc\n"; | |
file_put_contents($logfile, $logstring, FILE_APPEND ); | |
echo "OK"; | |
} | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment