The challenge for email marketers, especially ones that are looking to push the envelope is that technology changes all the time, and what is often a ‘hack’ that allows you to do truly innovative things with the channel for email marketing will no longer be supported, and often times this is with little or no notice. In fact it is often only when you start recognising issues that the change comes to light.

Update (17/12/2013): Bonar Calls #BS on Gmail Myths

This past week Gmail did just that, made a fundamental change to how they serve images and this was widely reported on a variety of blogs.

What changed in a nutshell is that images in an email are served via a Gmail Proxy, if Gmail recognises it is serving an image it will also cache this resource. This is to improve the loading time and the overall experience of its users. The problem? ESPs using an image to track whether, when and how often an email is opened by recipients. Now you are no longer able to track how many times a recipient opened, if Gmail recognises that you are serving an image. You will only have the opportunity to see the first open by any recipient using the native web based Gmail interface.

Further we are no longer able to see the IP address of the recipient nor the user agent (what device they used to collect their email) as this is all passed via the Gmail Proxy and the information is stripped prior to being pass to the ISP.

Whilst many have stated that they are seeing issues including leading vendors such as MailChimp, others state they have had no issue’s with the open tracking. This is important, why is it that customers of SmartFocus, Campaign Monitor, Lyris and a handful of other ESP’s are not having their open tracking affected? If SmartFocus or Campaign Monitor can do it, then in theory any platform should be able to do it.

You can view my video below if you want to see how multiple opens are tracked within one platform despite the changes. From what I can see nobody is at this time able to resolve the issue of device tracking or IP address/geolocation, however the open tracking is not proving to be an issue.

It is all a matter of a small change in how the tracking pixel technology is implemented at the ESP. I had no intention of revealing this tiny bit of secret sauce (it would not be hard for competing ESPs to put in a little effort and work it out for themselves, I had already pointed them in the right direction) but one individual went out of their way, investigated and published their findings. I take my hat off to René Kulka who wrote this fantastic post on the subject: Gmail’s image caching: How it affects email marketing & how to heal your opens tracking

EDIT: Rene has done further testing and has found the crucial element is ” ‘Content-length’ (=0) than of ‘content-type’. Returning nothing in combination with a HTTP 200 OK forces Gmail to grab the tracking code over and over again.”

As stated by René “the crucial difference is that … CampaignMonitor server does – at first glance – not return an image. Gmail ignores it, and every call hits the CampaignMonitor server so that every open is counted. Ergo: If you want to measure your total opens, don’t let your tracking URL return a resource of type ‘image’.” The secret is all in the HTTP header information as is illustrated in the post by René.

That really is all there is to it, now there is nothing to say Gmail will not change things again in future. However if your ESP or EDM platform is telling you it no longer is able to report multiple opens for Gmail recipients. Point them in this direction, and let them know there appears to be a relatively simple fix.

They will still use image tracking via a pixel, but the ‘magic’ is likely in the headers returned with those files. Whilst they are looking at that element they should also consider implementing P3P headers as defined by privacy best practice and part of the do-not-track movement.

This will not resolve the geolocation/IP or device tracking issue’s.
[youtube JzwRre6aWAM]

SHARE
Previous articleGmail Breaks Email Marketing?
Next articleSparkroom Incorporates BriteVerify
emailexpert is published by Andrew Bonar, the founder of the company Deliverability which is incorporated in Australia, Hong Kong and the United Kingdom. Deliverability has included Dotmailer, GetResponse, outreach.io, SendLane and other ESPs as clients. Having launched his first website in 1990, he went on to become the co-founder of @POBox UK in 1993, a free email address provider, possibly the first in the world. Thereafter launching Cheapnet which became the longest running privately owned ISP in Europe before launching the first privately owned online payment gateway in the UK: Ebanx. Andrew has consulted to some of the worlds biggest senders including Amazon, Mondelez and Nestle. 2012 in his role as Global Deliverability Director at Emailvision was the first time he oversaw the delivery of more than 100 Biillion messages in a single year. Since that time he has provisioned consultancy or performed leadership roles at some of Australia's most successful tech companies. Including Campaign Monitor, Freelancer.com and Kogan. With 21+ years of industry experience, Andrew is widely recognised as a leader in the field of message sending, deliverability and compliance. He currently resides in the Harbour City of Sydney and continues to serve as an independent consultant at organisations throughout Europe, the Middle East, Asia Pacific and the US.

13 COMMENTS

  1. How can I make a fake-pixel? I made a header with content-type: image/gif, but without any image and content-length, when I send a campaign in the body of message the “fake pixel” goes with error 500. Can you help me?

  2. Hi Andrew,
    Why won’t the ‘Content-Length’ (= 0) fix the geolocation and user agent issues?

    • As that simply ensures Google keeps calling the content repeatedly, it does not change the gact that the user agent calling the content has changed. Hope this explains it..

    • It does not respect no-cache from our testing.. However content-length=0 resolves cacheing of tracking pixels..

  3. Someone should sue google.
    I sent my images to my user – I did not give google permission to load them itself, nor store them on any of their servers or in any cache files. That is blatantly illegal. Imagine if the post office photocopied all your postal mail, and kept copies for itself?

    • Sue Google you say? It’s a free service. With the post-office you have an implied contract when they sell you a stamp.

  4. There seems to be some confusion between the use of an incorrect MIME type and a zero content-length.

    Both approaches prevent caching by the Google cache. However using just an incorrect mime type (e.g. text/html instead of image/gif) while still delivering an actual image does not prevent the recipient’s browser from caching the image.

    To fully prevent statistics under reporting you can return no content or content-length: 0. However to do so you’ll want to make sure your tag has a width=1 and height=1 otherwise some clients will render a big red X. Even with the width and height some clients may render a single pixel of red.

    The no content approach clearly won’t work when you want to display a dynamic image. Returning in incorrect MIME type will help by preventing the Google cache holding on to the image but because no-cache headers are hidden from the user’s browser by the Google cache the browser may still cache the image. Hence the situation is improved by the incorrect MIME type approach but not fully addressed by it.

    • Fantastic synopsis Derek. Thanks for taking the time to comment and clarify.
      I know that Campaign Monitor did not change anything to accommodate the latest Gmail changes and the templates and campaigns have been heavily tested and have witnessed no issues with rendering (X’s red dots, alignment or what have you).

      Platforms caring enough to track all opens at Gmail will need to do testing, tweaking and more testing at their end to find something that works without a negative impact elsewhere.

      The constant new challenges we face are part of what makes the email channel such a source of enjoyment for me.

  5. Thanks, Andrew. However, I was a lil bit too quick. In case of CM, it’s rather a matter of ‘Content-length’ (=0) than of ‘content-type’. Returning nothing in combination with a HTTP 200 OK forces Gmail to grab the tracking code over and over again. SmartFocus and Lyris are still a secret.

Comments are closed.