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.

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, and it is worth being precise about whose reason it is. Meta allows one private reply per comment, within 7 days, and does not restrict what it carries, so the link can simply arrive. The tap appears when the automation chooses to hold the link back, behind an opening DM or behind a gate. It is the creator's design, not a platform requirement, and it is the moment a redirect gets to record.

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.

How inDM does it

The same way, and we would rather describe it than let it sit behind a number. When an automation delivers a link, inDM swaps it for an address on its own redirect domain, records the request and the country it came from, forwards the person straight to your link, and attaches the tap to the contact who made it. No cookie is set, and the network address the request arrives with is used to work out the country and then discarded.

In inDM, link analytics is a Growth feature: the total, the map, and which of your contacts opened what. It is not included on the free plan.

The trade under "Where this stops" below applies to us exactly as it applies to anyone else running a redirect: the address in the message is ours, not yours.

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 the tap itself, it takes a redirect, and inDM runs one so you do not have to build it. If you want arrivals on your page attributed to a specific post, UTM parameters get you there with no redirect in the middle, and the two answer different questions. 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.

Arrivals are not orders: how to track sales from Instagram DMs shows how to tag each link and give each campaign its own discount code.

What Instagram gives you is the moment someone raised their hand. That turns out to be the number worth watching.