| Check | What it looks like | Where to look |
|---|---|---|
| 1. Placement | Cheap clicks, almost no time on site, most delivery in Reels, Stories or Audience Network | Ads Manager, Breakdown by placement |
| 2. Optimization goal | The ad set is set to link clicks or landing page views | Ad set, performance goal |
| 3. Purchase tracking | Your store has orders from Meta traffic that Meta doesn't show, or shows twice | Events Manager next to your store's orders, same dates |
| 4. Landing page match | People land, look once, leave | The ad and the page side by side, on a phone |
| 5. In-app browser | Instagram visitors on iPhone stall at checkout | Your own phone, tapping your own ad inside Instagram |
| 6. Offer | Visitors browse, compare and go | Price, shipping and returns, seen as a stranger |
What to check, in order
When a Meta campaign brings clicks and no sales, the store usually gets the blame first. I'd open Ads Manager first. Checks 1 to 3 live inside Meta, they cost nothing, and if one of them is the cause, no change to the page will fix it. Checks 4 to 6 are about what happens after the click.
1. Where did the clicks happen?
Open the campaign in Ads Manager and break the results down by placement. You want to see where the clicks came from, not only how many there were.
Some placements are known for clicks nobody meant to make. Back in 2017 Meta said that "people who click on an Audience Network ad and spend less than 2 seconds on a destination page almost always clicked accidentally", and it stopped counting those clicks (Meta). Jon Loomer warns that a campaign optimized for link clicks or landing page views can spend "a large portion (maybe even most)" of its budget on Audience Network, and advises switching it off for those goals (Jon Loomer).
Full-screen placements can do the same. On our own campaign (more below), Instagram Reels and Stories supplied almost every visit, and almost none of those visitors did anything on the page.
Traffic campaigns still let you pick placements per ad set. Sales, Leads, Engagement and App promotion campaigns are losing that choice at the ad set level (Relevant Audience, citing Meta's help centre). What stays is account-wide: Advertising settings, Account controls, Placement controls, where you can exclude Audience Network for every campaign (EasyInsights).
2. What did you ask Meta to find?
Meta does exactly what the performance goal says. Its own API reference spells it out:
- Landing page views: "Optimize for people who are most likely to click on and load your chosen landing page."
- Link clicks: "Will optimize for people more likely to click in the link of the ad."
- Conversions: "Will optimize for people more likely to make a conversion in the site."
Read the first one twice. Nothing in it asks for people who buy. A traffic campaign with cheap landing page views and no orders is working as designed. If you sell products, the budget belongs in a Sales campaign optimized for purchases.
3. Is Meta seeing your purchases?
A purchase goal only works if Meta receives the purchases. When the purchase event is broken, two things go wrong at once: Ads Manager reports no sales even when some happened, and the campaign learns from nothing.
Put Events Manager next to your store's orders for the same week. The counts won't match exactly. But if your store has orders from Meta visitors and Events Manager shows zero purchases, you have a tracking problem, not a sales problem.
On Shopify, open the Facebook & Instagram app and check the data-sharing level. On Standard, only the pixel sends data and "a browser-based ad blocker can prevent the Meta pixel from sharing data." Enhanced and Maximum add the Conversions API, which sends the purchase event from Shopify's servers to Meta's (Shopify Help).
If you send purchases through both the pixel and the Conversions API yourself, both must carry the same event name and event ID, or Meta counts the purchase twice (Meta developer docs). Also check the purchase event's Event Match Quality, a score out of 10 for how well Meta matches your purchases to real accounts (Meta developer docs).
The tracking side is covered in more depth in why did my ROAS suddenly drop, which starts with the same check.
4. Does the page continue the ad?
Meta's own landing page guide asks for the page to back up the ad on four counts: the images, the message, the price and the offer (Meta for Business). An ad for one product that lands on the home page, or a discount in the ad that's nowhere on the page, loses people who wanted to buy.
This is a big topic of its own, so it has its own guide: ad and landing page mismatch, with a check list for Meta and Google.
5. What happens in Instagram's browser?
A tap on your ad in Instagram or Facebook opens your store inside the app's own browser, not Safari or Chrome. On iOS that browser was caught adding its own code to pages in 2022 (Felix Krause), and that kind of web view can lose Apple Pay (Apple, Safari 13 release notes). The details, and the other phone-only leaks, are in why mobile converts worse than desktop.
Don't take my word for what that means today. Test it. On an iPhone, tap your ad inside Instagram, add to cart and go to checkout. Note which payment buttons show and whether your details fill in. Then do the same in Safari. If checkout inside Instagram is clearly harder, the fix is on the checkout, not in the ad.
6. Is the offer worth it from a cold scroll?
Someone in a feed wasn't looking for you a second ago. Search visitors arrive with a need, feed visitors with curiosity. So the price, the shipping cost and the return policy have to make sense to a stranger, fast. If you can't see what delivery costs without reaching checkout, fix that first. For checkout itself, why does my Shopify store get traffic but no sales has the data on surprise costs and a full check order for the site.
Is it the ads or the site?
Meta's reports can't settle this on their own, because they stop when the page loads. Here's what that looked like on our own campaign.
Our test was anry-traffic-lpv, a Meta campaign for anry.io optimized for landing page views, live on 14 and 15 October 2026. Meta's report: A$122.03 spent, 498 link clicks, 460 landing page views, A$0.27 for each view. By Meta's numbers that's a healthy campaign: almost every click loaded the page, and cheaply.
Anry follows each click onto the site, and it showed the other half. Roughly 98 in every 100 of those visits ended without a single scroll or tap, and the traffic came almost entirely from Instagram Reels and Stories. Mistaken taps. We paused the campaign the same day.
The fix was checks 1 and 2. Nothing on the page needed to change. (anry.io doesn't sell products, so these are visits, not orders.)
The rule: if one placement or ad sends visitors who never engage while other traffic on the same page does, it's the ads. If every source stalls, it's the page.
Where Anry fits
Checks 1 to 3 need nothing more than Ads Manager and Events Manager. What Meta can't show you is what each ad's visitors did after the page loaded, and whether they bought. Anry picks up where Meta stops: it tracks each ad's visitors through the site to checkout, and when something like a placement full of mistaken taps is costing you, it puts a price on it from your store's own orders. You ask it from Claude, Claude Code or Cursor, it's read-only, and your agent writes the fix.
If you run one small campaign, the placement breakdown and a test purchase on your phone will get you most of the way without it.
Frequently asked questions
Why are my Facebook ads getting clicks but no purchases?
A common cause is a campaign optimized for clicks or landing page views, so Meta finds people who tap, not people who buy. Check the placement breakdown and the performance goal first, then whether the purchase event reaches Meta at all.
Should I optimize Meta ads for landing page views or purchases?
For a store, purchases. Meta's landing page view goal looks for people likely to load the page, and says nothing about buying.
Should I turn off Audience Network?
If you optimize for link clicks or landing page views, Jon Loomer recommends switching it off, because it can take much of the budget with clicks that go nowhere. For purchase-optimized campaigns, his advice is to leave it on and let Meta judge it on purchases.
Why does Meta show fewer purchases than Shopify?
Meta only reports purchases it can tie to an ad, and a pixel blocked by an ad blocker never reports at all. On Shopify, a data-sharing level of Enhanced or Maximum adds the Conversions API, which sends purchases server to server.
Sources
- Updates to clicks and impression reporting, Meta, August 2017
- Should Meta advertisers ever use the Audience Network placement?, Jon Loomer, March 2023
- Meta documents what replaces ad set placement controls, Relevant Audience, October 2026
- Meta is removing manual placement controls from ad sets, EasyInsights, September 2026
- Ad set optimization goals, Meta Marketing API reference
- Facebook data sharing, Shopify Help Center
- Deduplicate pixel and server events and Conversions API best practices, Meta for Developers
- Stick the landing: landing page optimization best practices, Meta for Business
- Instagram and Facebook can track anything you do on any website in their in-app browser, Felix Krause, August 2022
- Safari 13 release notes, Apple Developer
See which ad clicks leave your store before they buy.
14-day free trial, no card. Works in Claude, Claude Code and Cursor.