{"id":4040,"date":"2021-07-29T07:26:58","date_gmt":"2021-07-29T07:26:58","guid":{"rendered":"https:\/\/freshinbox.com\/blog\/?p=4040"},"modified":"2021-08-17T19:53:08","modified_gmt":"2021-08-17T19:53:08","slug":"a-technical-take-on-ios15-mail-privacy-protection","status":"publish","type":"post","link":"https:\/\/freshinbox.com\/blog\/a-technical-take-on-ios15-mail-privacy-protection\/","title":{"rendered":"A Technical Take on iOS15 Mail Privacy Protection"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">By now the topic of Apple\u2019s Mail Privacy Protection change for the upcoming iOS 15 is on everyone\u2019s lips.\u00a0<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">A Brief Overview<\/span><\/h2>\n<p>On June 7, during Apple&#8217;s WWDC21 conference, it announced Mail Privacy Protection for their Mail app on iOS 15, iPadOS 15, and macOS Monterey devices, set to launch between September and November of this year.\u00a0<a href=\"https:\/\/www.apple.com\/newsroom\/2021\/06\/apple-advances-its-privacy-leadership-with-ios-15-ipados-15-macos-monterey-and-watchos-8\/\">According to Apple&#8217;s press release<\/a>, \u201cMail Privacy Protection stops senders from using invisible pixels to collect information about the user. The new feature helps users prevent senders from knowing when they open an email and masks their IP address so it can\u2019t be linked to other online activity or used to determine their location.\u201d<\/p>\n<p>This is not a default setting but something that a user will see when they first open an Apple Mail app, in which\u00a0they\u2019ll get a message prompting them to either \u201cProtect Mail activity\u201d or \u201cDon\u2019t protect Mail activity.\u201d<\/p>\n<p>The following are some of the technical details I\u2019ve discovered while <a href=\"https:\/\/freshinbox.com\/blog\/how-to-build-your-own-email-open-tracking-pixel\">testing the Apple Mail app on iOS15 beta<\/a>.<\/p>\n<h2><span style=\"font-weight: 400;\">Observations<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">I downloaded the iOS15 beta onto my device and set up my own pixel. By the way, you can learn how to <a href=\"https:\/\/freshinbox.com\/blog\/how-to-build-your-own-email-open-tracking-pixel\">set up your own pixel here<\/a><\/span><span style=\"font-weight: 400;\">, so you can run your own experiments that way.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Also, take the following observations with a grain of salt as this is only the beta and Apple can always tweak their setup at any time.<\/span><\/p>\n<ol>\n<li><strong>Images load as if the email is opened:<\/strong><br \/>\nWhat I\u2019ve found is that if you have desktop and mobile background images that are loaded <a href=\"https:\/\/www.cantaloupedigital.com\/resources\/how-to-swap-images-for-responsive-emails\/?from=freshinbox.com\">using media queries<\/a>, only the mobile background images are loaded. This is consistent with how the client would behave if an email is opened by a user. Unfortunately, this makes it harder to tell if an email is actually read or not by tinkering with media queries.<\/p>\n<p><b>Update:<\/b> Apparently you can detect a real user open as of iOS Beta 5 by using <a href=\"https:\/\/proofjump.com\/blog\/detect-real-opens-on-apple-mail-using-an-external-css-pixel\/\">an external CSS pixel<\/a>.<\/li>\n<li><strong>Interactive pixels can still gauge engagement:<\/strong><br \/>\nOne very interesting note is that interactive or kinetic background images loaded through :hover or :checked are not pre-fetched by the client. This means if you have pixels that <a href=\"https:\/\/freshinbox.com\/blog\/tracking-actions-in-interactive-email\/\">detect interactive actions<\/a>, they would detect real user actions. Once triggered, though these pixels are cached so you wouldn&#8217;t be able to detect subsequent actions. Now would Apple put the kibosh on this, too? Who knows!<\/p>\n<\/li>\n<li><strong>It takes several minutes to several hours for images to begin downloading:<\/strong><br \/>\nFrom my tests, once the emails are loaded into the email client on iOS15 beta, it takes the client anywhere from several minutes usually around 20 minutes to more than 8 hours to begin downloading images in the background.<\/p>\n<p>Update: <a href=\"https:\/\/twitter.com\/drmatthewdunn\">Matthew Dunn<\/a> mentioned in the comments that he noticed that the Mail client downloads images almost immediately for emails in accounts configured with push (ie. Exchange\/iCloud) which happens when the messages arrive vs fetch (Gmail\/IMAP) which happens when the client periodically checks for email (I ran my tests with the Mail client connected to Gmail\/IMAP\/POP accounts).<\/p>\n<\/li>\n<li><strong>Images in the Junk (spam) folder are not downloaded:<\/strong><br \/>\nWhen an email lands in the Apple Mail&#8217;s Junk folder I did not notice the email client downloading images within these emails in the background.<\/p>\n<\/li>\n<li><strong>Power and WiFi matters:<\/strong><br \/>\nFor the current version of the beta, it appears that the device tends to hold off on downloading images in the background if the device is not connected to a power source or not on Wifi. I&#8217;ve seen cases where images are not downloaded for 5 hours, and the moment I plug in the power cable and turn on Wifi, the images start downloading. .<\/p>\n<p>Most times, when the device is on WiFi and connected to a power source, the images of unread emails begin downloading in the background within the first 30 minutes after an email is downloaded.<\/p>\n<\/li>\n<li><strong>The client needs to be running:<\/strong><br \/>\nIf the Mail app is killed (not just put into the background), I&#8217;ve found that the client does not load images in the background.<\/p>\n<\/li>\n<li><strong>Proxied IP and &#8220;Mozilla\/5.0&#8221; User Agent:<\/strong><br \/>\nAs many have found out, the user agent for the request is masked to \u201cMozilla\/5.0\u201d and the requests come from a proxied IP address.\u00a0 Brian Sisolak also noticed that some of the IPs <a href=\"https:\/\/twitter.com\/bsisolak\/status\/1402055871652376576\">originate from Microsoft&#8217;s Azure as well as Cloudflare<\/a>. According to Apple&#8217;s notes, these IP may be associated with a user&#8217;s general region as well.<\/p>\n<\/li>\n<li><strong>Images are cached for 2-3 days:<\/strong><br \/>\nOnce the images are downloaded in an email, they are cached, and opening the email does not entail a load from the server. Also, it appears based on <a href=\"https:\/\/twitter.com\/bsisolak\/status\/1403131498190938118\">Brian\u2019s observation<\/a> that the caching does not respect the &#8220;Cache-Control&#8221; headers that specify when a cached image should expire &#8211; unlike Gmail, which honors the expiry.<\/p>\n<p>What this means is if you&#8217;re seeing multiple &#8220;opens&#8221; over several days from the same recipient from Apple Mail, its likely the subsequent ones were real opens &#8211; though it could be due to other factors as well such as the recipient connecting their other Apple devices (Mac\/iPad) to the same email account and not downloading emails until later.<\/p>\n<\/li>\n<li><strong>Images are cached across emails:<\/strong><br \/>\nIf you have the same image across multiple emails (and emails across accounts on the same email client), the image is only fetched once. This may not be relevant to tracking pixels since they are unique per email, but it is something I&#8217;ve noticed.<\/p>\n<\/li>\n<\/ol>\n<h2><span style=\"font-weight: 400;\">Learnings<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">The first thing to note is that analytics providers and ESPs must now start segregating Apple Mail and non-Apple mail \u201copens\u201d for the stats to make any sense. However, once you can segregate these stats, the Apple Mail stats can still be valuable.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Based on what I\u2019ve found, here are some of my takeaways:<\/span><\/p>\n<ol>\n<li>One of the upshots is since the emails must be loaded into a Mail client for the images to be downloaded, you now can tell that these email addresses are live and not going to an inbox that has been abandoned.<br \/>\n<span style=\"font-weight: 400;\"><br \/>\n<\/span><\/p>\n<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">One of the worries of marketers is if the Mail client downloaded all images immediately after retrieving an email, that may result in a flood of image requests on their server potentially overwhelming their servers. Seeing that there is not only a delay in downloading images, but often a long delay when the device is not connected to a power source, this tsunami of requests may not materialize.<br \/>\n<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/p>\n<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">You can still gain some signals of engagement (for now) by using <\/span><a href=\"https:\/\/freshinbox.com\/blog\/tracking-actions-in-interactive-email\/\"><span style=\"font-weight: 400;\">interactive pixel tracking<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/p>\n<\/li>\n<\/ol>\n<h2><span style=\"font-weight: 400;\">So what does this mean for you?<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">I think there are many pundits already giving their opinion and I\u2019m not much of a marketer\u2019s marketer, but here are some.<\/span><\/p>\n<ul>\n<li><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><strong> Opens are still not dead.<\/strong><br \/>\nAt least not yet, since you still have about 50% of opens on Gmail and other providers. So you\u2019re still getting a strong signal about opens, though you, your email service provider, or analytics provider need to segregate out the Apple pixel requests. Features like A\/B testing based on opens can live to fight another day.<\/span><\/span><\/p>\n<\/li>\n<li><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><strong> \u201cReal-time content\u201d will require fallbacks<\/strong><br \/>\nAlthough Apple&#8217;s changes mean that real-time content\u00a0(i.e. countdown timers) is no longer real-time in Apple Mail &#8211; there&#8217;s always Gmail. Just make sure you have an appropriate fallback content when the content is loaded in an Apple Mail client.<\/span><\/span><\/p>\n<\/li>\n<li><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><strong> \u201cRead time\u201d (glanced vs skim vs read) analytics IS dead. <\/strong><br \/>\nAnalytics that tell how long a recipient spent reading your emails has never worked in Gmail due to proxying and they\u2019ve ALWAYS been super inaccurate anyway, but with Apple now in the camp, the days of faux read-time analytics will be going away.<\/span><\/span><\/p>\n<\/li>\n<li><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><strong>IP-based geo-located imagery IS dead.<\/strong><br \/>\nLocation-based imagery based on IP (i.e. weather) will no longer work on the majority of email clients &#8211; since it has never worked in Gmail, Yahoo, or Outlook.com. However, you can still target content based on \u201cfirst-party\u201d data\u00a0 (ie the address you have for your clients in your own database)<\/span><\/span><\/p>\n<\/li>\n<li><strong>Time to reconsider open-based journey triggers.<br \/>\n<\/strong><span style=\"font-weight: 400;\">Sending reminders in your marketing automation based on whether a recipient has opened your email? Well, they may no longer be accurate.<\/span><\/p>\n<\/li>\n<\/ul>\n<h2><span style=\"font-weight: 400;\">Other Resources<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">If you&#8217;re looking for more technical discussion about Apple&#8217;s upcoming changes,\u00a0<a href=\"https:\/\/player.vimeo.com\/video\/574321820?from=freshinbox\">check out this webinar<\/a> featuring <a href=\"https:\/\/peakinbox.com\">PeakInbox<\/a>&#8216;s <a href=\"https:\/\/twitter.com\/bsisolak\">Brian Sisolak<\/a>, <a href=\"https:\/\/https:\/\/campaigngenius.io\/\">Campaign Genius<\/a>&#8216; <a href=\"https:\/\/twitter.com\/drmatthewdunn\">Matthew Dunn<\/a>, and <a href=\"https:\/\/www.onlyinfluencers.com\/\">Only Influencers<\/a>&#8216; <a href=\"https:\/\/twitter.com\/jeajen\">Jeanne Jennings<\/a>.<\/span><\/p>\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>By now the topic of Apple\u2019s Mail Privacy Protection change for the upcoming iOS 15 is on everyone\u2019s lips.\u00a0 A Brief Overview On June 7, during Apple&#8217;s WWDC21 conference, it announced Mail Privacy Protection for their Mail app on iOS 15, iPadOS 15, and macOS Monterey devices, set to launch between September and November of [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":4071,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[2,19,28],"tags":[],"_links":{"self":[{"href":"https:\/\/freshinbox.com\/blog\/wp-json\/wp\/v2\/posts\/4040"}],"collection":[{"href":"https:\/\/freshinbox.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/freshinbox.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/freshinbox.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/freshinbox.com\/blog\/wp-json\/wp\/v2\/comments?post=4040"}],"version-history":[{"count":52,"href":"https:\/\/freshinbox.com\/blog\/wp-json\/wp\/v2\/posts\/4040\/revisions"}],"predecessor-version":[{"id":4122,"href":"https:\/\/freshinbox.com\/blog\/wp-json\/wp\/v2\/posts\/4040\/revisions\/4122"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/freshinbox.com\/blog\/wp-json\/wp\/v2\/media\/4071"}],"wp:attachment":[{"href":"https:\/\/freshinbox.com\/blog\/wp-json\/wp\/v2\/media?parent=4040"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/freshinbox.com\/blog\/wp-json\/wp\/v2\/categories?post=4040"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/freshinbox.com\/blog\/wp-json\/wp\/v2\/tags?post=4040"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}