How to Track Link Clicks from Instagram, WhatsApp and Telegram

Most social apps hide where their clicks come from, and their preview bots inflate your numbers. Here is how to see through both.

MiniSnip Team8 min read
In this article
  1. Problem 1: social apps hide where clicks come from
  2. How MiniSnip works out the source
  3. Close the gap with a source tag
  4. Problem 2: preview bots inflate your clicks
  5. How MiniSnip filters bots
  6. Reading your dashboard
  7. A setup that works for every campaign

You post a link on Instagram, send it to a WhatsApp broadcast list and drop it in your Telegram channel. The next morning your analytics say most of the clicks were "direct", and the total looks suspiciously high for a quiet day.

Both problems have the same root cause: social and messaging apps do not behave like normal web browsers. Once you understand how, the fix is straightforward.

Problem 1: social apps hide where clicks come from

When you click a link on a normal website, your browser tells the next site where you came from. This is the referrer. Analytics tools rely on it.

Apps are different. Most of them open links inside their own in-app browser, or hand the link to your phone's browser without saying who sent it. The result is a click with no referrer, which most tools file under "direct".

Here is how the big apps usually behave. Details change between app versions, so treat this as a guide rather than a rule.

App Opens links in Sends a referrer? Other clues a shortener can use
Instagram Its own in-app browser Sometimes, via l.instagram.com The in-app browser names itself "Instagram"
Facebook Its own in-app browser Sometimes, via l.facebook.com In-app browser markers (FBAN, FBAV) and the fbclid parameter
Messenger Its own in-app browser Rarely In-app browser marker for Messenger
WhatsApp Your phone's default browser Rarely; Android sometimes sends android-app://com.whatsapp Very few
Telegram Its own in-app browser on most phones Rarely Telegram's Android browser names itself; iPhone usually does not
LinkedIn, X, TikTok, Snapchat Their own in-app browsers Sometimes In-app browser markers

So a tool that only reads the referrer will lose most of this traffic. A smarter tool checks several signals in order.

How MiniSnip works out the source

For every click, MiniSnip looks at these signals, strongest first:

  1. A tag on the link you shared, such as ?src=wa. You know where you posted it, so this always wins.
  2. The referrer, including link wrappers like l.facebook.com and Android app referrers like android-app://com.whatsapp.
  3. The in-app browser. Facebook, Messenger, Instagram, Threads, Telegram, LinkedIn, X, TikTok, Snapchat, Pinterest and many others identify themselves in the browser's user agent.
  4. Platform click IDs that apps and ad networks append, such as fbclid (Facebook), gclid (Google Ads) and ttclid (TikTok).
  5. Only when none of these exist is the click marked Direct.

This recovers most social traffic automatically. The one gap that remains is apps that reveal nothing at all, which is mostly WhatsApp, and Telegram on iPhone.

Close the gap with a source tag

For apps that stay silent, tell the link where you shared it. Add ?src= and a short name to the end:

Where you share Link to post
WhatsApp go.yourbrand.com/offer?src=wa
Telegram go.yourbrand.com/offer?src=tg
Instagram go.yourbrand.com/offer?src=ig
Email go.yourbrand.com/offer?src=email
SMS go.yourbrand.com/offer?src=sms
QR code on print go.yourbrand.com/offer?src=qr

The tag does not change where the link goes and does not show up on your website. It only labels the click in your MiniSnip dashboard. You can also use any name you like, such as ?src=diwali_poster.

If you also want these sources in Google Analytics, add UTM parameters to the destination as well. The two work side by side.

Problem 2: preview bots inflate your clicks

The second problem is the opposite of the first. When you paste a link into WhatsApp, Telegram, Facebook, LinkedIn, Slack or iMessage, the app immediately fetches the page to build a preview card with a title and image. Every one of those fetches looks like a click.

Share one link in five WhatsApp groups and you may see several "clicks" before a single person has tapped it. Some apps fetch again from different servers. Email security scanners do the same with links in newsletters.

Counting these as visitors makes every campaign look better than it is, and makes it impossible to compare channels fairly.

How MiniSnip filters bots

MiniSnip checks every click before counting it and identifies more than 140 bots by name, including the preview crawlers for Facebook, Telegram, WhatsApp, X, LinkedIn, Slack, Discord and iMessage, search engines, AI crawlers, SEO tools, uptime monitors and email security scanners. It also catches:

  • Requests from the server networks that Meta, Telegram and Google use for their crawlers, even when they pretend to be a normal browser.
  • Traffic from cloud and hosting providers, which real people rarely browse from.
  • Scripts that claim to be a browser but do not behave like one, link checkers and browser prefetches.

Bot visits are still logged, so you can see which apps fetched your link, but they are never added to your click count.

Reading your dashboard

On each link's page in MiniSnip you will find:

  • Human clicks, the number that matters, with bots excluded.
  • Sources, where real visitors came from: Instagram, WhatsApp, Telegram, Google, Direct and so on.
  • Bots, which crawlers fetched the link and how often. A burst of WhatsApp and Telegram bot hits right after you post is normal: it means the previews were generated.
  • Recent clicks, a live list with each visitor's location, device, browser or app, and source.

A setup that works for every campaign

  1. Create one short link per campaign, on your own domain if you can.
  2. When you share it on WhatsApp, Telegram, SMS or print, add the matching ?src= tag.
  3. On Instagram and Facebook you can share the plain link: the in-app browser identifies itself.
  4. Check the Sources chart after 24 hours to see which channel drove real visitors.
  5. Ignore the Bots chart for performance; use it to confirm previews worked.

That is all it takes to replace "direct" with an answer. Start with the free plan: source detection and bot filtering are included on every plan.

Frequently asked questions

Why does Google Analytics show my Instagram traffic as direct?

Instagram often opens links in its own in-app browser without passing a referrer. Add UTM parameters to the destination for Google Analytics, and use a shortener that recognises the Instagram in-app browser for click counts.

Can I see who exactly clicked my link?

No, and you should not be able to. MiniSnip shows aggregated, anonymous data such as country, city, device, browser and source. IP addresses are stored only as one-way hashes for counting unique visitors.

Why do I see clicks before anyone has opened my link?

Messaging apps fetch a link to build its preview the moment you paste it. MiniSnip identifies these preview bots and keeps them out of your click count.

Does adding ?src= to a link change where it goes?

No. The tag only labels the click in MiniSnip. The visitor is redirected to the same destination.