.site-header #branding a { background-image: url(../wp-content/uploads/2015/12/logo-385-71.png); } #colophon.dark #site-info .small-logo { background-image: url(../wp-content/uploads/2015/06/image4-e1434114714282.jpg); } @media ( max-width: 979px url(../wp-content/uploads/2015/06/image4-e1434114714282.jpg); } } a:hover, .navbar .nav .current_page_item > a, .navbar .nav .current-menu-item > a, .navbar .nav .current-post-ancestor > a, .navbar .nav .current-menu-parent > a, .navbar .nav .current-menu-ancestor > a, .navbar .nav li a:hover, .navbar .nav li a:active, .navbar .nav li a:focus, .archive .content-inner .entry-meta a:hover, .desktop .top-news .dropdown-menu a:hover, .desktop .top-news .dropdown-menu a:active, .desktop .top-news .dropdown-menu a:focus { color: #ff9933; } .desktop .top-news .entry-meta, .news-slider .carousel .carousel-inner .entry-category, .nav-tabs>.active>a, .nav-tabs>.active>a:hover, .single .site-content>.hentry .post-categories li { background: #ff9933 !important ; } .news-slider .carousel-list .other-entry li.active { border-left-color: #ff9933; } .nav-tabs>.active>a:before, .nav-tabs>.active>a:hover:before { border-top-color: #ff9933; } .archive .post-layout a.active, .pagination ul>li .current, .btn-primary:hover { background: #ff9933; border-color: #ff9933; }

Gmail Tracking Changes: The Fix! | What You Need to Know

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]


The founder of emailexpert.org, Andrew Bonar currently resides not far from Sydney in Australia where he performs his primary role as Postmaster for self-service ESP Campaign Monitor

In the past two years alone Andrew has been responsible for the delivery of in excess of 120 Billion messages. With more than 15 years of industry experience, Andrew is widely recognised as a leader in the field of message sending, deliverability and compliance.

In 1996, he co-founded the UK’s oldest privately held ISP, Cheapnet Ltd. In 1998, launched the UK’s first privately held eCommerce payment systems: eBanx Ltd, and in 2003 he launched two of the very first ESP’s in Europe: MailPhoenix and eMailGenie.

From 2006 Andrew served as an independent consultant at organisations throughout Europe, the Middle East, Asia Pacific and the US. More recently serving as Worldwide Director of Deliverability at Emailvision, managing deliverability operations in 22 Countries. Andrew continues developing and evangelising best practices in permission-based marketing with clients and industry associations and travels extensively in Asia, Europe and North America to fulfil these obligations.

Related posts


  1. Henrique said:

    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. Stephanie said:

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

    • Andrew Bonar said:

      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..

  3. Mike Hammer said:

    Has anyone tested whether Gmail respects no-cache headers, etc?

    • Andrew Bonar said:

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

  4. coward said:

    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?

    • Andrew Bonar said:

      Not something we believe or advocate here at Emailexpert

    • Fred said:

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

  5. Derek Harding said:

    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.

    • Andrew Bonar said:

      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.

  6. Rene said:

    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.

    • Andrew Bonar said:

      I have updated the post to reflect your latest findings, again, nice work! Thanks

Comments are closed.

  • RSS
  • Tweet Us
  • Find us on Facebook