Email open tracking helps you understand how recipients engage with the messages
you send. This article explains when Iterable records an emailOpen event,
when it doesn't, where you can view email open event data, and how open tracking
affects metrics.
NOTE
If you have questions about tracking-pixel consent or regulatory requirements related to email open tracking, see Compliance considerations. To include the open-tracking pixel only for recipients who have consented, see Using Consent-Based Email Open Tracking.
# In this article
# How email open tracking works
When Iterable sends a standard HTML email, it adds a hidden 1x1 email open-tracking pixel
at the start of the email's <body> element during send-time processing. The
pixel is not part of your template. Iterable injects it automatically unless the project has open tracking disabled, or the project uses consent-based open tracking and the recipient didn't consent or is missing the consent field. See Compliance considerations.
When an email client displays images in a message, it downloads the tiny
tracking image from Iterable's servers. Iterable treats that image request as
an open and records an emailOpen system event. An inbox provider or proxy can
also download the image, sometimes before or without a recipient viewing the
message.
Iterable evaluates properties of the image request against known automated-open
patterns and records the result in the isBot field in the email open event.
This is a heuristic and does not confirm whether a human viewed the message.
Open metrics are useful directional and trend data, but they do not always reflect recipient behavior. Their completeness can be affected by image blocking, privacy proxies, bot prefetching, and other factors.
# When Iterable records an email open event (emailOpen)
NOTE
Shortly after the release of consent-based open tracking we will update our email open metrics. The update will calculate open rates based on email sends where the pixel was injected. Until we make that update, email open rates will be calculated based on all emails delivered.
Iterable records an email open event (with event name emailOpen) when all
of the following are true:
- Open tracking is enabled for the project (tracking is enabled by default).
- The rendered email included the open-tracking pixel.
- The recipient's email client, inbox provider, or a proxy loads the image.
- The pixel request reaches Iterable.
If the project uses consent-based open tracking, Iterable
includes the pixel in marketing emails (and therefore only records an emailOpen
event) when emailTrackingPixelConsent is true. Transactional emails aren't
subject to that check. See Using Consent-Based Email Open Tracking.
An email open event doesn't always mean a human recipient intentionally opened
and read the message. Privacy proxies, inbox providers, and security scanners
can load the open-tracking pixel automatically, causing an emailOpen event to be
recorded in Iterable.
# When Iterable doesn't record an open
An open is not recorded when the open-tracking pixel doesn't load or when Iterable intentionally avoids recording an open. For some email use cases, Iterable doesn't include an open-tracking pixel in the email HTML. External factors can also prevent the open-tracking pixel from loading.
Common scenarios where opens are not tracked, which can make reported open rates appear lower than they may actually be, include:
- Images are blocked — Some email clients or user settings block images from loading. If images are blocked, the pixel doesn't load, and an open is not recorded.
- Open tracking is disabled — When open tracking is disabled for a project, Iterable doesn't add its open-tracking pixel to email HTML for messages sent from that project.
-
The recipient didn't consent for tracking-pixel use — When the project uses consent-based open tracking,
Iterable doesn't add the pixel to marketing emails if
emailTrackingPixelConsentisfalseor missing. No pixel means noemailOpen. - A recipient views the message using the View in browser feature — View-in-browser email views don't record opens. This prevents shared or revisited page hits in browser views from inflating open metrics.
-
The message is a proof send — Proof sends use the same consent policy as
live sends. They may include an open-tracking pixel, but the pixel URL routes to a test
endpoint that doesn't record an
emailOpenevent.
# Other conditional behavior
Some email clients and message formats handle open tracking differently:
- Privacy proxies — Email clients such as Gmail and Apple Mail can request images through a proxy. As a result, an open event might not reflect a recipient's device, location, or whether they viewed the message.
- Bot prefetching — Security scanning tools and mail preprocessing services can load images automatically, producing open events that are not the result of a human opening the email.
- AMP email — AMP email uses an AMP-compatible tracking element instead of the open-tracking pixel when the send includes open tracking. AMP uses the same send-time decision as standard HTML email.
# Use consent-based open tracking
To include the open-tracking pixel only for recipients who have consented, enable
Use consent-based open tracking and update the emailTrackingPixelConsent
field for each user profile to reflect show that consent has been granted.
If you don’t update this field in your user profiles, and Use consent-based open tracking
is turned on, the value will be treated as false and open-tracking pixels will
be omitted from messages, impacting resulting email open rates.
To learn how to turn the setting on, write consent values, and review sends after consent changes, see Using Consent-Based Email Open Tracking.
# Compliance considerations
IMPORTANT
This information is subject to change and does not constitute legal advice or a compliance determination.
You are responsible for evaluating how email open-tracking requirements apply to your organization, including:
- How you collect, manage, and store user consent
- How you provide notice about tracking-pixel use
- Whether the open-tracking pixel needs to be turned off
Consult with your compliance and privacy teams to determine how these requirements apply to your organization. Iterable cannot provide advice on how to comply with these requirements.
In some regions, privacy regulators have issued guidance that treats email open-tracking pixels similarly to non-essential cookies. For example, CNIL in France and Garante in Italy have issued guidance that distinguishes consent to receive marketing emails from consent to use open-tracking pixels. Under this guidance, organizations may need separate consent for open-tracking pixels.
Marketing subscription consent in Iterable is currently managed through channels, message types, and preference centers. Marketing subscription consent is separate from any tracking-pixel consent that may be required under applicable regulations.
Iterable stores each user's current tracking-pixel consent on their profile. It doesn't maintain a complete history of consent changes. If your organization needs to demonstrate consent as of a specific date, such as when a particular email was sent, maintain a timestamped consent log in your own systems.
If you determine that you are subject to open tracking regulations, you can use consent-based open tracking or disable open tracking for the project. To disable open tracking for an entire project, contact your Iterable Customer Success Manager.
NOTE
You can use consent-based open tracking with emailTrackingPixelConsent,
or disable open tracking for the whole project. Iterable doesn't determine
which approach applies to your organization.
# Viewing email open events
You can view emailOpen events in Iterable, export them with APIs, or send them
to external systems with webhooks and Snowflake.
# Viewing email open events for a user
To view email open events associated with a user:
- Go to Audience > Contact Lookup and search for the user.
- Go to Events > History to view the Events History page.
- Use filters or search to locate
emailOpenevents.
# Exporting email open events with Iterable APIs
Use Iterable's Export APIs
to retrieve historical emailOpen event payloads for your project.
# Sharing email open events with external systems
You can send email open events to external systems in several ways, based on what your vendor preferences are and how you need to access the data:
-
System webhooks — Send an
emailOpenpayload to your endpoint when Iterable records an open. -
mParticle —
Forward email opens as mParticle custom events named
emailOpenwhen you configure and enable the mParticle system webhook. -
Segment — Forward
email opens to Segment as
Email OpenedTrack events. - Snowflake Data Share — Access email open records incrementally in your data warehouse.
- Data Sync — Send email open records incrementally to a supported data destination.
# Email open event data
When the open-tracking pixel loads, Iterable can record an emailOpen system event.
The event includes identifying information about the send and contextual data
captured from the pixel request.
Because email open events are highly variable in their data fields, Iterable doesn't provide complete schema documentation in this article. However, the event can include data captured from the HTTP request that loads the open-tracking pixel.
# Data collected from the open-tracking pixel request
| Field | Description |
|---|---|
ip | IP address included with the pixel request. This can be the address of an email client or proxy. |
userAgent | User agent string reported by the email client or proxy that requested the pixel |
userAgentDevice | Client or device classification derived from the user agent that requested the pixel |
proxySource | Identifies the proxy if the open came through one, for example Gmail
|
createdAt | Timestamp of when the pixel request was received |
isBot | Indicates that Iterable identified the request as most likely performed by a non-human user agent. This is a heuristic, not confirmation that a request was automated. This signal is used to calculate filtered open metrics. |
city*, region*, country*, timeZone* | Location data derived from the IP address. * These fields are available when GeoIP lookup is enabled, except for Gmail-proxied opens. |
# Data retention
Open events are classified as Iterable system events, which are retained in Iterable's data storage for 2 years by default, unless your contract specifies otherwise. See Events Overview for more information about Iterable system events and their retention.
# How open tracking affects metrics and reporting
Open tracking data feeds several email metrics in Iterable. Some metrics are
calculated directly from emailOpen events, while others include assumed opens,
which count a click as an open when a recipient almost certainly opened an email
by clicking a link even if the pixel did not load.
When a project uses consent-based open tracking, marketing emails to
users with emailTrackingPixelConsent set to false or missing don't include a
pixel and don't produce emailOpen events. Open counts decrease for those
sends. A missing emailOpen doesn't always mean the recipient didn't open the
message—the pixel might not have been included.
Metrics that include assumed opens can
still count a click as an open.
If you turn the setting on during an active campaign, or only some recipients provide consent for pixel tracking, campaign reporting can include both tracked and untracked messages.
# Metrics that directly reflect open tracking
The following metrics depend on emailOpen events. If open tracking is
disabled, some recipients don't consent or are missing the consent field, or opens
are incomplete, these metrics decrease or become unavailable:
- Total Email Opens
- Total Email Opens (filtered)
- Unique Email Opens
- Unique Email Opens (filtered)
- Email Open Rate (filtered)
- Unique Email Open Rate (filtered)
NOTE
Nova features like Send Time Decisioning and Brand Affinity use open history to make recommendations. They work best when open tracking is on. If tracking is off, or if some recipients haven't consented, you'll have less open data, which may impact Nova performance and recommendations.
# Metrics that include assumed opens
These metrics count a click as an open to account for when a recipient clicks a link but the open-tracking pixel did not load:
# Related Iterable features that use email open data
Email open data is used by several Iterable features. If open tracking is disabled, some recipients didn't consent or are missing the consent field, or email open data is incomplete, these features may be affected:
- Segmentation — Segmentation queries can include email open events.
- Experiments — Open rate and Unique Email Opens (filtered) can be used as experiment success criteria.
- Journeys — Journeys can start or branch on email open events in Start tiles and Filter tiles.
- Audience Insights — Email open behavior can be used as a behavioral insights for a list.
- Send Time Decisioning and Brand Affinity — These features use engagement history, which includes signals from email open events.
- Nova Intelligence - Nova Intelligence can answer questions about email open data.
# Disabling open tracking
If your organization has consent requirements that prevent you from using open tracking for every recipient, you can use consent-based open tracking or disable it at the project level.
To disable open tracking for an entire project, ask your Iterable Customer Success Manager to disable it for your project.
If your Customer Success Manager (CSM) disabled open tracking for this project, turning on Use consent-based open tracking overrides that restriction. See Turn on consent-based open tracking.
# What changes when open tracking is disabled
When open tracking is disabled for a project, Iterable doesn't add its open-tracking
pixel to the email HTML for messages sent from that project. As a result, new
emailOpen events and open-based metrics are not recorded for those messages.
After your CSM disables open tracking, future emails from that project no longer include the open-tracking pixel. This includes future sends from active and recurring campaigns, as well as scheduled campaigns that have not started. Emails that Iterable has already rendered for sending or previously sent are not affected.
NOTE
If you change this setting during an active campaign, campaign reporting can include both tracked and untracked messages.
If you use Stored Messages to store email send payloads, you can review your stored messages data to determine whether the email HTML that was sent included the open-tracking pixel.
Open-based metrics stop receiving data for emails rendered after tracking is disabled. This includes total opens, unique opens, and open rate. Delivery and bounce metrics are not affected because they do not depend on open events.
The following features are also affected:
- Experiments — Experiments that use email opens as a winning criterion stop receiving new open-conversion events. Experiments that use other conversion events continue to collect those events.
- Journeys — Journeys that start or branch when a recipient opens an email stop receiving new qualifying activity.
-
Segmentation and Audience Insights — Queries based on
emailOpenstop receiving new qualifying activity. - Data out features - When disabled, any data out features that use email open data will stop receiving new data.
# What doesn't change when open tracking is disabled
Historical email open data before the change is not affected.
Click tracking is not affected by disabling open tracking. Open tracking and click tracking use separate mechanisms. Disabling open tracking removes Iterable's open-tracking pixel from email sends, but click tracking continues to work through link rewriting. Accordingly, metrics that include assumed opens can still reflect assumed opens for clicks that are tracked.
# Resuming open tracking
When you ask your Iterable Customer Success Manager to resume open tracking, Iterable will resume adding the open-tracking pixel to future emails from that project.
Resuming tracking does not provide retroactive open data.
# Want to learn more?
To learn more about related email behavior and event data, see these articles: