Open and click tracking
Open and click tracking are what turn a delivered message into the engagement numbers on the Metrics dashboard. Both instrument the message as it is sent, and both are off until you turn them on per sending domain, on the domain's detail page under Email → Domains.
Open tracking
We inject a transparent pixel into the HTML part of the message. When the recipient's mail client fetches it, we record an email.opened event with the client's IP address and user agent.
That signal is softer than it looks. Mail privacy features, most prominently Apple Mail Privacy Protection and Gmail's image proxy, fetch images on the recipient's behalf, so an open can be a machine and not a reader. We mark those with is_prefetched: true, and your open rate counts unique non-prefetched opens only, so proxy traffic does not inflate it. Both the raw and the filtered counts are in the stats API if you want to see the gap.
Opens are still a soft signal after that filtering, which is why clicks are the better basis for a decision that matters. Apple Mail Privacy and open tracking covers how to read engagement now that machines open your mail.
Click tracking
We rewrite the links in your HTML through a tracking redirect. The recipient clicks the rewritten URL, we record an email.clicked event with the original url, and the browser goes straight on to the destination.
Rewritten links are served over HTTPS from your branded tracking hostname, a CNAME on your sending domain that defaults to links (so links.mail.acme.com for a sending domain of mail.acme.com). Nothing is rewritten until that record verifies. Adding it, choosing a different label, and changing it later are all covered in Tracking domain.
Turning tracking on
Tracking on a given message is the AND of three things:
| What | Default |
|---|---|
| The per-send track_opens / track_clicks flag | true |
| The domain's open_tracking / click_tracking setting | Off |
| A verified tracking CNAME on the sending domain | Not added |
So a fresh workspace tracks nothing even though the per-send flags default to true: a per-send true cannot switch tracking on by itself. Add and verify the tracking CNAME, then turn the domain setting on. You can flip the setting on before the record verifies and it takes effect once it does, but turning it on for a domain with no tracking hostname configured at all returns a 409.
A per-send false always wins, which is the reason the flags exist. Set track_clicks: false on password resets and security notifications, where a rewritten link is worse than no click data. Both flags are booleans on POST /v1/email/messages, and the message resource echoes the resolved values back on the send response and on later reads, so you can see what a message was actually sent with.
An unverified tracking CNAME never blocks sending. A domain reports its tracking readiness separately from its sending readiness, as capabilities.tracking and capabilities.sending.
Next steps
- Tracking domain: add, customize, and verify the tracking CNAME
- Email metrics: where the engagement numbers land and what healthy looks like
- Events and webhooks: the email.opened and email.clicked events these instruments produce
- Apple Mail Privacy and open tracking: why open rates read high, and what to trust instead