如何创建和实施像素跟踪代码

16

好的,这是我一直在寻找的一个目标。

众所周知,大多数广告和分析公司使用所谓的“像素”代码来跟踪网站浏览量、交易、转化等。

我对它的工作原理有一个大致的了解,问题在于如何实现它。跟踪代码由几个部分组成。

  1. 跟踪代码本身。

    这是用户在页面的 <head> 部分插入的代码。该代码的主要目的是设置一些客户特定的变量,并调用 *.js 文件。

  2. *.js文件。

    此文件包含所有 CRUD(创建/读取/更新/删除)cookie 的魔法、跟踪用户事件和与网页的交互。

  3. 像素代码。

    这是一个 <img> 标记,其中 src 属性指向一个图片 *.gif(例如)文件,该文件获取页面上收集的所有参数,并将它们存储在数据库中。

例如:

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

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

现在,很明显 *.gif 请求必须到达服务器端脚本语言,以便读取参数数据并将它们存储在数据库中。

有人知道如何在 Zend 中实现吗?

更新

另一个我感兴趣的问题是:如何避免用户浏览器加载缓存的*.gif? 随机参数值是否管用?例如:src="pixel.gif?nocache=random_number",其中nocache参数值将在每个请求中不同。

嗨,关于缓存问题,看看这个:https://dev59.com/SWcs5IYBdhLWcg3wLAyf#18852257 - Erik Larsson
1
一个解决缓存问题的快速技巧是要求浏览器不要缓存图像。header("Cache-Control: no-cache, must-revalidate");``header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); - mixdev
4个回答

2
由于Zend是使用PHP构建的,因此阅读以下问题和答案可能会很有价值:开发跟踪像素
除了这个答案之外,如果您正在寻找避免缓存跟踪图像的方法,则最简单的方法是在图像上附加一个在运行时生成的唯一/随机字符串。
例如,服务器端并且在创建每个图像时,您可以添加一个随机URL id:
<?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
我想在这个帖子中加入我的两分钱,因为我认为一个重要且经常使用的选项缺失了:你不一定需要脚本语言来捕获请求。更有效的方法是使用Web服务器访问日志(例如Apache访问日志)记录请求,然后使用任何你认为合适的工具处理该日志,例如ELK堆栈。
这使得服务请求更加轻量级,因为没有加载脚本语言来准备响应,只有本地的Apache响应,通常更加高效。

0
首先,*.gif 不需要是那种文件类型,唯一有趣的是 Content-Type http 头。在开始时将其设置为 image/gif(或任何其他适当的类型),执行您的代码并将某种图像呈现到响应正文中。

谢谢,是的,我确实创建了正确的头文件,并使用PHPimagecreatefromgif()函数生成了pixel.gif文件,该文件实际上具有.php扩展名。唯一的问题是,当www.customerpage.com加载<img src="mypage.com/pixel.gif?params">时,ZF会抛出一个错误,说控制器pixel.gif不存在。 - Andrei Stalbe
你是否已经添加了路由?另外请参考https://dev59.com/HnA75IYBdhLWcg3wm6Yj上的答案 - 这比使用imagecreatefromgif要快得多。 - Tim Fountain
关于路由,还没有,我在想是否有一种不需要路由的方法。感谢您提供透明像素的链接,非常有用。 - Andrei Stalbe

0

好的,以上所有代码都是正确的,很好,但为了确保,上面的人提到了“g.gif”

您可以只需添加一个简单的php代码来写入sql或fwrite(“file.txt”,$ opened),其中var $ opened作为counter ++,如果有人打开了您的邮件...然后将其保存为“g.gif”

要执行所有这些操作,只需添加以下内容:

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

将 g.gif 或 whatever.gif 放到新建的目录中,然后将以下代码添加到你的 ".htaccess" 文件中,但请确保该目录只包含 g.gif 和 .htaccess 文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接