Free tool · UTM builder for Instagram DMs
Know which reelsent thevisit.
To track Instagram DM clicks in Google Analytics, add UTM tags to the link in the DM: utm_source=instagram, utm_medium=dm, a campaign for the reel and a content tag for the button. Paste your link below. Your link's own parameters and #fragment stay as they are. Free, no sign-up.
Updated
Instagram DM link tracking: UTM link builder
Paste the link.Copy it tagged.
One link per DM button. Everything runs in your browser; nothing you type is sent anywhere.
Link ready.
https://example.com/budget-template?ref=home&utm_source=instagram&utm_medium=dm&utm_campaign=budget-reel&utm_content=get-the-template#download
- NoteKept the link's own parameter, unchanged.
- NoteKept #download at the end, after the tags, where it belongs.
What the DM button carries in DMpop
Count link taps on: https://app.dmpop.com/r/…?r=…, which sends the tap straight on to the link above, unchanged. The ?r= part only counts each person once and is not passed on.
Count link taps off: the link above, exactly as it is.
UTM parameters for Instagram DM links
Four tags.That's all.
The definitions are paraphrased from Google Analytics' own help page, Collect campaign data with custom URLs.
| Tag | For a DM button | What Google says it's for |
|---|---|---|
| utm_source | The referrer: where the visit came from, like a site or a newsletter. | |
| utm_medium | dm (or social) | The marketing channel, like email or paid click. |
| utm_campaign | the reel or keyword, e.g. budget-reel | The campaign: a product, slogan or promo code. |
| utm_content | the button, e.g. get-the-template | Tells apart creatives or links in the same place, like two links in one email. |
The rules Google states
- Source, medium and campaign go together. Google says to always use all three in a tagged link. A missing one shows up as “(not set)” in your reports.
- Values are case sensitive. utm_source=instagram and utm_source=Instagram are two different sources. Google recommends lowercase and one naming style, which is what “Tidy the values” does.
- utm_term is for paid keywords. It's not needed for DMs, so the builder leaves it out. Your comment keyword fits better in utm_campaign.
Name campaigns so you can read them later
One campaign name per reel, like budget-reel-nov, or per keyword if the same keyword runs on several posts. utm_content then tells the buttons apart: with two buttons in one DM, you'll see which one people tapped on your site too.
How UTM links work with DMpop's click counting
Your tagsarrive intact.
Each DMpop campaign has a Count link taps switch, on by default. Checked in DMpop's code on 9 November 2026.
With Count link taps on
- The DM button carries DMpop's link, like
app.dmpop.com/r/abc123?r=…. The?r=token is different for each person, so one person tapping five times counts once. - They tap. DMpop records the tap against the campaign.
- DMpop redirects (an HTTP 302) to the link you saved in the campaign. The link goes out as you saved it, read as a standard web address: your UTM tags, your other parameters and your #fragment all arrive.
- Nothing is added or taken away. DMpop doesn't add its own parameters to your link, and the
?r=token stays on DMpop's link; it is not passed to your site.
With Count link taps off
The DM carries your link exactly as you pasted it, with no DMpop redirect, so the UTM link is what people see and tap. DMpop doesn't count taps for that campaign; Google Analytics still sees the visits on your site.
Things worth knowing
- Editing the link updates sent DMs when Count link taps is on, because the DM points at DMpop's link and DMpop forwards to the new address. Fixed a typo in a UTM tag? Older DMs pick it up.
- Deleting a campaign breaks its links in DMs already sent. Pause it instead if people may still tap old DMs.
- Two counts, two meanings. DMpop counts each person once per campaign when they tap. Google Analytics counts sessions, and only when your page loads its tag. They won't match, and that's normal.
Where to see it in Google Analytics
In GA4, open the Traffic acquisition report and set the table to Session source / medium; DM visits show as instagram / dm. Switch to Session campaign to compare reels. Which channel they fall under depends on Google's default channel rules: a medium of social is one of the values those rules file under Organic Social, while with dm the channel depends on whether the source matches Google's list of social sites.
When not to add UTM tags
Sometimes,leave it alone.
- Affiliate links whose programme forbids changes. Some programmes don't allow modified, shortened or redirected links. Read your programme's current terms. If redirects are the problem, turn off Count link taps too. More in affiliate links in Instagram DMs.
- Links to sites you don't run. Amazon, WhatsApp, Telegram, YouTube and Google Forms won't show your UTM tags to you. For those, DMpop's tap count per campaign is the number you get.
- Short links. Tag the full link, then shorten it, or the tags may never reach the page.
- Personal details. Never put a name, handle, phone number or email in a UTM value.
Sending people to a WhatsApp group or a PDF instead? See WhatsApp group links in DMs and sending a PDF in DMs.
Track Instagram DM clicks with DMpop
Tagged link?Put it in the DM.
DMpop sends the DM when someone comments your keyword. The Free plan includes 1,000 DMs a month.
- New campaign in DMpop. Pick the post, your next reel or every post, and add the keyword.
- Write the DM (the DM templates help) and paste the tagged link with the same button text you used here.
- Leave Count link taps on to see taps per campaign in DMpop as well as visits in Google Analytics, or turn it off if your link must go out untouched.
- Test it with a comment from a second account, tap the button, and check the Realtime report in Google Analytics.
Creating campaigns from code? The link goes in the link field of the DMpop API, and trackClicks is the Count link taps switch. Or ask ChatGPT or Claude through the DMpop MCP.
Questions
UTM links,answered.
What UTM parameters should I use for Instagram DM links?
utm_source=instagram, utm_medium=dm, utm_campaign set to the reel or keyword (like budget-reel), and utm_content set to the button (like get-the-template). Keep them lowercase; Google Analytics treats Instagram and instagram as different values.
Should utm_medium be dm or social?
dm keeps DM visits apart from your bio link and other Instagram traffic, which is usually the point. social is one of the medium values Google Analytics' default channel rules put under Organic Social. With dm, the channel depends on whether Google's list of social sources matches the source. Pick one and use it every time.
Does DMpop keep my UTM tags when Count link taps is on?
Yes. DMpop's redirect sends the tap to the link saved in the campaign, with its query string and #fragment. It doesn't add or remove parameters. The ?r= token on DMpop's own link is used to count each person once and isn't passed to your site.
Why don't DMpop's tap count and Google Analytics match?
They count different things. DMpop counts each person once per campaign when they tap. Google Analytics counts sessions, and only when your page loads its tag, which consent banners, blockers and slow connections can stop. Expect the numbers to differ.
Can I add UTM tags to an Amazon or Flipkart affiliate link?
Check your programme's rules first: some don't allow changing their links. And the tags would only show up in analytics you run, not in the shop's, so on a shop's own link they usually tell you nothing. Click counting per campaign in DMpop is the simpler way to see which reel gets the taps.
Can I put UTM tags on a short link like bit.ly?
Only if the shortener passes them on to the final page. It's safer to add the tags to the full link first, then shorten that if you need to.
Is it fine to put someone's Instagram handle in utm_content?
No. Don't put names, handles or other personal details in UTM values. Use names for the reel, keyword and button instead.
Free to start
Tag the link.Let the DM pop.
Connect Instagram, paste your tagged link into a campaign and post the reel. The Free plan includes 1,000 DMs a month, and paid plans start at ₹99.