我想通过像素跟踪来跟踪电子邮件的打开情况,每个用户在我的数据库中都有一个 ID,我需要知道究竟是谁打开了邮件以及哪封邮件,而不仅仅是获得一般的打开率。
我的问题是我是否需要为每条消息和每个用户提供一个具有不同名称的像素图像?
我想通过像素跟踪来跟踪电子邮件的打开情况,每个用户在我的数据库中都有一个 ID,我需要知道究竟是谁打开了邮件以及哪封邮件,而不仅仅是获得一般的打开率。
我的问题是我是否需要为每条消息和每个用户提供一个具有不同名称的像素图像?
我认为你可以这样做:
<img src="www.yourdomain.com/track.php?userid=xxx&msgid=yyy">
然后只需使用 $_GET 参数来跟踪用户/消息,并重定向到对所有消息和用户都相同的静态图像。
您可以为所有电子邮件使用相同的图像,但路径不同,这使得它们都可以解析为同一个。
所以,图像可能是example.com/bla/index.php?msg=1&img=white.jpg
然后做这样的事情:
<?php
// Here goes some more PHP ($DB initialization, etc)
if (!empty($_GET['img']) && !empty($_GET['msg']))
$STH = $DB->prepare('INSERT INTO seen (`message`) VALUES (?)');
$STH->execute(array($_GET['msg']));
header('Location: /images/white.jpg');
?>
我最近使用了一些非常相似的 ajax,尽管使用 .htaccess 和类似的路径example.com/faces/89y3gf34gho.jpg
(在内部转换为example.com/faces/index.php?face=89y3gf34gho.jpg
)
请注意,许多用户会认为小型跟踪白色图像令人反感,因此,除非您创建一个专门的网站,例如imtrackingyou.com/track/index.php?msg=36&img=white.jpg
,隐藏那不是图像并且正在做的事情可能是可取的。出于这些目的,example.com/bla/5475.jpg
优于example.com/bla/index.php?msg=1&img=white.jpg
. 这可以通过Apache 的 mod_rewrite来实现。