Skip to content
iMessage APIs
Measurement7 min read

Read receipts: the data SMS has never been able to give you

SMS can tell you a message reached a carrier. iMessage can tell you a human opened it. Those two facts support completely different decisions.

A delivery receipt on SMS means a carrier accepted the message. It does not mean it appeared on a phone, and it certainly does not mean anybody looked at it. For years that was the best signal available, so businesses optimized against it — which is roughly like tuning a radio by watching the power light.

iMessage read receipts change what you can know. Not because the number is flattering, but because it separates two failures that look identical on SMS.

Three states, three different problems

StateWhat it meansWhat to fix
Not deliveredWrong number, disconnected, or not on iMessageYour data quality, or your fallback path
Delivered, not readIt arrived and they did not open itTiming, frequency, or whether they wanted to hear from you
Read, no replyThey opened it and chose not to actThe message itself — the ask, the copy, the offer

On SMS, the second and third collapse into one bucket called 'no response', and every attempted fix is guesswork. Rewriting copy that nobody opened is wasted work. Changing send times for a message people read and ignored is also wasted work. The read receipt tells you which mistake you are making.

Read receipts are not universal

Recipients can turn them off, and a meaningful minority do. Treat read rate as a directional sample, not a census — the trend over time is reliable even though the absolute number understates reality. Never build a customer-facing behaviour, like 'we can see you read this', on top of it.

The gap is the diagnostic

The number to watch is not read rate on its own. It is the distance between delivered and read, tracked over weeks.

  • A widening gap means fatigue. You are still arriving; people have stopped caring. Cut frequency before it becomes blocks.
  • A high read rate with no replies means the message is clear and the ask is wrong. That is a copy problem, and a solvable one.
  • A sudden drop in delivery means something changed upstream — a data import, a number format issue, a provider incident.
  • High read, high reply, no conversions means the link is broken, or the page it lands on is. Check the tagged link actually survives your redirects.

What to pair it with

Read receipts tell you what happened inside the thread. They tell you nothing about what happened after the tap, and that is where the revenue is. The two have to be joined up.

Tag every link you send so the visit is attributed to the campaign that caused it. Without that, you will know your message was read and have no idea whether it made money — which is the exact position that gets messaging budgets cancelled. The UTM tracking guide covers the parameters, the naming conventions, and the four things that quietly break attribution.

text
Play: appointment-reminder        Week of Aug 17

sent            412
delivered       398   (96.6%)
read            341   (85.7% of delivered)
replied          96   (28.2% of read)
link taps        58
bookings         21   ← from utm_campaign=appointment-reminder

read → reply gap trending down 4 weeks running.
Frequency is fine. Look at the ask.

A weekly view like this is enough for most small businesses. The columns matter more than the tooling.

The trap

Read receipts are seductive because they always go up when you send more. A business that optimizes for total reads will send more messages, and will look successful for about six weeks before the block rate catches up with it.

Pick the outcome metric first — bookings, refills, recovered carts — and treat read rate as the diagnostic that explains movements in it. Each play should name the single number that decides it; read rate is never that number.

read receiptsanalyticsiMessage