Meta Ads Reporting for Agencies: The 58 Metrics That Actually Matter
Most agency reporting on Meta ads collapses into five numbers: spend, impressions, clicks, CTR and cost per lead. Those five are enough to build a slide. They are not enough to answer the question a client actually asks, which is some version of "it worked in April, why has it stopped working now?"
Answering that requires knowing which part of the ad stopped working. A blended click number cannot tell you. Neither can a single cost-per-acquisition figure averaged across events that have nothing in common.
Inflowave stores 58 distinct metric fields for every campaign, ad set and ad, every day, and has done since March 2023. This guide explains what is in that set, why each group exists, and which question each one answers.
The five numbers everyone reports, and what they hide
Spend, impressions, clicks, CTR and CPL are all real. The problem is that four of the five are aggregates that average away the thing you need to see.
"Clicks" is the worst offender. Meta reports at least six different kinds of click, and they mean different things. An ad can have excellent clicks and terrible landing page views, which is not a creative problem at all - it is a page speed or redirect problem. Report the blend and you will spend a month rewriting hooks that were working.
"Cost per acquisition" is the second worst. If your account runs lead forms, purchases and registrations, a single blended CPA is an average across three events of wildly different value. It moves when the mix moves, which looks like performance change and is not.
Group one: six kinds of click
Meta distinguishes these, and so should your reporting:
| Metric | What it counts |
|---|---|
| Clicks | Every click anywhere on the ad, including likes and profile taps |
| Unique clicks | The same, deduplicated by person |
| Link clicks | Clicks on the actual link |
| Unique link clicks | Link clicks deduplicated by person |
| Outbound clicks | Clicks that took someone off Meta entirely |
| Inline link clicks | Link clicks within the Meta experience |
| Landing page views | People who actually arrived and the page rendered |
Each carries its own cost-per figure in the same row.
The gap between link clicks and landing page views is the single most useful number in this group and almost nobody reports it. A large gap means people clicked and never arrived. That is a landing page problem - slow load, a redirect chain, a broken mobile view - and no amount of creative testing fixes it.
Group two: the video funnel
For video creative, Inflowave stores plays, thru-plays and completion at 25, 50, 75, 95 and 100 percent, plus average watch time.
This turns "the video underperformed" into a diagnosis:
- Heavy drop before 25% - the hook does not work. Nothing after it matters.
- Holds to 25, dies by 50 - the hook works and the middle does not deliver on it.
- Holds to 75, dies before 100 - the content works and the offer or call to action does not.
Those are three different fixes. A view count cannot distinguish them, which is why so much creative iteration is guesswork.
Group three: Meta's own diagnostics
Meta publishes three rankings per ad, comparing it to ads competing for the same audience: quality ranking, engagement rate ranking and conversion rate ranking.
Most tools read these once and discard them. Stored per ad per day, they become the fastest way to diagnose a rising CPM:
- Quality ranking falling - the creative is the problem
- Engagement rate ranking falling - the audience is wrong for the creative
- Conversion rate ranking falling - the creative and audience are fine and the landing page or offer is failing
Without these you are guessing which of the three to fix, and each guess costs a test cycle.
Group four: outcomes, priced separately
Leads, purchases, registrations and submitted applications are stored as separate outcome types, each with its own cost-per-outcome. Conversion value and purchase ROAS sit alongside them.
One blended CPA across those four is arithmetic, not insight. A month where lead volume rose and purchases fell can show a flat CPA while the account gets materially worse.
The field nobody thinks about: attribution setting
Every row records the attribution setting it was measured under.
This matters the first time someone changes an attribution window. Without that field, every historical number silently becomes incomparable and nobody notices for a quarter. With it, you can tell the difference between performance changing and measurement changing.
Retention, and why it is the point
The metric set is stored daily and retained. When a client asks in September why the creative that worked in April stopped working, the answer requires April's data at the same grain as September's.
Platform reporting windows are not built for that question. Meta's interface is built for managing live campaigns, and it is very good at that. It is not built to answer questions about last year.
What this does not do
This is reporting and management, not media buying. There is no bid management and no automated optimisation beyond the ad rules that exist. Meta's own tools are better at everything that happens inside Meta. The useful thing a platform like this adds is joining spend to what happened afterwards in the CRM, and keeping the record long enough to be worth asking questions of.
Where to go deeper
- The six click types, and the gap that matters
- Reading video quartiles to find where creative dies
- Meta's three diagnostic rankings, explained
- Why a single blended CPA misleads
- Automated rules that ask permission and undo
- Why your creative library should not live in Meta
- Inflowave vs GoHighLevel for ad reporting
See the Meta ads feature page for how this works in the product, and client account access for agencies for getting the ad account permissions in the first place.

