CPR West Covina Logo

Google Ads

The Tracking Mistake That Hides 1 in 4 Bookings

August 3, 20268 min readCPR West Covina


We audited our own Google Ads account and found that it was under-reporting bookings by 29%. Roughly one booking in four was invisible to the platform. We had been making bidding decisions, keyword decisions, and budget decisions on data that was missing a quarter of the outcome.

Nothing was broken in an obvious way. The tag was installed. Conversions were being recorded. The account looked fine. That is exactly why this is worth writing about: under-reporting does not announce itself, it just makes you slightly wrong about everything.

Why the number was wrong

The core problem in almost every CPR training site we look at is the same one we had: the booking does not finish where the ad click landed.

A student clicks the ad, arrives on the course page, opens the booking widget, and the payment step happens somewhere else. A checkout on a payment provider's domain. A scheduling tool in an iframe. A third-party cart. The click identifier that Google attached to the visit lives on the landing page URL, and by the time money changes hands the browser is in a different context that never received it. The sale is real. The attribution is gone.

The booking happened. The account just never heard about it.

Layer on top of that the ordinary attrition of modern browsers: cross-site restrictions, tracking prevention, ad blockers, a student who books on a phone at work and pays on a laptop at home. Every one of those is a booking your account will not connect to the click that caused it.

How to find out whether it is happening to you

You do not need a tool for this. You need two numbers and ten minutes.

  1. 01Count the real bookings for last month from the place money actually lands: your payment processor or your roster.
  2. 02Open Google Ads and count the conversions it recorded for the same period, plus whatever you can attribute to organic and direct.
  3. 03Compare. If the platform total is meaningfully below the real total, you have found your gap. Ours was 29%.
  4. 04Then check what your conversion action is actually counting. If it fires on a page view, a button click, or a form open rather than a completed payment, the number is not a booking count at all.

Both failure modes exist and they pull in opposite directions. Under-counting hides good keywords. Over-counting, where a soft action is recorded as a sale, invents good keywords that are not there. We have seen accounts doing both at once on different conversion actions, which produces numbers that are internally inconsistent and completely unusable.

What we did about it

Three things, in this order.

First, we made the click identifier survive the journey. The click ID is captured on the landing page and carried through every step of booking, including across the checkout hop, so the transaction and the click can be reconnected at the end. This is the reason several of our ad landing pages are rendered directly on the page rather than inside an iframe: an iframe is a different browsing context, and the click ID does not walk through the wall on its own.

Second, we redefined what counts. A conversion is a paid booking. Not a page view of a thank you page that anyone can reach, not a widget open, not a scroll. If the money did not move, it is not a conversion, and if you want to track the softer signals then track them as separate secondary actions that never touch bidding.

Third, we started feeding completed sales back into the account from the system that knows they happened, matched by click identifier, rather than relying only on a browser tag firing at the right moment on the right device. The browser is an unreliable narrator. The payment record is not.

Need a hand

Find out what your account is not counting

We will run the same comparison on your numbers on a 15-minute call, live, and tell you whether your conversion data is safe to make decisions on.

Book a 15-Minute Call

What changes once the number is honest

Keywords you were about to cut turn out to be producing bookings you could not see. Keywords that looked fine turn out to be producing form opens and nothing else. Your cost per booking drops on paper, not because anything improved, but because you are finally dividing by the right number.

And the option to automate opens up. Smart bidding is a data amplifier: give it a clean signal and it can do useful work, give it a signal missing one booking in four and it will optimize enthusiastically toward the wrong keywords. We stayed on a manual $3.80 max CPC cap through this exact period, deliberately, because we did not trust the feed.

The uncomfortable part

If you have been running ads for a year on broken tracking, every conclusion you have drawn about your account is suspect. The keyword you killed. The campaign you paused. The verdict that Google Ads does not work for CPR classes. We are not saying your conclusions were wrong, we are saying you cannot know, because the data underneath them was missing a quarter of the answer.

Check it before you make one more decision. If you want somebody else to check it, our conversion tracking audit is that, and the software version is the piece that keeps the click identifier alive through checkout so this stops happening.

Troubleshooting

Questions we get asked

How do I know if my conversion tracking is under-reporting?
Count real paid bookings from your payment processor for a full month, then compare against what the ad platform recorded for the same period. A meaningful gap is the answer. Ours was 29%. Then separately check what your conversion action fires on, because a conversion that counts a page view or a form open is not a booking count no matter how good the total looks.
Why does an iframe break conversion tracking?
An iframe is a separate browsing context. The click identifier Google attached to your landing page URL does not automatically pass into it, so when the booking completes inside the frame the transaction has no click to attribute it back to. This is why several of our ad landing pages render the booking directly on the page instead of inside a frame.
Does fixing tracking mean I get more bookings?
No. You had those bookings already. What you get is the ability to see which keywords produced them, which changes what you cut, what you scale, and what you bid. In our case it also changed our real cost per booking, on paper, because we were finally dividing spend by the true number.
Can I just use smart bidding and let Google figure it out?
Only after the signal is clean. Automated bidding optimizes against the conversions you report. Feed it data that is missing one booking in four and it will confidently move budget toward the wrong terms, faster than you can catch it manually. Fix the counting, then consider automation.

Need a hand

Tell us what your training company is stuck on

Fifteen minutes, on a call, looking at your real account or your real site. We will tell you what we would do first, including when the answer is nothing yet.

We run CPR West Covina: 4.9 from 300+ Google and Yelp reviews.