You cannot track clicks on a link sent in an Instagram DM through Instagram. Meta's API reports no tap on a link button, so every click-through number in every DM tool was counted by a redirect that tool controls, not by the platform. Instagram does report one tap in the flow — but it is a different tap, earlier in the conversation.
That distinction is the whole answer, and almost nothing written on this subject makes it. So here is where the line falls, why it falls there, and what is genuinely measurable on the other side of it.
What does Instagram report about a link sent in a DM?
Nothing about the tap. A link in an automated Instagram DM is delivered as a button on a message card — in Meta's terms, a generic template whose single button is a web_url. A web_url button hands the person off to their browser, and Instagram sends no webhook when that happens.
This is not a permission we chose not to request or a metric buried in a dashboard. Meta's Instagram platform delivers events only for the fields an app subscribes to, and there is no field for a link tap. The messaging fields an app can subscribe to cover comments, messages, and postbacks. A web_url press is none of the three.
The consequence is worth stating plainly, because it is the sentence most tools would rather you didn't read: Instagram does not know, and cannot tell anyone, whether the link in your DM was opened.
Which tap does Instagram report, then?
The one that opens the conversation. When an automation replies to a comment, its first message is a private reply carrying a button — and that button is a postback, not a link. A press on it does fire a webhook, arriving as a postback event.
That tap exists for a reason that has nothing to do with analytics. Meta does not permit a business account to send a promotional link to someone cold; the person has to interact first. The postback press is that interaction, which is what makes the second message — the one carrying the link — permissible at all.
So the flow has two taps and they are asymmetric:
| The tap | Button type | Does Instagram report it? |
|---|---|---|
| Opening the conversation | postback |
Yes — it arrives as a webhook |
| Opening your link | web_url |
No — no event exists |
Anyone quoting a DM click-through rate is measuring the second row. The platform only produces the first.
So how do tools show a DM click-through rate at all?
With a redirect they own. There is no other mechanism available, and that follows from elimination rather than speculation: the platform exposes no tap event, and the sender does not control the destination page, so the only place a click can be counted is a hop in between.
In practice that means the tool replaces your link with one on its own domain, counts the request when someone hits it, and forwards them to where they were going. The number is real. What it measures is a request to the tool's redirect, which is not quite the same thing as a person reading your page — a preview fetch, a security scanner, or a tap that never finishes loading all land on the same side of the count.
Worth knowing rather than worth worrying about. A redirect is the standard way this is done across every channel that reports link clicks, including email. The point is only that the number originates with the tool, so its definition is the tool's definition, and two products can report different click counts for the same link without either being wrong.
What can you actually measure without it?
Four things, and they are more useful than a click count for most decisions:
- How many times the automation fired. Every matched comment, story reply, or keyword message is an event the platform does report. This is the honest denominator for "is the ask working" — see trigger rate.
- How many messages were sent and delivered. The send is your own outbound call, so its outcome is known precisely, including failures.
- Which keyword and which post produced them. Attributable per automation, which is what tells you the caption did its job rather than the offer.
- How many people became contacts. Each new person who engages is a contact you keep, which outlives the 24-hour messaging window that the conversation itself does not.
The first and the last are the pair that answers most questions. A post where the trigger count is high and the contact count is low has a keyword problem; one where both are low has a call-to-action problem. Neither diagnosis needs a click.
Do UTM parameters solve it?
Partly, and it is worth being precise about which part. Adding UTM parameters to the link means arrivals show up in your own analytics, attributed to the DM that sent them. That is a real measurement and it costs nothing to set up.
But UTM parameters count arrivals on your page, not taps in the DM — and the gap between those two numbers is not noise. Someone who taps and abandons before the page loads is missing from the UTM count and present in a redirect count. Someone who copies the link and opens it later, or shares it with a friend who opens it, is present in the UTM count and attributable to nothing. If you compare a UTM figure against a tool's click figure, expect them to disagree, and expect neither to be the "true" one.
For most creators this is a distinction without a decision attached: if arrivals are what you care about — and they usually are, because arrivals are the ones who can buy something — UTMs measure the thing you want and the platform's silence costs you nothing.
Where this stops
Three limits worth knowing before you trust any number on this.
Instagram's own insights do not fill the gap. Instagram reports impressions, reach and profile visits on content. None of those is a DM link tap, and no insights permission adds one — the metric does not exist to be granted.
Nothing measures a tap, including the workarounds. A redirect counts requests to the redirect; UTM parameters count arrivals on your page. Both are real numbers and neither is the number of people who pressed the button. If you need an exact tap count, no source on Instagram can give you one — so pick the proxy whose definition you understand and stay with it rather than switching and comparing.
A redirect changes what your audience sees. Routing your link through a counting hop means the address in the message is the redirect's, not yours — worth weighing on a message where the destination is part of the reassurance, like a checkout or a booking page. It is a real trade, not a free upgrade.
What to take from this
If a tool shows you a DM click-through rate, you now know where the number came from and what it counts. If you want arrivals attributed to a specific post, UTM parameters get you there today with no redirect in the middle. And if you were trying to reconcile two click numbers that refuse to agree, the reason is that they were never measuring the same event.
What Instagram gives you is the moment someone raised their hand. That turns out to be the number worth watching.