Problem: You’re looking at your ROAS in Google Ads, it’s showing 8:1, and you’re looking pretty pleased with yourself. But that dashboard is lying to you twice over today—it missed some conversions entirely (cookie banners, Safari, GTM blocking), and the ones it did track are likely being claimed by someone else too (Sklik, Meta, Microsoft). The numbers in the ad platform and GA4 have stopped being the truth. They’ve become an estimate—and often a bad one.

Over the last few years, something fundamental has quietly changed in PPC: we’ve stopped seeing what’s actually happening. Not because we’re tracking things worse, but because browsers, legislation, and users are systematically taking our tracking away. And as long as you’re looking at it through old eyes—”how many conversions did it show me”—you’re evaluating campaigns based on a number that can’t be trusted.

In this article, I’ll break down how much data we’re actually losing today and why, why looking at just the ad platform or GA4 isn’t enough, and most importantly, how to evaluate PPC today—through incrementality, a blended view, and experiments. And why it doesn’t work without client transparency.

Table of Contents

1. How much data are we actually losing today (and why)

I’ll start with the bad news. On a standard client setup (classic client-side GTM, gtag, Meta pixel), you’re currently missing out on tracking roughly 40–50% of conversions. This isn’t some figure from a random study—it’s what I see across accounts when I compare what the system reports with what actually hits the books or the CRM.

It’s made up of several layers that stack on top of each other:

  • Cookie banners and rejected consent. A user who clicks “decline” in the consent banner disappears from both your analytics and advertising cookies. In Czechia, this is typically 20–40% of people. You simply won’t track these conversions—the signal physically never reaches you.
  • Safari and ITP. Apple’s Intelligent Tracking Prevention shortens the lifespan of client-side cookies set via JavaScript to 7 days (and for visits coming from an ad link via link decoration, it can be as little as 24 hours). A user who clicked an ad on Monday and bought 10 days later appears as a completely new, “organic” visitor—and your PPC campaign won’t get the credit.
  • Firefox and tracker blocking. Enhanced Tracking Protection in Firefox blocks known trackers by default. Add to that users with uBlock Origin, Brave, and other blockers—for them, gtag.js, the GTM container, and fbevents.js often don’t load at all. That visit and conversion never even existed as far as you’re concerned.
  • iOS, ATT, and in-app. App Tracking Transparency and Apple’s general shift toward privacy rip away another chunk, especially for campaigns targeting apps.

When you add it all up, you realize that with a classic setup, you’re only seeing about half of the reality. And those are figures from the Czech market—in German-speaking markets (DACH), where privacy sensitivity and the willingness to decline consent are even higher, the data loss is usually even greater. If you’re targeting Germany or Austria, keep that in mind.

Now for the important part: that missing half isn’t random. Safari users have higher purchasing power, and blockers are used by a more tech-savvy (and often more affluent) audience. So you aren’t just losing a random sample—you’re disproportionately losing the better segment. Your tracked data isn’t just full of holes; it’s skewed.

2. sGTM and a custom loader will help — but don't expect a miracle

The logical reaction is: “we’ll deploy server-side GTM and fix it.” And it’s true that server-side tracking is more of a necessity than a luxury these days. It moves tracking from the browser to the server; cookies are set by the server (first-party, longer lifespan, ITP is bypassed), and requests don’t go to known tracker domains, so blockers don’t catch them as easily. Add a custom loader (renamed endpoint, custom loading path) and you’ll get significantly better results.

But here’s the honest truth that sGTM vendors don’t like to mention: even with a perfect server-side setup and a custom loader, you’re still looking at around a 30% loss.

Why? Because sGTM handles the transport layer—blocking, short-lived cookies, domain reputation. It doesn’t handle the consent layer. A user who rejects the cookie banner stays invisible to you regardless of how good your server-side is, because without consent, you simply aren’t allowed to track. And in Czechia, that’s still a huge chunk of people.

Consent Mode v2 fills part of this gap—Google uses aggregated, non-identifiable signals to model probable conversions even for users without consent. But “model” is the keyword: it’s a modeled estimate, not measured reality. Plus, it only kicks in above a certain data volume—small accounts get almost nothing out of modeling. (I’ve detailed how to correctly set up Consent Mode v2 via GTM so that at least that part works in a separate article.)

Server-side will get you from 50% blindness down to 30%. That’s a massive leap. But it still means every third conversion is either an estimate or missing. Anyone telling you that “you track everything with sGTM” has either never measured it or never compared the data with their accounting.

By the way, I’ve described what proper server-side conversion tracking looks like in practice, including where things tend to get stuck, using the example of tracking bookings from a hotel system in this article.

3. Why looking at conversions in the ad platform alone isn't enough

Okay, there’s less data. But the second, trickier problem isn’t about how many conversions you see — it’s that multiple systems see the same conversion at once, and each one claims full credit for it.

Imagine a real customer journey: they click on a Google Search ad, two days later they get hit by retargeting on Meta, then they see Sklik and finally make a purchase. One order. Three platforms. And each one counts that single conversion as its own.

Each advertising system has its own pixel, its own attribution window, and its own “last click within my channel” logic. They don’t know about each other. So when you open three dashboards and add them up, you get total nonsense:

				
					# Co ti hlasi jednotlive dashboardy (soucet je fikce):
Google Ads   konverze 100   trzby    800 000 Kc
Meta Ads     konverze  60   trzby    350 000 Kc
Sklik        konverze  40   trzby    180 000 Kc
----------------------------------------------------
SOUCET       konverze 200   trzby  1 330 000 Kc   <- duplicitne

# Co rika ucetnictvi (jedina pravda):
Skutecne objednavky        140
Skutecne trzby         920 000 Kc
----------------------------------------------------
Rozdil: 60 konverzi a 410 000 Kc navic = prekryv kanalu
				
			

This isn’t a setup error. It works this way by design. Every platform is optimized to claim as much credit as possible — because that’s how it proves its value to you. Adding up ROAS from Google Ads, Meta, and Sklik and telling a client “blended ROAS X” is therefore methodologically wrong. The actual revenue isn’t that high.

And it’s not just about reporting. If you optimize each platform based on its own reported ROAS, you’ll overvalue overlapping channels — typically, you pour money into retargeting on three platforms chasing the same purchase, while pretending each one of them is profitable.

4. Why even GA4 isn't enough

“Let’s look at GA4, it’s independent and we’ll see the whole picture.” If only. GA4 handles cross-channel deduplication better than individual pixels — it sees the user journey across channels and the default today is data-driven attribution. But it has two catches of its own.

Catch #1 — GA4 only measures what actually reaches it. The exact same data loss from the first chapter applies here. Consent Mode, ITP, blockers — GA4 is just as blind to half the people. So the “independent” view is indeed independent, but just as full of holes.

Catch #2 — the way most people read it is still last-click. Even though GA4 offers a data-driven model, the vast majority of reports and decisions are based on the last (or last non-direct) click. And last-click systematically overvalues the bottom of the funnel and undervalues the top. Brand search and direct take credit for a purchase that was triggered a week ago by a generic query, Display, or prospecting on Meta.

The consequence is dangerous: you look at GA4, see that a “prospecting campaign has a terrible ROAS,” turn it off — and a month later, even that beautiful brand search tanks because you strangled what was triggering the demand in the first place. (I also wrote about this in an article on why AI advice without experience will tank performance — turning off an “expensive” keyword is exactly this trap.)

GA4 is a great tool and belongs in your measurement stack. But as the sole arbiter of whether PPC is working, it holds up no better than the dashboard in Google Ads. Both tell you a piece of the story, and both present that piece in a distorted way.

5. What to measure instead: incrementality, not attribution

Here’s the mindset shift you need to make. Stop asking “how many conversions the system attributed to me” and start asking “how much more revenue / leads do I have because this ad is running.”

This is called incrementality — the lift. It’s not attribution (who we credit for a purchase that would have happened anyway); it’s a completely different question: would that purchase have happened even without the ad? Some of them, yes (a loyal customer who would’ve found you anyway). Some of them, no (that’s your real contribution). And only that second part is what you’re paying for.

In practice, it means looking at business metrics over total numbers, not platform dashboards:

				
					MER (Marketing Efficiency Ratio) = celkove trzby firmy / celkovy marketingovy spend
new-CAC                          = celkovy spend / pocet NOVYCH zakazniku
prispevek po marzi               = (trzby x marze) - spend
				
			
  • MER / blended ROAS across total revenue and total spend doesn’t lie about duplication — it takes the reality from your accounting, not a sum of pixels. When you increase spend by 30 % and MER stays the same, you’re scaling healthily. When MER drops, you’re just chasing your own tail.
  • new-CAC (cost per new customer) protects you from retargeting recycling existing clients while pretending to be acquisition.
  • Contribution margin is the only number owners care about. ROAS 8:1 on a product with a 10% margin is a loss; ROAS 3:1 on a 60% margin is a win.

And when you want to dive into the channels, feed the systems actual value, not proxies — offline conversions from your CRM, value after returns, qualified leads instead of all leads. Bidding then learns from reality. (How I connected Pipedrive to Google Ads and sent back truly qualified leads without a paid connector, I described here.)

6. Experiments that tell the truth

You can’t read incrementality from a dashboard — you have to measure it with an experiment. Here is a set of tools from the simplest to the hardest, sorted by what a smaller Czech account can realistically pull off:

1. Blackout / pause test (the most accessible). Turn off one thing for 2–4 weeks — typically brand search or one retargeting line — and watch how much total revenue actually drops. If the platform reported 80 conversion per month from brand search, but after turning it off your total revenue drops by only 15 orders, you’ve just found out that 65 of those “conversions” would have happened anyway. That is brutally valuable information — and you’ll never see it in a dashboard.

2. Geo holdout. Turn off (or hold) a channel in some regions, let it run elsewhere, and compare the business results between the groups. The gold standard of incrementality. In the Czech Republic, there’s a catch with the market size — for small budgets, the geo granularity is coarse and the noise is high — but for larger accounts across regions/cities, it works.

3. Conversion Lift / Brand Lift studies. Meta and Google can do randomized holdouts (ghost ads) — a portion of the audience doesn’t see the ad, and the difference is measured. Methodologically the cleanest, but in the Czech Republic it hits the wall of minimum volumes and budgets, so it’s usually out of reach for small accounts.

4. Spend stepping (poor man’s MMM). Change the budget in controlled steps up and down and watch the blended result with a lag. It’s not laboratory-pure, but it shows you the shape of the curve — where you’re starting to hit the ceiling and another crown no longer brings returns.

The rule above all else is simple: change one thing, keep the rest the same, give it time, read the business metric — not the dashboard. It’s an iterative craft, not a one-time setup. The same principle of “test in steps, ignore the hunches” applies outside of PPC too.

7. It just doesn't work without client transparency

And here’s why I’m writing about this as a relationship, not just a technique. Everything above requires the client to open up their data and trust you—otherwise, you’ll end up back with that inflated ROAS in the dashboard because you have nothing else to go on.

Specifically, I need three things from the client:

  • Access to the big picture numbers. Not just the ad account. Total revenue, margins, new vs. returning ratio, phone and offline orders, lead quality from the CRM, ideally LTV. Without that, I can’t calculate MER or new-CAC, and I’ll stay just as blind as that dashboard.
  • Permission to experiment. A brand search blackout test will tank the dashboard numbers for two weeks—that’s the whole point. If I don’t clear this with the client beforehand and they see a drop on day three, they’ll pull the plug and the whole test is wasted. I need a pre-approved protocol and a metric to evaluate (total revenue, not conversions in Google Ads).
  • Patience. Incrementality shows up over weeks, not in the daily ROAS column. A client who wants to see green numbers every morning is pushing me toward exactly the wrong thing—optimizing for the dashboard, not the business.

The relationship shifts from “show me the ROAS in Google Ads” to “let’s measure together what impact advertising has on the company.” It’s more demanding for both sides. But it’s the only way to evaluate PPC honestly in 2026—instead of comforting ourselves with a number that overstates its own value.

Conclusion

Evaluating PPC “by the numbers in the dashboard” has stopped working. The ad system misses half your data and overstates the other half due to duplication; GA4 is just as full of holes and defaults to last-click. Both give you a piece of the truth, and even that piece is distorted.

Three things to take away:

  1. Accept that you’re measuring an estimate. Even with server-side, you’re missing ~30% and the rest is modeled. Anyone who says otherwise hasn’t compared the numbers with their actual accounting.
  2. Evaluate incrementality, not attribution. Blended MER, new-CAC, contribution after margin based on the company’s total numbers — and feed the real value back into the systems.
  3. Only experiments reveal the truth. Blackout, geo holdout, lift studies, spend stepping. And those only happen when a client opens up their data and gives you their trust.

If you’re tired of dashboards and want to know if PPC is actually driving incremental revenue or just recycling customers you’d have gotten anyway — get in touch. I’ll gladly show you how to measure the difference between “attributed” and “incremental” conversions using your own data. This very distinction is the job clients pay for these days.

Do you measure PPC by the dashboard, or by actual revenue?

I’ll show you, using your own data, how many duplicate conversions you have, how much data you’re missing, and how to measure the real impact of your ads. Straight talk, no sales pitch.

FAQ

  • How much data are we actually losing in PPC measurement today? On a standard client-side setup, it’s roughly 40–50% of conversions (consent, Safari ITP, GTM and tracker blocking). With server-side GTM and a custom loader, you’ll get down to ~30%, because no technique can make up for the loss from rejected consent — Consent Mode v2 only partially models that.
  • Why can’t I just add up the ROAS from Google Ads, Meta, and Sklik? Because every platform claims the full credit for the same conversion. A customer journey through three channels = three conversions counted for a single order. That’s why the sum of platform revenue is always higher than the reality in your accounting. Use blended MER based on total numbers instead.
  • Isn’t data-driven attribution in GA4 the solution? It helps with cross-channel deduplication, but it doesn’t solve two things: GA4 still won’t measure people without consent or those using blockers, and most people end up reading it as last-click anyway. It won’t cut it as the sole arbiter of performance.
  • What is incrementality and how do I measure it? The uplift in revenue/leads thanks to advertising — essentially, what wouldn’t have happened without it (not just what the system attributes). It’s measured through experiments: blackout/pause test, geo holdout, conversion lift, or spend stepping. A dashboard won’t show it to you.
  • What is a blackout test? You temporarily (2–4 weeks) turn off one campaign or channel and track how much total revenue actually drops. The difference between that drop and what the platform reported is your level of duplication and non-incrementality. Heads up — agree on the protocol and metrics with the client beforehand; a drop in the dashboard is expected.
  • Why do you want access to my total revenue, not just the ad account? Because the real impact of PPC is calculated based on the business (MER, new-CAC, margins), not just pixels. Without total numbers, I can only calculate that distorted dashboard for you, which suffers from all the issues described in this article.