views:

261

answers:

3

So, 'Litmus', a web app for testing emails and webpages across browsers and email clients, has a proprietary method that they claim is able to track not just opens, clicks, browsers, etc (standard with an embedded image and pass-through link tracking.)

What's unique is they claim that they are able to track what actions the end user took, how long the end user read it for, and if they deleted or forwarded the email. They claim they do this without JavaScript, and purely using embedded images. They claim that the method works across most major email clients.

What could they be doing to track this? Obviously, if they're doing it with third party applications that they don't control, whatever they are doing should be replicable.

I'm thinking that they realized that when an email client forwards or deletes an email, it 'opens' the email in a different way then normal, creating a unique user string on the server log of some kind? I'm grasping at strings, though.

http://litmusapp.com/email-analytics

Details here http://litmusapp.com/help/analytics/how-it-works

EDIT: It also looks like they track Prints. Maybe they do this by tracking calls to the 'print' css?

A: 

They know when the email is opened (it's when the image is called from their http server).

They also know what the user do and when since they can easily replace all links with their own tracking URLs redirecting to the original link.

There is nothing exceptional here. They are just a bit more advanced than their compatitors. There is no magic.

I have only one doubt: how they track delete. Technically, there is no way to know what happened to the message after it was read.

I suspect that a "deleted" mail is a mail that is never opened.

Pierre 303
Regarding the tracking of links, that's a given; it's totally standard.What I don't understand is how they could track if someone clicks 'Forward' in their own email client (rather than a proprietary, tracked 'Forward this email' button in the email itself)On the last point, I'd be very, very surprised if their definition of delete was just 'unopened'; it would reflect very poorly on them, since so many emails are 'unopened'.
yc
I'm 100% sure that deleted means unopened. If it's not the case, I would be more than happy to learn how they do that !
Pierre 303
@yc forwarding would most probably work like this - normal tracking is via when an email is opened via an image - when an email is "forwarded and opened" then the same image is called but from a different IP or like
Rippo
there is an image tag in the forward headers for tracking forwarded email.
Crayon Violent
Crayon, please elaborate.
Pierre 303
+2  A: 

One way I can think of doing that is having an embedded image that loads from a script on a server. The script would not return anything or maybe send data really slowly to keep the connection open. Once the email is deleted the connection would be closed. This way they could know how long the email was open. Maybe they just assume if it's open for less than 10 seconds it was deleted?

Another way is tracking the referrer - this would give a lot of data on what a webmail client is doing, but I doubt it would be useful with a desktop client.

Forrest
This is a very clever answer. I'm going to try it, see if it works. What do you mean by tracking the referrer? Isn't that a one-off piece of information?
yc
Javascript is not executed in emails for security reason.
Pierre 303
Maybe the referrer for forwarding has something with 'forward' in it? That's what I was thinking, although this wouldn't work for AJAX webmail clients.
Forrest
@Pierre, you could execute an script from within an <img> tag. That would call a script that executes on the server side (PHP, etc), not the client side. So, <img src="tracking.php?image=foo.png" /> could possibly work, since the php file executes on the server side within the img tag. I'm not sure if the script would need to 'return' an image, but it definitely can display from a server side script.
yc
Yes that's image tracking, but executing client side code such as javascript not possible anymore. Also the nature of the image tracking doesn't allow you to track time. You have to measure between actions.
Pierre 303
Pierre, It would run on the _server_ and it is a way that would allow you to track the time that the message is open for. This has nothing to do with Javascript or client security limitations. If the client loads the image and doesn't have a tiny timeout, this would work.
Forrest
+2  A: 

It's all done with good ol' image bugs. Breaking down how they find out...

  • Which client was used: Check the user-agent

  • Whether an email was forwarded: Done by attaching image bugs to divs that are loaded only when the message is forwarded.

  • Whether an email was printed: bug attached to print stylesheet

  • How long it takes to read an email: A connection that's kept open, as pointed out by Forrest (this is also how Facebook tracks(ed?) whether or not you are online on chat).

  • Whether an email was deleted: Check If a message was read for a short period of time or not opened. In fact, they group "glanced" and "deleted" together.

Of course none of this garbage will work with me since I disable all images in emails.

Though I might sign up for it to find out exactly how they do it.


EDIT: Here's another question on this:

The OP actually has their tracking code, and this answer here explains how it works.

NullUserException