我知道有几家公司能够进行这种跟踪,并且讨论的大多数技术都是高级web bug。但幕后究竟是什么呢?我看到有人声称他们使用长加载图像或重定向技术来跟踪,尽管它不是很准确,但仍然足够好。只是想知道是否有人有这样做的示例php代码或一些清晰的逻辑?
谢谢。
除了已读回执(gmail,outlook/live)之外,没有可靠的方法来跟踪电子邮件是否已读。可以使用"网络漏洞",但禁用自动加载图像的电子邮件客户端(就像大多数现代客户端一样)将无法使用这种方法,缓存、一些防火墙设置等也会失败(例如,请参阅"不敏感的Pig"一节)。
长加载图像是可能的,但准确性再次取决于您无法控制的因素——如果电子邮件客户端在用户卸载邮件时取消了对图像的请求。客户端可能不会这样做,它可能会允许图像在后台"完成"。
使用PHP,可以通过发送图像头,然后短时间睡眠,记录请求仍然打开的事实,然后再次睡眠来完成长时间加载图像。
大致来说,这就是这样的代码:
session_start();
function recordViewTime () {
/*
the difference between $_SESSION['_image_start_time'] and
$_SESSION['_image_active'] is, theoretically, your email view time
*/
}
register_shutdown_function('recordViewTime');
header('Content-Type: image/jpeg');
$_SESSION['_image_start_time'] = microtime();
while (true) {
$_SESSION['_image_active'] = microtime();
sleep(1);
}
强制性免责声明
用户通常不喜欢这种做法。特别是考虑到脸书和谷歌等网站根据其政策创造的当前在线隐私环境,用户比以往任何时候都更敏感,更了解谁收集了什么信息以及如何使用这些信息。如果你的用户向用户透露活动信息,那么在客户端使用任何类型的隐藏或秘密方法来跟踪用户活动都可能产生负面影响。
了解电子邮件营销的有效性的价值很高,因此诱惑很大,但要明白,与隐私相关的隐私和安全趋势正在阻碍使用这种做法。
文档
header
-http://php.net/manual/en/function.header.phpregister_shutdown_function
-http://php.net/manual/en/function.register-shutdown-function.phpsleep
-http://php.net/manual/en/function.sleep.phpmicrotime
-http://php.net/manual/en/function.microtime.php- $_SESSION-http://php.net/manual/en/reserved.variables.session.php
我只知道一种方法,而且它的设置相当高级。基本上,你放置了一个永远不会完成加载的webbug,然后跟踪用户尝试下载它的时间。你必须每隔几秒钟发送一些新数据,否则远程端可能会超时。
出于多种原因,不建议这样做。除了道德方面的原因(我不会在这里讨论),还有几个技术原因不建议使用:
- 在用户和网络漏洞服务器之间有缓存代理的用户不会给你准确的结果。代理服务器将是执行请求的代理,它可能会在用户实际打开电子邮件的时间之外,在那里诋毁数据
- 如果移动用户将电子邮件放在最前面并关闭屏幕,他们可能会消耗大量电池和/或带宽(如果大多数移动设备要显示图像,他们会尝试预加载图像)
- 打开电子邮件和阅读电子邮件不是一回事,有人可能会在预览窗格中打开你的电子邮件一整天,也许他们甚至在收到电子邮件时都不在场
- 大多数现代邮件客户端默认情况下会屏蔽图像,因此与其他网络漏洞一样,这可能只覆盖一小部分用户
FYI:SuperUser的一个答案和StackOverflow的另一个答案也(在一定程度上)解决了同样的问题。它还谈到了幕后发生的事情。
(显示代码)跟踪大规模电子邮件活动
https://superuser.com/questions/290568/how-to-track-if-email-was-read
一个能够跟踪你提到的事情类型的网站是:
http://www.didtheyreadit.com/(据我所知非常挑剔)
我仔细看了一下,它似乎是一个不错的应用程序。下面的网站是about.com的评论,在这个主题上大约有3星(满分5星)。
http://email.about.com/od/windowsreturnreceipts/gr/didtheyreadit.htm
此外,请记住,仅仅因为一个页面打开了几秒钟或一个小时,并不意味着他们没有或确实阅读了所有内容。这更像是衡量电子邮件何时打开以及打开了多长时间。
这只是一个例子,但它确实有希望帮助你确定要寻找什么。
您可以在电子邮件中使用iframe,指向您网站中的邮件内容。你可以在那里放一个脚本来计算阅读时间。
http://www.campaignmonitor.com/blog/post/3219/do-iframes-work-in-email/
如果电子邮件客户端不支持iframes,您可以放置一个链接,如:
如果您无法阅读消息,请单击此处
并重定向到iframe内容。