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, how open tracking
affects metrics, and additional considerations.
NOTE
If you have questions about pixel tracking consent or regulatory requirements related to email open tracking, see Compliance Considerations.
# In this article
# How email open tracking works
When Iterable sends a standard HTML email, it adds a hidden 1x1 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.
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)
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 recipient's email client, inbox provider, or a proxy loads the image.
- The pixel request reaches Iterable.
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 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 tracking pixel doesn't load or when Iterable intentionally avoids recording an open. For some email use cases, Iterable doesn't include a tracking pixel in the email HTML. External factors can also prevent the 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.
- 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 may include an open 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 a standard HTML pixel when open tracking is enabled.
# 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 and manage user consent
- How you provide notice about tracking-pixel use
- Whether the 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 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 tracking pixels. Under this guidance, organizations may need separate consent for tracking pixels.
Iterable does not offer native recipient-level open-tracking consent controls. Marketing subscription consent in Iterable, managed through channels, message types, and preference centers, is separate from any tracking-pixel consent that may be required under applicable regulations.
If you determine that you are subject to open tracking regulations and need to disable open tracking, contact your Iterable Customer Success Manager to disable it for your project.
# 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. For a representative payload, see System Webhooks. -
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. For details, see Snowflake + Iterable Integration.
- Data Sync — Send email open records incrementally to a supported data destination. See Data Sync.
# Email open event data
When the 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 tracking pixel.
# Data collected from the 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.
# Metrics that directly reflect open tracking
The following metrics depend on emailOpen events. If open tracking is
disabled 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)
# Metrics that include assumed opens
These metrics count a click as an open to account for when a recipient clicks a link but the 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 or email open data is incomplete, these features may be affected:
- 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 insight for segmentation.
- Send Time Optimization and Brand Affinity — These features use engagement history, which includes signals from email open events.
# Disabling open tracking
If your organization has consent requirements that prevent you from using open tracking, you can disable it at the project level by asking your Iterable Customer Success Manager to disable it for your project.
Open tracking can only be disabled at the project level. There is no option to disable open tracking on a more granular basis for individual messages, users, campaigns, or message types.
# What changes when open tracking is disabled
When open tracking is disabled for a project, Iterable doesn't add its 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 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
Iterable does not record whether open tracking was enabled for an individual send. 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 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. -
System webhooks and Snowflake exports — System webhooks and Snowflake
exports stop receiving new
emailOpenrecords for untracked sends.
If you re-enable open tracking, Iterable resumes adding the tracking pixel to future emails from that project. Re-enabling tracking does not provide retroactive open 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 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.
# Want to learn more?
To learn more about related email behavior and event data, see these articles: