2013-02-01 12 views
12

OK, ecco un obiettivo che cercavo da un po '.Come creare e implementare un codice di tracciamento dei pixel

Come è noto, la maggior parte delle imprese di pubblicità e di analisi utilizzano un codice cosiddetto "pixel", al fine di monitorare i siti web viste, le transazioni, la conversione ecc

Io ho un'idea generale su come funziona, il problema è come implementarlo. I codici di tracciamento sono costituiti da poche parti.

  1. Il codice di monitoraggio stesso. Questo è il codice che gli utenti inseriscono nella sua pagina Web nella sezione <head>. L'obiettivo principale di questo codice è impostare alcune variabili specifiche del cliente e chiamare il file *.js.

  2. *.js file. Questo file contiene tutta la magia dei cookie CRUD (crea/leggi/aggiorna/cancella), tiene traccia degli eventi dell'utente e dell'interazione con la pagina web.

  3. Il codice pixel. Questo è un tag <img> con l'attributo che punta a un'immagine *.gif (ad esempio) che raccoglie tutti i parametri raccolti sulla pagina e li memorizza nel database.

Esempio:

codice pixel WordPress: <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

Ora, è ovvio che la richiesta *.gif deve raggiungere un linguaggio di scripting lato server, al fine di leggere i dati dei parametri e memorizzarli in un db.

Qualcuno ha un'idea di come implementarlo in Zend?

UPDATE Un'altra cosa che mi interessa è: Come evitare il browser dell'utente per caricare il cache *.gif? Il valore di un parametro casuale farà il trucco? Esempio: src="pixel.gif?nocache=random_number" dove il valore del parametro nocache sarà diverso a ogni richiesta.

+0

Ciao, guarda questo sul problema della chache. http://stackoverflow.com/a/18852257/318489 –

+0

Un trucco rapido per il problema della cache è chiedere al browser di non memorizzare nella cache l'immagine .header ("Cache-Control: no-cache, must-revalidate"); '' header ("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); ' – mixdev

risposta

0

Prima di tutto, il *.gif non ha bisogno di essere quel tipo di file, l'unica cosa che interessa è l'intestazione http Content-Type http. Impostare quello su image/gif (o qualsiasi altro tipo appropriato) all'inizio, eseguire il codice e rendere una sorta di immagine al corpo della risposta.

+0

Grazie, sì, ho creato le intestazioni appropriate e in effetti ho generato il file' pixel.gif' con 'PHP'' imagecreatefromgif() 'che in effetti ha l'estensione' php'. L'unica cosa è che, quando 'www.customerpage.com' carica' 'ZF genera un errore, quel controller' pixel.gif' non esiste. –

+0

Hai aggiunto un percorso per questo? E vedi anche la risposta su http://stackoverflow.com/questions/3203354/php-script-to-render-a-single-transparent-pixel-png-or-gif - questo sarà molto più veloce di usare imagecreatefromgif –

+0

su il percorso, non ancora, mi chiedo se c'è un modo per farlo senza il routing. E grazie per il link per il pixel trasparente, è davvero utile. –

2

Siccome Zend è costruito utilizzando PHP, potrebbe valere la pena di leggere la seguente domanda e risposta: Developing a tracking pixel.

Oltre a questa risposta e poiché si sta cercando un modo per evitare di memorizzare nella cache l'immagine di tracciamento, il modo più semplice per farlo è quello di aggiungere una stringa univoca/casuale ad essa, che viene generata in fase di runtime.

Per esempio, sul lato server e con la creazione di ogni immagine, si potrebbe aggiungere un id URL casuale:

<?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."'>"; 

?> 
0

Beh, tutti i codici di cui sopra sono esatte ed è buona, ma per essere certi, il ragazzo di cui sopra menzione "g.gif"

Si può solo aggiungere un codice php semplice per scrivere in uno SQL o fwrite ("file.txt", $ aperto) dove var $ ha aperto serve come il contatore ++ se qualcuno ha aperto la tua posta ... quindi salvala come "g.gif"

PER FARE tutto il tempo s basta aggiungere questi:

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

al file ".htaccess", ma essere sicuri di fare una nuova directory per quel g.gif o whatever.gif in cui la directory contiene solo g.gif e .htaccess

0

Semplicemente aggiungendo i miei 2 centesimi a questo thread perché penso che manchi un'opzione importante e frequentemente utilizzata: non è necessario necessariamente un linguaggio di scripting per acquisire la richiesta. Un approccio più efficiente consiste nell'utilizzare il log di accesso al server Web (ad esempio il log di accesso di Apache per esempio) per registrare la richiesta e quindi gestirla con tutti gli strumenti che si ritiene appropriati, come ad esempio lo stack ELK.

Questo rende le richieste molto più leggere perché non viene caricato alcun linguaggio di scripting per preparare la risposta, solo la risposta apache nativa, che in genere è molto più efficiente.

Problemi correlati