Category Uncategorized

When Meta reports clicks and conversions but your bank account disagrees, the problem is usually broken tracking between the ad platform and your real sales — not the ads themselves.

Why do my Meta ads show clicks but no sales?

Clicks and spend are measured by Meta on its own platform, but sales happen on your website, in your inbox, or over the phone — and if those two worlds are not connected, Meta cannot see the outcome. In most cases the ads are working and the tracking is not.

This is the single most common thing we are called in to diagnose. A business sees the spend line and the click line both climbing, the Meta dashboard reports a healthy cost per result, and yet the sales team, the till, or the bank statement tells a completely different story. The instinct is to blame the ads, pause the campaign, and start again. That instinct is usually wrong.

Clicks are cheap to measure because they happen inside Meta’s own environment — someone taps your ad, Meta counts it, done. A sale is expensive to measure because it happens somewhere Meta does not control: your Shopify checkout, your WordPress contact form, a WhatsApp thread, a phone call, a delivery rider handing over a cash-on-delivery parcel. For Meta to attribute that sale back to the ad, a signal has to travel from where the sale happened back to Meta, and that signal chain breaks in more places than most advertisers realise.

So before you conclude that the campaign is bad, the honest first question is: could Meta even know a sale occurred? If the answer is no, the reported cost per purchase is meaningless and every optimisation decision built on it is built on sand.

In our experience the businesses most exposed to this are exactly the ones the angle describes — spending real money, seeing real activity, and unable to reconcile it. The fix is almost never a new creative. It is closing the measurement gaps one at a time until the dashboard matches reality.

What’s the difference between what Meta reports and what actually happened?

Meta reports conversions using its own attribution rules, view-through counting and statistical modelling, so its numbers can legitimately differ from what your analytics or your accounts show — sometimes counting sales your own systems never attribute to the ad.

Meta’s dashboard is not a neutral record of what happened. It is Meta’s estimate of what its ads caused, calculated with a particular set of rules that favour showing the ads in a good light. Understanding those rules is the difference between reading the numbers and being fooled by them.

The first source of divergence is view-through attribution: Meta can credit a conversion to an ad someone saw but never clicked. Your own analytics, which only knows about clicks and sessions, will never record that. So Meta says the campaign drove 40 purchases and your Shopify says the ad channel drove 22 — and both can be ‘correct’ by their own definitions.

The second source is modelling. After Apple’s privacy changes, Meta cannot observe every conversion directly, so it fills the gaps with statistical estimates. Those modelled conversions are real business logic, but they are not individually verifiable sales. When a large share of your reported results are modelled, the number gets softer than it looks.

The practical consequence: never treat Meta’s reported revenue as your revenue. Treat it as one input, and reconcile it against a source you control — your store’s own analytics, your CRM, your actual orders. Where the two disagree by a wide margin, the disagreement itself is the diagnosis.

Where the numbers come from
NumberWho measures itWhat it can miss or add
Clicks / link clicksMeta, on-platformNothing much — this is reliable
Meta ‘purchases’Meta, using its attribution + modellingAdds view-through and modelled sales your analytics won’t see
Store analytics conversionsYour site (GA4 / Shopify)Misses offline, WhatsApp and phone sales entirely
Actual revenueYour accounts / bankThe truth — but slow, and hard to tie back to a campaign

Why did Apple’s iOS changes break my conversion tracking?

Apple’s App Tracking Transparency, introduced with iOS 14.5, lets users block the tracking Meta relied on, so the browser-based Pixel now misses a large and unpredictable share of conversions from Apple devices.

Before 2021, the Meta Pixel — a snippet of JavaScript in your website — could quietly follow a user from ad click to purchase and report it back. Apple’s App Tracking Transparency framework changed that by forcing apps, including Facebook and Instagram, to ask users for permission to track them. A large proportion of users decline.

When a user declines, the signal that would have connected their purchase to your ad is weakened or lost. The sale still happens; Meta just doesn’t get told, or gets told in a degraded form. This is not a bug you can fix in your account settings — it is a deliberate platform-level change that applies to everyone.

This matters enormously for Pakistani and Gulf businesses selling to affluent audiences, because those audiences skew towards iPhones. The more premium your customer, the more likely the browser Pixel is under-counting your results, which means the more likely you are to wrongly conclude a good campaign is failing.

The industry response to this is server-side tracking, and it is the single most important thing an advertiser can put in place today. Which brings us to the Conversions API.

What is the Meta Conversions API and do I actually need it?

The Conversions API sends conversion data to Meta directly from your server rather than from the user’s browser, which recovers many of the sales the Pixel now loses to ad blockers and privacy settings. For any account spending seriously, it is no longer optional.

The browser Pixel and the Conversions API do the same job — tell Meta a conversion happened — but by different routes. The Pixel fires from the visitor’s browser, where ad blockers, privacy settings and Apple’s rules can stop it. The Conversions API fires from your own server, which none of those things can block. Running both, with Meta de-duplicating the overlap, is now the standard setup.

We treat the Conversions API as a baseline, not a premium extra. An advertiser without it is knowingly throwing away conversion signal, and that missing signal does double damage: it makes your reported results look worse than they are, and it starves Meta’s optimisation algorithm of the data it needs to find more buyers. Poor tracking doesn’t just misreport performance — it actively degrades it.

Setting it up correctly is where businesses stumble. It is not enough to switch it on; the Pixel and the API must send matching event IDs so the same purchase isn’t counted twice, and the customer data sent must be hashed and formatted the way Meta expects, or match rates collapse. A half-configured Conversions API can be worse than none because it produces confident-looking numbers that are quietly wrong.

If your account spends meaningfully and you cannot confirm the Conversions API is live and de-duplicated, that alone justifies a full tracking audit before you touch the campaigns.

Pixel vs Conversions API: same job, different route
Meta Pixel (browser)Fires from the visitor’s browserBlocked by ad blockersWeakened by iOS privacy settingsEasy to install, unreliable nowConversions API (server)Fires from your own serverAd blockers can’t stop itSurvives browser privacy limitsNeeds correct event de-duplication

Pixel vs Conversions API: same job, different route

How do I know if my Pixel is even firing correctly?

Use Meta’s Events Manager and the browser Pixel Helper to confirm each key event fires once, on the right page, with the right value — a Pixel that fires twice, on the wrong page, or with no purchase value is technically ‘installed’ but reporting garbage.

A Pixel that exists is not a Pixel that works. We regularly open accounts where the base Pixel is installed but the events that matter — Purchase, Lead, Add to Cart — either don’t fire, fire on the wrong page, or fire without the sale value attached. Meta shows a green light for the base code, so the owner assumes tracking is fine.

The checks are concrete. In Meta Events Manager you should see your key events arriving with a healthy event match quality score and no warnings. Using the browser Pixel Helper extension, load your thank-you or order-confirmation page and confirm the Purchase event fires exactly once, carrying the correct currency and order value. A Purchase event with no value means Meta can report count but never ROAS.

Common failures we find: the Purchase event bolted onto every page instead of only the confirmation page, inflating conversions wildly; duplicate Pixels from an old agency still firing alongside the new one; and values passed in the wrong currency so a PKR sale is read as USD. Each of these produces numbers that look plausible and are completely misleading.

This is the cheapest, fastest audit you can run, and it should come before any judgement on ad performance. If the events are wrong, everything downstream — cost per purchase, ROAS, the optimisation itself — is contaminated.

Why don’t my WhatsApp and phone sales show up in Meta’s reports?

Sales that close over WhatsApp, a phone call, or cash on delivery happen outside your website, so Meta never sees them unless you deliberately send those conversions back through offline conversion uploads or WhatsApp integration.

This is the gap that hurts Pakistani businesses most, and it is the one Meta’s own defaults do nothing about. A huge share of local commerce doesn’t finish at a web checkout. Someone clicks the ad, messages you on WhatsApp, negotiates, and pays cash on delivery days later. To the Meta Pixel, that entire journey looks like a click that led nowhere — because nothing happened on your site.

The result is a systematic, invisible under-count. Your best-performing campaigns — the ones actually driving conversations and orders — can appear to be your worst, because their success lives in your inbox and your delivery log, not your website. Businesses cut these campaigns for producing ‘no sales’ when they are producing most of the real ones.

There are ways to close this gap. Click-to-WhatsApp ads can report conversions from within the WhatsApp Business flow. Offline conversions can be uploaded — you match your actual orders (with the customer’s phone or email) back to the ad clicks, so Meta learns which clicks became paying customers. Call tracking can attribute phone sales. None of this happens automatically; someone has to build the pipe.

For businesses running cash-on-delivery or consultative sales, connecting offline conversions back to Meta is often the highest-impact tracking work available — it doesn’t just fix the report, it lets Meta optimise towards the people who actually buy rather than the people who merely click.

How do attribution windows distort what I think is working?

An attribution window is the time Meta is allowed to credit a conversion to an ad after the click or view; change the window and the same campaign’s apparent performance changes, even though the real sales are identical.

Meta’s default is a 7-day click, 1-day view window: it will credit a purchase to an ad if the person clicked within 7 days or saw it within 1 day before buying. Shorten it to 1-day click and slower-converting products suddenly look far worse — not because they sold less, but because Meta stopped counting the sales that took longer to arrive.

This trips people up in two directions. First, comparing two campaigns or two time periods that were reported under different windows is comparing apples to oranges. Second, businesses with a long consideration cycle — higher-priced goods, B2B, services — under a short window will always look weak, because their buyers don’t decide the same day.

The fix is not to pick the flattering window but to pick one that matches how your customers actually buy, then hold it constant so your comparisons are honest. Know your window, and read every number in light of it.

Combine this with view-through counting and modelling, and you can see why two people staring at the same account can reach opposite conclusions. The window is a lens, not a fact, and choosing it deliberately is part of doing the measurement properly.

What should I do before blaming the ads?

Confirm in order that the Pixel and its key events fire correctly, that the Conversions API is live and de-duplicated, that offline and WhatsApp sales are fed back, and that you’re reading results under a consistent attribution window against a source you control.

The sequence matters because each step depends on the one before it. There is no point optimising creative against a cost-per-purchase figure if the Purchase event is firing on every page. Fix the measurement from the ground up, then judge the ads.

Start by validating events in Events Manager and Pixel Helper. Then confirm the Conversions API is running with matching event IDs so nothing is double-counted. Then build the pipe for offline, phone and WhatsApp conversions if any meaningful share of your sales close off-site — for most Pakistani advertisers, this is where the hidden revenue is. Finally, lock your attribution window and reconcile Meta’s numbers against your own store analytics and accounts every month.

This is the discipline behind Blupixel’s monthly plain-language reporting. We built the agency around being able to tell a client, in ordinary language, what actually happened to their money — which is impossible if the tracking underneath is broken. Our team includes certified Google and paid-media professionals, and we run conversion tracking as a standing part of every account rather than a one-off setup.

If you’d rather not diagnose this alone, our free website audit and free PPC audit (for qualifying accounts) exist precisely for this situation — an advertiser who is spending, seeing activity, and can’t tell what’s converting. We’ll show you where the signal is leaking before anyone touches a campaign.

Fix tracking in this order, then judge the ads
1Validate Pixel eventsOne fire, right page, real value2Confirm Conversions APILive and de-duplicated3Feed back offline salesWhatsApp, phone, cash on delivery4Lock attribution windowMatch how customers buy5Reconcile monthlyMeta vs your own accounts

Fix tracking in this order, then judge the ads

Common questions

Is the Meta Pixel still worth installing at all?

Yes — the Pixel and the Conversions API work best together, with Meta de-duplicating events that arrive from both. The Pixel captures rich browser signals when it can; the Conversions API backstops it when the browser is blocked. Running only the Pixel is the mistake, not running the Pixel.

Why does Meta report more sales than my Shopify or GA4?

Because Meta counts view-through conversions and modelled conversions that your own analytics, which only sees clicks and sessions, cannot. Meta credits sales it believes its ads influenced; your store credits sales it can directly trace. Neither is lying — they’re measuring different things, which is why you reconcile both against your actual accounts.

Do I need a developer to set up the Conversions API?

Often yes, unless you’re on a platform with a native integration. Shopify and some WordPress setups offer connectors that handle much of it, but getting event de-duplication and customer-data matching right usually needs technical setup. A poorly configured Conversions API can double-count or under-match, so it’s worth doing properly.

How can I track sales that close over WhatsApp?

Two main routes: click-to-WhatsApp ad formats that report conversions from within the WhatsApp Business flow, and offline conversion uploads where you match completed orders back to ad clicks using the customer’s phone number or email. Both let Meta learn which clicks became real buyers instead of treating the conversation as a dead end.

What attribution window should I use?

Use the one that matches how long your customers actually take to buy, then keep it constant. Fast, impulse purchases suit a short window; higher-priced or considered purchases need the standard 7-day click so you don’t discard sales that arrive days later. The worst choice is switching windows between reports and comparing them as if they’re equivalent.

How quickly can a tracking problem be diagnosed?

Basic event validation in Events Manager and Pixel Helper can be done quickly and often reveals the biggest issues straight away. Building offline and Conversions API pipelines takes longer because it involves your systems and data. Timelines vary with how your store, CRM and sales process are set up, which is what an audit establishes first.

Does Blupixel only work with businesses in Lahore?

No. Blupixel is based in Gulberg III, Lahore, and serves clients across Pakistan — including Karachi and Islamabad — as well as internationally, including Dubai. The tracking issues described here apply anywhere, though offline and cash-on-delivery gaps are especially common in the Pakistani market.

Sources

Leave a Reply

Your email address will not be published. Required fields are marked *

top
Paid Search Marketing
Search Engine Optimization
Email Marketing
Conversion Rate Optimization
Google Shopping
Influencer Marketing
Amazon Shopping
Explore all solutions