如何在PHP中跨域使用像素跟踪

时间:2009-07-23 18:00:27

标签: php cross-domain tracking pixel code-metrics

我了解像素跟踪的基础知识,我能够将跟踪域中引用图像的像素插入其他网站。

但是,如何增加跟踪域上的实际像素数?是否有某种日志告诉我每次提供像素图像?我可以做类似的事情:

<img src="http://www.foo.com/serveImage/getImage.php?id=5123" />

然后有getImage页面,提供图像,并根据传入的id递增?或者有更好的方法来实现这一目标吗?

提前谢谢。

4 个答案:

答案 0 :(得分:13)

如果您只想输出一个gif,这是一种快速简单的方法,只需确保您的脚本在之前或之后不输出任何其他内容:

header("Content-type: image/gif");
header("Content-length: 43");
$fp = fopen("php://output","wb");
fwrite($fp,"GIF89a\x01\x00\x01\x00\x80\x00\x00\xFF\xFF",15);
fwrite($fp,"\xFF\x00\x00\x00\x21\xF9\x04\x01\x00\x00\x00\x00",12);
fwrite($fp,"\x2C\x00\x00\x00\x00\x01\x00\x01\x00\x00\x02\x02",12);
fwrite($fp,"\x44\x01\x00\x3B",4);
fclose($fp);

答案 1 :(得分:3)

是的,你有正确的想法。

您为每个网站或网页指定一个唯一ID,然后在图片src中传递。因此,在您的示例中,ID为5123。

在getImage.php脚本中,然后使用此ID增加数据库(或者记录数据)并返回您想要的任何图像。如果您希望返回的图像显示可以使用GD extention动态创建图像的命中数 - 请参阅PHP手册以获取更多信息。

答案 2 :(得分:3)

这是我的跟踪代码:

<?php

$id = $_GET['site_id'];

// do track

$imageFile = 'images/pixel.jpg';
$im = imagecreatefromjpeg($imageFile);
header('Content-type: image/jpeg');
imagejpeg($im);


?>

答案 3 :(得分:1)

一种切实的答案,但评论的时间太长了:

根据您的实施方式,您不一定需要增加任何内容。如果您的目标是超速运行,那么仅依靠服务器请求日志就足够了。每个请求“getImage.php?q = 5123”都已存在,您只需要从查询字符串中提取相关信息。

您可以稍后将日志解析为一个可查询的数据库(通过cron等人),带外不会影响跟踪错误的提供。一次性完成所有操作都更优雅,但如果您处理了大量请求,那么日志已经存在了。

奖励:服务器日志也有引用和&amp;时间戳,所以你可以更容易地看到有人直接锤击getImage.php或从其他地方链接到游戏数字,如果这些数字是值得的。