好的,这是我一直在寻找的目标。
众所周知,大多数广告和分析公司都使用所谓的“像素”代码来跟踪网站观看次数,交易次数,转化次数等。
我对它是如何工作有一个大概的想法,问题是如何实现它。跟踪代码由几个部分组成。
跟踪代码本身。
这是用户在<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="">
Google Analitycs:
http://www.google-analytics.com/__utm.gif?utmwv=4&utmn=769876874&etc
现在,很明显*.gif
请求必须达到服务器端脚本语言才能读取参数数据并将其存储在数据库中。
有谁知道如何在Zend中实现这一点?
更新
我感兴趣的另一件事是:如何避免用户的浏览器加载缓存的*.gif
?一个随机参数值会起作用吗?示例:src="pixel.gif?nocache=random_number"
其中nocache
参数值在每个请求中都不同。
答案 0 :(得分:2)
由于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."'>";
?>
答案 1 :(得分:0)
首先,*.gif
不需要是该文件类型,唯一感兴趣的是Content-Type
http标头。在开头将其设置为image/gif
(或任何其他适当类型),执行代码并将某种图像呈现给响应主体。
答案 2 :(得分:0)
好吧,以上所有代码都是正确的并且很好,但可以肯定的是,上面提到的那个&#34; g.gif&#34;
你可以添加一个简单的PHP代码来写入sql或fwrite(&#34; file.txt&#34;,$ open) 其中var $ opens作为计数器++,如果有人打开你的邮件...然后保存为&#34; g.gif&#34;
要做到这一切只需添加以下内容:
<Files "/thisdirectory">
AddType application/x-httpd-php .gif
</Files>
到你的&#34; .htaccess&#34;文件,但一定要为g.gif或whatever.gif创建一个新目录,其中目录只包含g.gif和.htaccess
答案 3 :(得分:0)
只需将2美分添加到此主题,因为我认为缺少一个重要且经常使用的选项:您不一定需要脚本语言来捕获请求。更有效的方法是使用Web服务器访问日志(例如apache访问日志)来记录请求,然后使用您认为合适的任何工具处理该日志,例如ELK堆栈。
这使得请求更轻松,因为没有加载脚本语言来准备响应,只是本机apache响应,这通常更有效。