Preset with the right source and medium for Instagram. Change one field per post and your reports stay readable.
Start from a channel
Where the traffic comes from
Channel type - analytics groups by this
Which campaign this link belongs to
Paid keyword, usually filled in by the ad platform
Which creative or placement was clicked
Non-standard, supported for teams already using it
Your tagged URL
Enter a destination URL to see the result
Generated in your browser - the URL is never uploaded.
Build a link above and its QR code appears here.
Logo in the centre
Putting your logo inside the code is a paid Revolink feature.
Your presets
No presets yet. Fill in the fields above and save the combination you keep retyping.
These presets live in this browser only
They survive a refresh, but they do not follow you to another device and your teammates cannot see them. A free Revolink account stores three UTM templates on the server - unlimited on paid plans.
Save presets to an accountThis URL is long, and it only tells you where clicks came from
Shorten it with Revolink and you also get click counts, geography, device breakdown - and the UTMs survive the redirect.
Most of the platform is deliberately a dead end for links. That constraint is what makes tagging worth the effort - the few places a link can live are carrying everything.
The profile link is a single slot shared by everything you are currently promoting. Without utm_content distinguishing them, a launch post, a story from last week and the pinned highlight all report as one undifferentiated stream of traffic.
A URL typed into a caption is plain text - people have to retype it. That is why bio links and story stickers carry almost all of Instagram's outbound traffic, and why tagging those two placements separately is worth doing.
They behave nothing alike: a story is live for 24 hours and drives a sharp spike, the bio accumulates slowly and forever. Same source, same medium, different utm_content - otherwise you cannot tell a good story from a good profile.
An organic post is utm_medium=social. A promoted post or a campaign from Ads Manager is paid-social. Putting both under social merges money you spent with attention you earned, which makes the report useless for deciding what to fund.
| Placement | utm_medium | utm_content |
|---|---|---|
| Bio link | social | bio-link |
| Story link sticker | social | stories |
| Promoted post | paid-social | post-boost |
| Ads Manager campaign | paid-social | creative name |
Tagging other channels too? The full UTM builder covers every one, with presets and bulk mode.
utm_source=instagram for everything that comes from the platform, then utm_medium=social for organic posts, stories and the bio link, and utm_medium=paid-social for anything you paid to distribute. Keep the source lowercase and identical everywhere - Instagram and instagram would split into two sources.
Change utm_content, not the source, each time you update the bio link, and use a value that names the post or the week - bio-launch-week, bio-march. The rest of the parameters stay the same, so the traffic stays grouped under one campaign while you can still see which update pulled.
Yes. The link sticker accepts any URL, including one with parameters, and they are carried through when someone taps it. A shortened link is usually easier to manage there, since you never see the full URL on screen anyway.
Almost always because the link had no UTM parameters at all. It can also happen when a link is retyped from a caption rather than tapped, since that visit has no referrer of any kind for analytics to work with.
UTM builder, checker, QR codes and campaign names - no account.
Paste a link and see what will misreport before you publish.
You cannot predict which video wins - you can measure it.
Tag Meta campaigns without breaking the macros.
Stop sending everyone to the same page. Route by location, device, and time - start free, no credit card required.
Start for Free - No Card RequiredFree forever Β· No credit card Β· Cancel anytime
Already have links? Import them