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

Posted

技术标签:

【中文标题】如何创建和实施像素跟踪代码【英文标题】:How to create and implement a pixel tracking code 【发布时间】:2013-01-16 22:31:41 【问题描述】:

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

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

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

    跟踪代码本身。 这是用户在其网页上的<head> 部分中插入的代码。此代码的主要目标是设置一些客户特定的变量并调用*.js 文件。

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

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

例子:

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

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

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

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

更新 我感兴趣的另一件事是:如何避免用户的浏览器加载缓存的 *.gif ?随机参数值会起作用吗?示例:src="pixel.gif?nocache=random_number",其中nocache 参数值在每个请求中都会有所不同。

【问题讨论】:

嗨,看看这个关于 chache 的问题。 ***.com/a/18852257/318489 解决缓存问题的一个快速技巧是让浏览器不要缓存图像。header("Cache-Control: no-cache, must-revalidate");header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); 【参考方案1】:

由于 Zend 是使用 php 构建的,因此可能值得阅读以下问答:Developing a tracking pixel。

除了这个答案之外,当您正在寻找一种避免缓存跟踪图像的方法时,最简单的方法是向其附加一个唯一/随机字符串,该字符串是在运行时生成的。

例如,服务器端和创建每个图像时,您可能会添加一个随机 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】:

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

【讨论】:

谢谢,是的,我确实创建了正确的标题并实际生成了带有PHP imagecreatefromgif()pixel.gif 文件,它实际上具有php 扩展名。唯一的问题是,当www.customerpage.com 加载&lt;img src="mypage.com/pixel.gif?params"&gt; ZF 抛出错误时,那个控制器pixel.gif 不存在。 你为它添加了路由吗?另请参阅***.com/questions/3203354/… 上的答案 - 这将比使用 imagecreatefromgif 快得多 关于路由,还没有,我想知道是否有办法在没有路由的情况下做到这一点。感谢您提供透明像素的链接,它真的很有用。【参考方案3】:

好吧,上面所有的代码都是正确的并且很好,但是可以肯定的是,上面的那个人提到了“g.gif”

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

要完成所有这些,只需添加以下内容:

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

到您的“.htaccess”文件,但请确保为该 g.gif 或任何.gif 创建一个新目录,其中该目录仅包含 g.gif 和 .htaccess

【讨论】:

【参考方案4】:

只是将我的 2 美分添加到此线程,因为我认为缺少一个重要且经常使用的选项:您不一定需要脚本语言来捕获请求。一种更有效的方法是使用 Web 服务器访问日志(例如 apache 访问日志)来记录请求,然后使用您认为合适的任何工具处理该日志,例如 ELK 堆栈。

这使得处理请求变得更加轻松,因为没有加载脚本语言来准备响应,只加载原生 apache 响应,这通常效率更高。

【讨论】:

以上是关于如何创建和实施像素跟踪代码的主要内容,如果未能解决你的问题,请参考以下文章

JAVA电子邮件跟踪像素跟踪阅读时间

Liferay 和 Google 跟踪代码管理器的实施

从Facebook广告管理系统中删除转化跟踪像素

Android:如何让用户为其他被跟踪用户创建地理围栏?

Ajax 应用程序中的 Facebook 转化跟踪像素

动态生成透明跟踪像素