Are Your Instagram and Facebook Clicks Real? How to Check Them Yourself

Instagram says one number, Ads Manager another, your analytics a third. Here is what each one counts, and how to tell real people from Meta's own servers.

MiniSnip Team12 min read
In this article
  1. Five numbers, five different moments
  2. The four kinds of "Facebook" and "Instagram" clicks
  3. The hidden codes in every visit
  4. The fbclid trap
  5. Why Meta visits your page whenever you touch an ad
  6. A 15-minute check of your Meta traffic
  7. What the gaps tell you
  8. Signs worth a closer look
  9. Make the numbers line up better
  10. How MiniSnip checks Meta traffic

You run an Instagram story with a link sticker and a small Facebook ad pointing to the same page. A week later you open your reports. Instagram says one number of link taps. Ads Manager says a bigger number of link clicks. Your link shortener says something in between, and your website analytics shows the smallest number of all.

It is tempting to decide that one of them is lying. Usually none of them is. Each one counts a different moment, and some of the "Facebook" and "Instagram" visits in your reports aren't people at all.

We built a check for exactly this into MiniSnip, because our own users kept asking about it. This guide explains what we learned while building it: what each number really counts, the four kinds of Meta clicks, and the small codes in every visit that tell you which kind you are looking at.

Five numbers, five different moments

When someone taps your link on Instagram or Facebook, a chain of things happens. Each report counts a different link in that chain, so the numbers naturally get smaller as you go down the list.

Report What it counts When it is counted
Ads Manager: link clicks Taps on the link in your ad The moment of the tap, inside the app
Ads Manager: outbound clicks Taps that lead off Facebook or Instagram The moment of the tap
Instagram: link taps Taps on your bio link or story link sticker The moment of the tap, inside the app
Your short link Visits that actually reached the link When the app's browser asks for the page
Ads Manager: landing page views Visits where your page finished loading Only if your Meta Pixel is on the page and loads
Website analytics Visits where your analytics script ran Only if the page loaded and the script was allowed to run

Between the tap and the page there are plenty of ways to lose a visit:

  • The person taps back. In-app browsers open over the post. A quick swipe closes them before the page has loaded.
  • The page is slow. Instagram's and Facebook's in-app browsers start fresh, without your site already cached, so the first load is often slower than in Chrome or Safari.
  • Accidental taps. Ads take up a lot of the screen, and some taps are simply thumbs scrolling past.
  • Blocked scripts. Consent banners, ad blockers and privacy settings stop analytics scripts from running.

So a gap between Ads Manager and your website analytics is normal. What matters is whether the gap is steady, and whether the visits you do get are people. That second question is the interesting one.

The four kinds of "Facebook" and "Instagram" clicks

When a tool says a visit came from Facebook or Instagram, it can mean four very different things.

Four cards showing the four kinds of Meta clicks: Meta's servers, people in the app, people on the website, and visits with only a tag.
The four kinds of visits that tools label as Facebook or Instagram, and how each one can be recognised.

1. Meta's servers. Facebook's systems open your link every time it is posted, shared, put in an ad, edited or checked for safety. They do it to build the preview and to review ads. These visits come from Meta's own data centers and carry Meta's crawler names. They are never people.

2. People in the app. Someone tapped your link inside Facebook, Instagram, Messenger or Threads, and it opened in that app's built-in browser. The app writes its own name into the visit, so this is the strongest proof you can get that a real person came from Meta.

3. People on the website. Someone tapped your link on facebook.com or instagram.com in a normal browser, often on a computer. Meta sends these visits through its own redirect page first, and that leaves a trace.

4. Visits with only a tag. The visit carries a Facebook click ID or a tag you added yourself, but nothing about the browser proves it came from a Meta app or website. These are usually real people, but the Facebook label isn't proven. More on this kind below, because it causes the most confusion.

A report that adds all four together, especially one that counts the first kind, will always look better than reality.

The hidden codes in every visit

Every visit carries two small pieces of text that most people never look at: the user agent (the browser describing itself) and the referrer (where the visit came from). Meta's apps leave clear marks in both. Here is a cheat sheet.

What you see Where What it means
FBAN, FBAV, FBIOS, FB_IAB User agent Facebook's in-app browser on iPhone or Android
FB4A User agent Facebook for Android
FBAN/MessengerForiOS, Orca-Android User agent Messenger's in-app browser
Instagram 3xx.x.x.x User agent Instagram's in-app browser; the number is the app version
Barcelona User agent Threads, which still uses its internal code name
android-app://com.facebook.katana Referrer The Facebook app on Android
android-app://com.facebook.orca Referrer Messenger on Android
android-app://com.instagram.android Referrer The Instagram app on Android
android-app://com.instagram.barcelona Referrer Threads on Android
com.facebook.lite, com.instagram.lite Referrer The Lite versions of the apps
l.facebook.com, lm.facebook.com, l.instagram.com Referrer Meta's redirect page, used when someone taps a link on the website
fbclid=... The address itself Meta added a click ID; see the next section
facebookexternalhit, facebookcatalog, meta-externalagent, meta-externalfetcher User agent Meta's servers, not people
Address in Meta's network, or a name ending in fbsv.net or tfbnw.net The visitor's address Meta's servers, not people

A few of these are worth explaining.

"Barcelona" is Threads. It was the project's code name inside Meta, and it still appears in the app's browser. If a tool doesn't know this, Threads visits get lumped in with Instagram or labelled as unknown.

The Android package names are reliable. On Android, apps often pass along their package name as the referrer. A visit whose referrer is com.instagram.android was opened from the Instagram app, even if the browser itself doesn't say so.

The redirect page means a website visit. When someone taps an outside link on facebook.com or instagram.com, Meta sends them through l.facebook.com or l.instagram.com first. If you see that referrer without any app code in the user agent, the person was in a normal browser, often on a computer.

Meta's server names are honest. facebookexternalhit builds previews, facebookcatalog reads product catalogs, meta-externalagent crawls the web for Meta's AI training and indexing, and meta-externalfetcher fetches single links when a person asks a Meta product, such as its AI assistant, to look at them. None of them is a person tapping your link.

The fbclid trap

When someone taps an outside link on Facebook or Instagram, Meta often adds a click ID to the end of the address: ?fbclid= followed by a long code. Many tools treat any visit with an fbclid as Facebook traffic. That shortcut is wrong more often than you would think.

Here is why. The click ID stays in the address bar. If that person copies the address and pastes it into WhatsApp, an email or a forum, everyone who opens it from there brings the same fbclid along. They arrived from WhatsApp, but tools that only look at the click ID count them as Facebook.

The same thing happens with tags you add yourself, like ?utm_source=instagram or MiniSnip's ?src=instagram. A tag records where you meant to share the link. It can't know where the link travelled after that.

This is why MiniSnip shows "People with only a Facebook tag or click ID" as its own line. These are real people, and we count them as clicks. We simply don't claim they came from Facebook when nothing about their browser says so. A large tagged share tells you your link is being passed around outside Meta, which is useful to know in its own right.

Why Meta visits your page whenever you touch an ad

Meta's servers visit your landing page far more often than most advertisers expect:

  • When you paste the link into a post or ad, to build the preview.
  • During ad review, before the ad starts running, to check the page follows the advertising rules.
  • When you edit an ad or its preview is refreshed.
  • When a product catalog is read, if you use one.
  • From time to time afterwards, to keep previews up to date.

A tool that counts these visits shows clicks before your ad has spent anything at all. That is the easiest sign to check: any click that arrives before your ad started delivering is not a person. Look at the time of your first clicks and compare it with the time the ad went live.

Meta's servers are easy to recognise once you know what to look for. They use the names in the table above, they come from Meta's own network, and their addresses have names ending in fbsv.net or tfbnw.net. MiniSnip lists these visits as "Facebook servers (previews, ad and safety checks)" and never counts them.

A 15-minute check of your Meta traffic

You can check your own numbers with nothing more than a few short links and a week of patience.

  1. Give every placement its own short link. One for your Instagram bio, one for each story, one for each ad, one for Facebook posts, one for DMs. Name them clearly, like /bio, /story-sale or /ad-video-1. Without this step, nothing below works.
  2. Let them run for a week. A day is too short to see patterns.
  3. Look at the split for each link. In MiniSnip, the "Facebook & Instagram check" card on each link shows how many visits were people in the app, people on the website, people with only a tag, and Meta's servers.
  4. Compare with Meta's number for the same placement. Put Instagram's link taps next to your "people in the app" for the bio link. Put Ads Manager's link clicks next to the same number for the ad link.
  5. Read the gaps using the next section.
  6. Look at a few individual visits. The live feed shows the browser, device and time of each visit. Ten minutes of reading raw visits teaches you more than any summary.
  7. For ads, add landing page views. If your Meta Pixel is set up, compare link clicks, your short link's people and landing page views side by side.

What the gaps tell you

Meta's number is much higher than your people count. Most often people are tapping and leaving before the page loads, or tapping by accident. Check how fast your page loads inside Instagram. If one placement has a much bigger gap than the others, look at that placement first.

Your short link counts more than Meta does. The link is being shared beyond Meta: copied, forwarded, screenshotted. Check the "only a tag" line. Or your previous tool was counting Meta's servers, and you are now seeing the difference.

Lots of "only a tag" and very few "in the app". The link with Meta's click ID is travelling. That is fine for a link people like to share. It is a warning sign if you paid for "Instagram traffic" from a third party, because real Instagram visits nearly always carry the Instagram app's mark.

Clicks before the ad went live. Meta's ad review, as explained above. Not people.

Signs worth a closer look

None of these proves on its own that traffic is fake, but each one deserves a look:

  • Visits labelled Instagram or Facebook with no app code, no Meta redirect page and no Android package name.
  • Many visits from the same network within a few minutes.
  • Visits from cloud servers such as Amazon, Google Cloud or Azure, which ordinary people rarely browse from.
  • The same visitor coming back again and again in a short time.
  • Clicks spread with suspiciously even timing, for example one every thirty seconds all night.
  • A browser that says it is Chrome but doesn't send the details every real Chrome sends.

MiniSnip catches most of these automatically and moves them to the bots list with a reason. The ones it keeps as people are there because nothing about them looked automated.

Make the numbers line up better

Make your page fast inside the apps. In-app browsers start without your site cached, so a page that feels quick in Chrome can feel slow inside Instagram. Fewer heavy images and fewer scripts mean fewer people giving up before it loads.

Remember the in-app browser has its own cookies. Instagram's and Facebook's browsers don't share logins with Safari or Chrome. A customer who is signed in on your site in Chrome is signed out inside Instagram, and their cart may look empty. Design your page so the first step works for a signed-out visitor.

Set up your Meta Pixel if you run ads, so you can see landing page views next to link clicks. That one comparison explains most of the gap.

Don't copy links with fbclid into your own posts. If you grab a link from your browser after tapping it on Facebook, delete everything from ?fbclid= onwards before sharing it elsewhere, or you muddy your own reports.

Keep one link per placement for good. When you change a story or an ad, make a new short link rather than reusing the old one. Old and new numbers stay separate, and comparisons stay fair.

How MiniSnip checks Meta traffic

Every visit to a MiniSnip link is checked for the codes in the cheat sheet above. On each link, and across your whole account, the "Facebook & Instagram check" card splits Meta traffic into the four kinds: people in the app, people on the website, people with only a tag or click ID, and Facebook's servers. The first three are counted as clicks. The last one is listed, so you can see it, but never counted.

If you want to know what else opens your links before people do, including WhatsApp's and iMessage's previews and email scanners, read who opens your link before any person does.

Frequently asked questions

Why are my Facebook ad link clicks higher than my website visits?

Ads Manager counts the tap inside the app, while your website only counts visits where the page loaded and your analytics ran. People who tap by accident, tap back quickly, or block analytics scripts make up the difference. Compare link clicks with landing page views to see how big that gap is.

What is facebookexternalhit?

It is the name Facebook's servers use when they open your link to build a preview, review an ad or check that a page is safe. It is never a person. iMessage also uses this name, as part of a longer text, when it builds previews on an Apple device.

What does fbclid mean in my links?

It is a click ID that Meta adds when someone taps an outside link on Facebook or Instagram. It stays in the address, so it can be copied and shared elsewhere. A visit with an fbclid was clicked on Meta at some point, but not necessarily this time.

How can I tell if someone opened my link in the Instagram app?

The Instagram app's browser adds "Instagram" and its version number to its user agent, and on Android the referrer is often com.instagram.android. A link tool that reads these, like MiniSnip, can show Instagram app visits separately from everything else.

Why do I get clicks before my ad starts running?

Meta reviews your landing page before an ad is approved, and fetches it again when you edit the ad. Those visits come from Meta's servers. Any click that arrives before the ad started delivering is one of these checks, not a person.