wake-up-neo.com

So erstellen und implementieren Sie einen Pixel-Tracking-Code

OK, hier ist ein Ziel, das ich schon länger gesucht habe. 

Bekanntlich verwenden die meisten Werbe- und Analyseunternehmen einen sogenannten "Pixel" -Code, um Webseitenaufrufe, Transaktionen, Conversion usw. zu verfolgen. 

Ich habe eine allgemeine Vorstellung davon, wie es funktioniert, das Problem ist, wie man es umsetzt. Die Tracking-Codes bestehen aus wenigen Teilen.

  1. Der Tracking-Code selbst. Dies ist der Code, den der Benutzer auf seiner Webseite im Abschnitt <head> einfügt. Das Hauptziel dieses Codes besteht darin, einige kundenspezifische Variablen festzulegen und die *.js-Datei aufzurufen.

  2. *.js-Datei . Diese Datei enthält die ganze Magie von CRUD-Cookies (Erstellen/Lesen/Aktualisieren/Löschen), verfolgt die Ereignisse des Benutzers und die Interaktion mit der Webseite.

  3. Der Pixelcode . Dies ist ein <img>-Tag, bei dem die Variable src auf eine Bilddatei *.gif (beispielsweise) verweist, die alle auf der Seite erfassten Parameter verwendet und in der Datenbank speichert. 

Beispiel:

WordPress-Pixelcode: <img id="wpstats" src="http://stats.wordpress.com/g.gif?host=www.hostname.com&amp;list_of_cookies_value_pairs;" alt="">

Google Analitycs: http://www.google-analytics.com/__utm.gif?utmwv=4&utmn=769876874&etc

Es ist offensichtlich, dass die *.gif-Anforderung eine serverseitige Skriptsprache erreichen muss, um die Parameterdaten lesen und in einer Datenbank speichern zu können.

Hat jemand eine Idee, wie man dies in Zend implementieren kann? 

UPDATE Eine andere Sache, die mich interessiert, ist: Wie vermeide ich, dass der Browser des Benutzers den zwischengespeicherten *.gif lädt? Wird ein zufälliger Parameterwert den Trick erfüllen? Beispiel: src="pixel.gif?nocache=random_number", wobei der Parameterwert nocache bei jeder Anforderung anders ist.

13
Andrei Stalbe

Da Zend mit PHP erstellt wurde, lohnt es sich möglicherweise, die folgende Frage und Antwort zu lesen: Entwicklung eines Tracking-Pixels .

Zusätzlich zu dieser Antwort und da Sie nach einer Möglichkeit suchen, das Nachverfolgungsbild im Cache zu speichern, ist es am einfachsten, eine eindeutige/zufällige Zeichenfolge anzufügen, die zur Laufzeit generiert wird.

Beispielsweise können Sie auf der Serverseite und bei der Erstellung jedes Bildes eine zufällige URL-ID hinzufügen:

<?php

  // Generate random id of min/max length
  $Rand_id = Rand(8, 8);

  // Echo the image and append a random string
  echo "<img src='pixel.php?a=".$vara."&b=".$varb."&Rand=".$Rand_id."'>";

?>
2
nickhar

Nun, alle oben genannten Codes sind korrekt und gut, aber um sicher zu sein, der Typ oben erwähnt "g.gif"

Sie können einfach einen einfachen PHP-Code hinzufügen, der in eine SQL- oder Fwrite-Datei geschrieben werden soll ("file.txt", $ eröffnet) Dabei dient var $ als Zähler ++, wenn jemand Ihre Mail geöffnet hat .gif "

Um all dies zu tun, fügen Sie einfach diese hinzu:

<Files "/thisdirectory">
 AddType application/x-httpd-php .gif
</Files>

in Ihre ".htaccess" -Datei, aber stellen Sie sicher, dass Sie ein neues Verzeichnis für dieses g.gif oder whatever.gif erstellen, in dem das Verzeichnis nur g.gif und .htaccess enthält

0
i am ArbZ

Der *.gif muss nicht unbedingt dieser Dateityp sein. Das einzige, was von Interesse ist, ist der Content-Type http-Header. Setzen Sie das am Anfang auf image/gif (oder einen anderen geeigneten Typ), führen Sie Ihren Code aus und rendern Sie den Antworttext mit einem Bild.

0
Femaref

Fügen Sie einfach nur 2 Cent zu diesem Thread hinzu, da meiner Meinung nach eine wichtige und häufig verwendete Option fehlt: Sie benötigen nicht unbedingt eine Skriptsprache, um die Anforderung zu erfassen. Ein effizienterer Ansatz ist die Verwendung des Webserver-Zugriffsprotokolls (z. B. des Apache-Zugriffsprotokolls), um die Anforderung zu protokollieren und dieses Protokoll dann mit den gewünschten Tools zu handhaben, beispielsweise dem ELK-Stack. 

Dadurch wird die Bereitstellung der Anforderungen erheblich vereinfacht, da keine Skriptsprache geladen wird, um die Antwort vorzubereiten, sondern nur die native Apache-Antwort, die in der Regel wesentlich effizienter ist.

0
Alberto