Open your inbox, open an email, and somewhere in that message a 43-byte image may have just phoned home. That image is a tracking pixel: a 1×1 transparent GIF (or PNG) served from a URL that is unique for every recipient, something like https://track.example.com/p/8f2c1a.gif. It looks like nothing, because it is nothing.
The mechanism
HTML email is just HTML, and <img src> is fetched by the mail client when it renders the message. So a sender embeds:
<img src="https://track.example.com/p/8f2c1a.gif" width="1" height="1" alt="" /> When the client requests that URL, the server logs the hit: timestamp, IP address (from which a rough city-level location can be derived), User-Agent (client name and version), and the path segment that maps to a specific recipient and campaign. That is the entire "open" — one HTTP GET.
Why the signal is fuzzy
- Proxy caching and pre-fetching. Gmail fetches remote images through Google's image proxy, so the request your server sees comes from Google's infrastructure, often at delivery time rather than read time.
- Apple Mail Privacy Protection. Since iOS 15 and macOS Monterey, Mail can pre-load all remote content, pixels included, in the background whether or not the recipient reads the message. For Apple Mail readers, open events became close to noise.
- Image blocking. Many clients and corporate mail gateways block remote images by default. The pixel is never requested, so a genuinely read email can look unopened.
- Security scanners. Enterprise gateways fetch URLs to inspect them, generating "opens" from bots.
- Plain-text readers. Text-only clients never request remote images at all.
So "opened: yes" means some HTTP client rendered an image at some point. "Opened: no" only means no request was recorded. Neither is a statement about human attention.
The privacy and ethics angle
Recipients generally do not expect a read receipt they never opted into. A pixel quietly reveals that a message was viewed, approximately when, and an IP that may correlate to a location. That is why consent where legally required, a clear privacy policy, and honoring image blocking are baseline requirements, not niceties. Proxy caching cuts both ways here: it protects reader IPs, which means the IP you see is frequently Google's rather than the reader's, so do not build geo logic or abuse-signal logic on pixel data.
How to try it
Generate a unique hosted pixel URL per recipient, paste the <img> tag into an HTML email you send yourself, then watch the hit log. You can host this yourself, or use a hosted option such as MailPixel email tracker, which gives you a 1×1 tracking URL plus an open log without standing up any infrastructure. Keep a distinct path per recipient so each hit maps back to one address.
What to do instead, or combine with
Treat opens as a soft, directional signal and weight other events much higher:
- Link clicks, tracked with a unique URL per campaign — a click requires an actual decision.
- Replies, the strongest possible signal that a human read and cared.
- UTM parameters on links (
utm_source,utm_medium,utm_campaign) so downstream analytics attribute conversions properly.
Then aggregate: read cohort-level trends rather than judging one recipient by a single pixel fetch, and never automate anything irreversible on an "opened" flag alone.