Documentation
Sign inGet started

Apple Mail Privacy & open tracking

If your open rates look surprisingly high — or jumped at some point without any change on your side — you're seeing the effect of mail privacy features, most prominently Apple Mail Privacy Protection. Understanding what an "open" actually measures now is essential to reading your metrics honestly.

What changed

Open tracking works by embedding a tiny invisible image in each message; when the recipient's mail client loads the image, an open is recorded. Apple Mail Privacy Protection breaks the link between that image load and a human reading the message: for recipients who use it (most Apple Mail users do, since it's on by default), Apple's servers pre-fetch the message's images on the recipient's behalf — often shortly after delivery, whether or not the message is ever read. Each prefetch registers as an open. Gmail's image proxy adds similar machine-driven noise.
The result: a meaningful share of recorded opens are generated by machines, not people. Raw open counts overstate real engagement, and the gap varies with how many of your recipients use Apple Mail — so two audiences with identical real engagement can show very different raw open rates.

Genuine opens vs machine opens

The useful distinction is between non-prefetched opens — the image was loaded in a way consistent with a human opening the message — and machine opens, where a privacy proxy fetched it automatically. Bird detects prefetches and keeps the two apart: each open event carries an is_prefetched flag, and the open rate shown in the dashboard is computed from non-prefetched opens only, so privacy-proxy noise doesn't inflate the headline number. The raw counts remain available alongside the filtered ones for anyone who wants both views — the tracking and metrics guide defines exactly how each figure is computed.
This filtering makes Bird's open rate a more honest number than a raw count, but it doesn't make opens a precise measurement. Detection is conservative, not perfect — and the inverse problem also exists: recipients with images blocked or text-only clients read your mail without ever registering an open.

How to read engagement now

Treat opens as a soft signal: good for spotting trends and large relative differences, unreliable as an absolute measure or for per-recipient decisions.
  • Lean on clicks, replies, and conversions. A click requires a deliberate human action, which makes it the more trustworthy engagement signal — and replies and downstream conversions are stronger still. When you compare campaigns or judge whether content lands, weight these over opens.
  • Compare like with like. Open rates are still useful relatively — this month vs last month, variant A vs variant B — as long as the audience mix is similar, since the same share of machine noise affects both sides.
  • Don't prune your list on opens alone. Deciding someone is "inactive" because they never registered an open misclassifies text-only and image-blocking readers. Use absence of clicks over a long window as the pruning signal instead.
  • Tracking & metrics — how open and click tracking are instrumented and how the rates are computed
  • Events and webhooks — the per-recipient event definitions, including the is_prefetched flag on open events