Meta Ads · 8 min read
Why Your Meta Funnel Looks Healthy But Is Not
Cheap CPM. Low cost per ThruPlay. Thousands of video views. Your Meta dashboard looks great, and yet nobody is landing on your site, nobody is converting, and your spend keeps climbing. This is the most common and most expensive trap in paid social: top-line metrics that look healthy while the funnel underneath is broken.
The fix is not to stare harder at the summary numbers. It is to walk the funnel one stage at a time, from impressions to reach to video views to landing-page views to conversions, and find the exact stage where people stop moving. This guide shows you how to do that yourself, including the single most common hidden leak that makes a dead funnel look alive.
Surface metrics are not evidence the funnel works
A Meta campaign reports dozens of metrics, and most of them measure activity, not outcomes. Impressions, reach, video views, CPM, and cost per ThruPlay all tell you that Meta spent your money and showed your ad to someone. None of them tell you that the someone was a real prospect, or that they did anything afterward.
The trap is that these activity metrics are easy to make look great. The cheaper and lower-intent the placement, the better your CPM and cost per ThruPlay can look, precisely because the people watching are worth nothing. A funnel can post beautiful numbers at the top and still leak out completely before a single person reaches your landing page.
So the rule is simple: never trust a green summary on its own. Treat every healthy-looking top-line number as a question, not an answer, and verify it by checking what happened at the next stage down the funnel.
The signature leak: Advantage+ Placements and the Audience Network
Here is the leak that catches more operators than any other. When you create a Meta campaign, Advantage+ Placements (Meta's automatic placement setting) is on by default. It distributes your budget across Facebook, Instagram, Messenger, and the Audience Network, and it optimizes toward the cheapest impressions it can find. Cheap impressions are often the lowest-intent ones.
In practice this frequently means a large share of your budget flows to the Audience Network, and within it to rewarded video: ad slots inside mobile games where a user is shown your ad (often required to watch at least the first several seconds) to earn an in-game reward. Those incentivized views generate flattering surface stats (very cheap CPM, suspiciously low cost per ThruPlay, lots of ThruPlays) and almost zero real intent. No landing-page views, no add-to-carts, no conversions. In one real account, the great majority of spend had quietly drained into Audience Network rewarded video, with most of it concentrated in a single country that was not even the target market, before anyone noticed. The dashboard looked fine the whole time.
The lesson is that a placement leak does not announce itself. It hides behind exactly the metrics you would normally call healthy. You have to go looking for it.
How to detect a placement or geo leak
You find this leak with two breakdowns, both of which the Meta Ads reporting and the Marketing API expose directly. Pull a performance breakdown by placement, using the dimensions publisher_platform and platform_position together, over a meaningful window (since launch is ideal). Then pull a second breakdown by country.
On the placement breakdown, look at where the spend actually went. Any spend on publisher_platform = audience_network should usually be zero unless you deliberately chose it. Watch the platform_position values too: rewarded_video is the classic red flag, and surfaces like in-stream video, search, right-hand column, and marketplace are often low-intent for a feed or reels creative. On the country breakdown, look for one country taking far more or far less than its fair share. If a market you do not sell to is eating the budget, that is a delivery problem, not a performance result.
This placement and geo audit is the single highest-value check you can run, and it takes a couple of minutes. If you do nothing else from this guide, do this one.
How to fix and keep it fixed
The fix is to stop letting Meta choose. Switch the ad set from Advantage+ Placements to manual placements and exclude the Audience Network. Most operators also exclude Messenger, in-stream video, search, the right-hand column, and marketplace, which keeps the budget on the surfaces that actually carry intent for most direct-response campaigns: Facebook and Instagram feed, reels, and stories. Excluding the Audience Network at the ad account level adds a second layer of protection, and when you exclude a placement at the ad set level, make sure any limited-delivery option for that placement is also turned off so no spend leaks through.
There is one important caveat. Meta has been known to soft-revert placement choices. If you later patch an ad set's targeting through the API and omit the publisher_platforms field, Advantage+ Placements can silently switch back on and the leak returns. So make placement verification a habit: after any edit to an ad set, re-pull the placement breakdown and confirm the Audience Network is still at zero. Verify after every change, not just once.
Walk the funnel stage by stage to find the leak
Once placements are clean, diagnose the rest of the funnel by following the pipeline in order: impressions to reach to 3-second and 25/50/75/95 percent video views to landing-page views to add-to-cart or lead to purchase or subscribe. A leak at any stage starves every stage after it, so the trick is to find the first stage where the drop-off is abnormal, because that is your root cause. Everything downstream is just the symptom.
Each stage points at a specific failure. People dropping sharply between the 3-second view and the 25 percent view means a weak hook: the first few seconds are not earning attention, and that is a creative problem. Clicks or views that do not turn into landing-page views means a broken or slow landing page, a broken link, or a tracking gap. Landing-page views that do not become add-to-carts or leads usually means a wrong-audience or offer-message mismatch. And conversions that fire on your site but never show up in Meta means a tracking break (pixel or Conversions API), not a performance problem.
Use benchmarks as rough orientation, never as universal truth, because they vary a lot by niche, geo, objective, and season. As loose context for many feed and reels campaigns: CPM often lands somewhere in the low tens of dollars; cost per ThruPlay is typically a few cents for genuine viewers, and a sub-cent figure can signal a rewarded-video leak; a landing-page-view rate above roughly 50 percent tends to be healthy while below roughly 25 percent suggests a broken landing or wrong audience; and frequency climbing past about 4 per week on feed or reels can risk ad fatigue. If CPM trends up more than about 20 percent week over week or frequency climbs past roughly 4, the creative may be tiring, so refresh the hook. Budget tweaks do not fix a creative problem.
Run a short daily check so leaks never compound
Most funnel disasters are slow leaks that ran for weeks because nobody looked. A short daily check, about seven minutes, catches them while they are cheap. Run it in this order. (0) Funnel integrity: confirm the audience and creative that are actually live match what you think is running, because a renamed audience or a swapped creative can silently disconnect your funnel. (1) Account health: scan for disapprovals and delivery issues. (2) Yesterday's performance against your targets. (2b) The placement and geo audit from above, which is the most important step. (3) Audience growth, so your retargeting pools are actually filling. (4) Downstream signals: site traffic, signups, and whether your conversion events are firing. (5) A short written status note so you can spot drift over time.
One related detail worth getting right, since it ties the funnel together: video-view custom audiences (the warm pools you build from viewers) are created off specific watch milestones, typically a 3-second watch event, the 25, 50, 75, and 95 percent marks, and ThruPlay. Wiring these audiences off the wrong milestone (for example building your deepest-watch pool off 25 percent) is a quiet way to starve your retargeting stage, so confirm in your ad account exactly which milestone you are targeting before you rely on it.
Doing this by hand every day is the honest, reliable way to learn your account, and it works. If you would rather not, an approve-first agent like AdsBud runs exactly this loop for you around the clock: it reads the account on a daily check, scores every campaign against today's number, your 7-day average, and your since-launch baseline, flags leaks like the Audience Network drain the moment they appear, and proposes the fix for your one-click approval. It is read-only by default with one-click rollback, and you talk to it in plain language. Whether you run the check yourself or hand it off, the principle is the same: never trust a green summary, always verify the next stage down.
Frequently asked
My CPM and cost per ThruPlay look great. Why am I getting no conversions?
Cheap CPM and very low cost per ThruPlay are often a warning sign, not a win. They usually mean your budget is reaching low-intent placements, most commonly the Audience Network and rewarded-video slots in mobile games where people are incentivized to watch. Pull a breakdown by publisher_platform and platform_position. If spend is sitting on audience_network or rewarded_video, that is your leak. Move to manual placements and exclude the Audience Network, then watch whether landing-page views and conversions recover.
How do I tell a weak hook apart from a broken landing page?
Look at where people drop in the pipeline. A weak hook shows up between the 3-second video view and the 25 percent video view: lots of people start watching and very few keep going, which is a creative problem you fix by changing the first few seconds. A broken landing page shows up later: people click or view but those clicks do not turn into landing-page views, which points to a broken link, a slow page, or a tracking gap. Find the first stage with an abnormal drop and fix that stage.
I excluded the Audience Network already. Why did it come back?
Meta can silently re-enable Advantage+ Placements if an ad set edit omits the placement settings. If you patch targeting through the API without including the publisher_platforms field, automatic placements can switch back on and the Audience Network leak returns. Always re-check your placement breakdown after any edit to an ad set, not just when you first set it up. Verifying after every change is the only reliable way to keep the fix in place.
Are the benchmark numbers in this guide reliable for my account?
Treat them as rough orientation, not rules. Real ranges vary a lot by niche, geo, campaign objective, and season, so the right benchmark for your account is your own account's history. Use the numbers here to spot something obviously wrong (sub-cent cost per ThruPlay, a landing-page-view rate under about 25 percent, frequency past about 4 per week), then compare each metric against your own 7-day and since-launch baselines to judge what healthy looks like for you.
See what AdsBud catches on your account
AdsBud runs this check for you around the clock, flags the leaks, and proposes each fix for your one-click approval. Read-only by default, cancel any time.