Meta reports at least six kinds of click. Agency reports routinely show one. That single blended number is where a lot of wasted creative testing starts.
The six, and what each one counts
| Metric | Counts |
|---|---|
| Clicks (all) | Any click on the ad - the link, the like button, the profile name, the image expand, the comments |
| Unique clicks | The same, deduplicated by person |
| Link clicks | Only clicks on the link itself |
| Unique link clicks | Link clicks, deduplicated by person |
| Outbound clicks | Clicks that sent someone off Meta entirely |
| Inline link clicks | The API's name for the Link clicks column: link clicks counted against the impression itself |
| Landing page views | People who arrived and the page actually rendered |
Landing page views is technically not a click, which is exactly why it matters.
One clarification on that last click row, because the name misleads. "Inline" does not mean the click stayed inside Meta. It means the click is counted inline with the impression that produced it, rather than being counted later as an attributed action. The metric that isolates clicks staying inside Meta is not inline link clicks, it is link clicks minus outbound clicks.
Those names are the Ads Manager labels. Underneath, the Marketing API splits them across fields that behave differently: clicks and inline_link_clicks come back as plain integers, while outbound_clicks and unique_outbound_clicks come back as arrays of action objects keyed on the action type outbound_click, and landing page views arrives inside the actions array as landing_page_view. Meta's own action-type reference lists link_click, outbound_click and landing_page_view as three separate entries. Any dashboard that treats them as one number had to flatten three different shapes to do it, and flattening is where reporting tools quietly diverge from Ads Manager.
Why link clicks and outbound clicks never match
They measure different boundaries.
A link click is a click on the ad's destination, wherever that destination lives. If the destination is an Instant Experience, a lead form, a Messenger or WhatsApp thread, a Facebook event page or a shop, the click still counts as a link click, and the person never left Meta.
An outbound click is narrower. It only counts when the click sends the person to a property Meta does not own.
So on any campaign whose destination is partly inside Meta, link clicks will be the larger number by construction. That is not a discrepancy to investigate. It is the definition doing its job.
The practical consequence: the ratio between the two tells you how much of your click volume is actually leaving the platform. On a pure website-traffic campaign with a raw URL destination, link clicks and outbound clicks should land close together, and a large gap there is worth a look because it implies clicks are terminating somewhere you did not intend, such as an app-store redirect or a deep link that resolves inside the Facebook browser.
When outbound clicks come out higher than link clicks
This confuses people because it reads like a counting error. It is not.
An Instant Experience is one destination that can contain several outward links. Someone taps the ad once, which is one link click and zero outbound clicks because they are still inside Meta. Then, inside the Instant Experience, they tap a product button, come back, and tap another. Each of those is an outbound click. One link click has produced two outbound clicks.
The same shape appears with carousel ads and any placement where a single entry produces multiple exits. If you see outbound above link on an Instant Experience or carousel campaign, the metric is describing engaged browsing inside the unit rather than a counting fault.
The gap that tells you the most
The number worth putting on every report is link clicks minus landing page views.
Meta charges you for the click. It does not guarantee arrival. Between the two sits the page load, and people leave during it.
A small gap is expected. A large one is worth checking, because it means clicks are not arriving as page views.
Causes worth checking: a slow page on mobile data, a redirect chain the tracking added, a consent banner that blocks render, an interstitial, or a page that errors on a specific browser.
None of those are creative problems. If you only report blended clicks, the ad looks like it is performing and the campaign looks like it is failing, and the natural conclusion is to rewrite the hook. That is a month spent on the wrong thing.
Why landing page views can be lower than link clicks even on a fast page
Before you spend a week on page speed, check the measurement, because landing page views and link clicks are not measured by the same system.
A link click is counted by Meta at the moment of the tap. Meta owns both the ad and the click, so it cannot be missed.
A landing page view is not counted by Meta at all in the same sense. It is reported back to Meta by the Meta Pixel firing on your destination page. That means it inherits every failure mode of a browser tag:
- No pixel on the destination. Landing page views will read zero. That is not a 100 percent drop-off, it is no measurement. This happens whenever the pixel sits on the main domain and the campaign points at a separate funnel or booking subdomain, because the tag was installed against the site rather than against the destination.
- Consent gating. If the pixel is held behind a consent manager and the visitor has not accepted, the pixel does not fire. The visit happened. The metric did not record it.
- The visitor leaves before the tag loads. Page-speed drop-off is real, but so is a tag placed late in the body or loaded after a heavy hero image.
- Browser and extension blocking. Content blockers and tracking-prevention features stop the pixel independently of whether the page rendered.
So the gap between link clicks and landing page views is a combined measure of two things: people who genuinely did not arrive, and arrivals your tag could not see. Separate them before drawing conclusions. The quickest check is to compare Meta's landing page views against your own server logs or analytics for the same URL and date range. If your server saw the requests, the problem is the tag, not the page.
There is a second reason the two columns disagree, and it is structural rather than technical. Link clicks are a delivery metric, attributed to the moment of the click. A landing page view is an action, subject to the account's attribution setting, which by default is a 7-day click and 1-day view window and can be changed per campaign. Two numbers counted under two different accounting rules will not reconcile on a short reporting window even when nothing is broken. Widen the window and the gap narrows, because more of the attributed actions fall inside it.
Why "clicks (all)" flatters everything
"Clicks (all)" includes likes, profile taps, comment expands and image opens. An engaging creative that nobody acts on can post an excellent all-clicks CTR.
This is the number that makes a bad ad look fine in a client report. If a report says CTR and does not say which CTR, assume it is this one.
All-clicks CTR, link CTR and outbound CTR are three different fractions
"CTR" on a Meta report can mean at least four things, and they differ in both numerator and denominator.
| Label in Ads Manager | Numerator | Denominator |
|---|---|---|
| CTR (all) | Clicks (all) | Impressions |
| CTR (link click-through rate) | Link clicks | Impressions |
| Outbound CTR | Outbound clicks | Impressions |
| Unique CTR / unique outbound CTR | Unique clicks of that type | Reach |
The last row is the one that catches people out. The unique variants divide by reach, not impressions. Reach is always smaller than impressions on a campaign with any frequency above 1. The numerator moves too, though, because repeat clicks from one person collapse into a single unique click, so a unique CTR is usually but not necessarily higher than its non-unique twin. Both figures change, so work the ordering out on your own numbers rather than assuming it. Two dashboards showing 1.2 percent and 2.8 percent for "CTR" on the same ad can both be correct and neither is lying.
Pick one definition, label it in full on the report, and keep it constant across months. A client who sees CTR fall from 2.8 to 1.2 because someone changed which column the template pulls will not hear the explanation.
Outbound versus inline
Outbound clicks left Meta. Inline link clicks stayed inside it - an Instant Experience, a lead form, a shop.
For traffic and conversion campaigns pointing at your own site, outbound is the honest measure. For lead form campaigns, outbound will be near zero and that is correct, not a problem.
Reporting the wrong one for the campaign type produces a number that is either flattering or alarming for no real reason.
A short mapping, by destination:
- Raw website URL. Outbound clicks is the measure. Link clicks should track it closely.
- Instant Experience. Link clicks is entry into the unit. Outbound clicks is exit from the unit to your site. Report both, because the gap between them is the Instant Experience's own conversion rate.
- Lead form (instant form). Outbound clicks will be near zero for the whole flight. Report link clicks against form opens and completed leads instead.
- Click to Messenger or WhatsApp. Same as lead forms. Outbound is not the metric, conversations started is.
- App install. Clicks route to a store, so behaviour varies by placement and platform. Trust the install and app-event counts over either click column.
Why unique link clicks do not add up across days
Unique metrics are deduplicated per person, within the date range you asked for. That last clause is the trap.
Pull a 30-day total for unique link clicks and Meta deduplicates across the full 30 days: a person who clicked on four separate days counts once. Pull the same 30 days broken down by day and then sum the column yourself, and that person counts four times. The two numbers will not agree, and the daily-sum version will always be the larger one.
This matters for anyone warehousing daily ad data, because the daily pull is what you store and the monthly roll-up is what the client sees. Totals for non-unique metrics such as impressions, clicks, link clicks, outbound clicks and spend are additive and can safely be summed from daily rows. Unique metrics, reach and frequency are not. If you need a true monthly unique figure, request it from the API at the monthly grain rather than computing it from stored daily rows.
Link clicks vs outbound clicks in the Marketing API
If you are pulling this yourself rather than reading Ads Manager, the field names matter more than the labels.
| Ads Manager column | What to request |
|---|---|
| Clicks (all) | clicks |
| Unique clicks | unique_clicks |
| Link clicks | inline_link_clicks |
| Unique link clicks | unique_inline_link_clicks |
| Outbound clicks | outbound_clicks (array, action type outbound_click) |
| Unique outbound clicks | unique_outbound_clicks (array) |
| CTR (link click-through rate) | inline_link_click_ctr |
| Outbound CTR | outbound_clicks_ctr (array) |
| Landing page views | actions, action type landing_page_view |
Two things to know before you trust the output.
First, a link click appears in two places. There is the flat inline_link_clicks field, and there is a link_click entry inside the actions array. They are not guaranteed to be equal, because the flat field is a delivery metric tied to the impression and the actions entry is an attributed action subject to the attribution window. Building one report off the flat field and another off the actions array is enough on its own to produce two link-click figures for the same ad.
Second, the array-shaped fields need unpacking, and an ad with zero outbound clicks returns an absent key rather than a zero. Code that reads response["outbound_clicks"][0]["value"] without a default will either throw or silently drop the row. Dropped rows are worse than errors here, because the campaign total simply comes out low and nothing announces it.
Which click to optimise against, and which to only report on
Optimisation goal and reporting metric are separate decisions, and it is fine for them to differ.
Optimising for link clicks tells Meta to find people likely to tap. It needs no pixel and it fills the top of the funnel quickly, which makes it the cheap-looking option. It is also the option that will happily buy you taps from people who bounce, because a tap is all it was asked for.
Optimising for landing page views tells Meta to find people who both tap and wait for the page. It requires a working pixel on the destination. It bids into a narrower pool than link clicks, since every qualifying person had to do a second thing, so if your cost per unit goes up when you switch, that is the trade you chose: you are paying to exclude the people who never arrived.
Optimising for a conversion event is better still where you have the volume to support it. Where you do not, landing page views is the more honest intermediate goal than link clicks.
For reporting, the ordering is different. Report unique link clicks and outbound clicks as the demand signal, landing page views as the delivery check, and the conversion event as the outcome. Never report the metric you optimised against as though it were the outcome. An ad set optimised for link clicks will show good link clicks. That is the machine doing what it was told, not evidence the campaign worked.
Why Meta clicks never match Google Analytics sessions
This is the same question one layer out, and it has a different answer, so do not attribute it to the same causes.
Meta counts a click. Analytics counts a session, and a session is a different unit with its own rules:
- Two taps, one session. Someone who clicks the ad, leaves, and clicks again within the session timeout is two link clicks and one session.
- Consent and blocking hit analytics too, independently of whether the Meta Pixel fired. The two tools can disagree with each other and both disagree with your server.
- Lost UTMs. A redirect that drops the query string, a link shortener, or a destination that strips parameters turns paid traffic into direct or referral traffic. The sessions exist, they are just filed elsewhere.
- Referrer stripping in in-app browsers. Traffic arriving from the Facebook or Instagram in-app browser does not always present the attribution the analytics tool expects.
- Different clocks. Meta attributes a click to the day of the impression under the account's attribution window. Analytics files the session at the time it happened, in the property's own timezone.
The useful discipline is to stop expecting the numbers to match and start expecting the trend to match. If Meta's outbound clicks rise 30 percent week on week and analytics paid sessions are flat, that is a real signal worth chasing. If they are permanently 20 percent apart but move together, that is a measurement offset and chasing it is a waste of a week.
What to actually report
For a client-facing report on a traffic or conversion campaign:
- Unique link clicks and cost per unique link click - the real demand signal
- Landing page views and the gap to link clicks - the delivery check
- Outbound CTR rather than all-clicks CTR - the honest engagement rate
- Cost per outcome by outcome type, not a blend
Inflowave stores all six click types plus landing page views with their own cost-per figures, daily, so the gap is visible historically rather than only in whatever window the platform is showing today. That set is described in the 58-metric guide.
How to work a link clicks vs outbound clicks gap
An order of operations, cheapest check first, so you do not start with a creative rewrite.
- Confirm the destination type. If it is a lead form, Instant Experience, Messenger or WhatsApp, a low outbound number is expected and you are done. It is a ten-second check and it ends the investigation when it applies.
- Confirm which columns you are comparing. Unique against non-unique, or the flat field against the actions array, produces a gap with no cause behind it. Put both figures on the same basis before going further.
- Check the pixel fires on the exact destination URL. Not the homepage, the URL in the ad, including its parameters. Use the browser's network tab or Meta's pixel helper. If nothing fires, landing page views is not a measurement and the gap is meaningless until you fix the tag.
- Compare against your server or analytics for the same URL and date range. Server logs are the one source that does not depend on a tag executing. If the server saw the requests, you have a measurement problem. If it did not, you have a delivery problem.
- Follow the redirect chain by hand. Paste the ad's destination URL into a browser and watch the address bar. Every hop costs time and every hop is a chance for parameters to be dropped.
- Load it the way the visitor does. On a phone, on mobile data, in the Facebook in-app browser, with a cold cache. A page that is fast on desktop wifi tells you nothing about the population Meta is sending.
- Only now look at the creative. If people are arriving and the page is rendering, the click was real and the problem sits after the click.
Related
- Meta ads reporting for agencies: the 58 metrics
- Meta's three diagnostic rankings
- Why one blended CPA misleads
- Feature: Facebook & Instagram Ads - Every client's ad account in one view, with leads attributed back to the ad that produced them
- Feature: Analytics - Pipeline, conversion and revenue next to ad spend, per client
- Pricing - Plans built for agencies running multiple ad accounts
- Ad tracking and attribution software - knowing which ad produced the revenue.
- Meta Business Portfolio explained - how agency access actually works.
- Facebook ad account agency access - setup and permissions without the guesswork.
- Google Ads manager account (MCC) - the same job on the other platform.
- Automated ad rules - pausing a losing campaign without watching it.
- Video ad quartiles - where your creative actually loses people.
- Ad creative library for agencies - why it should not live inside Meta.
- Meta partnership ads - setup, permissions and pitfalls.
- What agencies charge for Facebook ads - pricing benchmarks.
- Moving off Meta Business Suite - and what you gain by doing it.

