Hi there,
Thanks for reaching out! Happy to give you some initial thoughts and guidance on what you're trying to do. It’s a common problem, this whole tracking puzzle, and tbh one of the most important things to get right if you want to properly scale your ads. Get this wrong and you’re basically just guessing with your money.
You've asked some really sharp questions, and it shows you're thinking about this the right way. The short, and maybe slightly frustrating, answer is that no, you'll never achieve 100% perfect, flawless tracking. It's just not possible. The digital advertising world is a messy place with different devices, user behaviours, and privacy updates that make a perfect one-to-one attribution a bit of a pipedream. The person who sees your ad on their destop at work, jots down the number, and calls from their mobile on the drive home... that's a ghost. They're basically untrackable in any automated way.
But that's okay. The goal isn't perfection. The goal is to get to a point where your data is directionally accurate and reliable enough to make smart decisions. You want to get to a place where you can confidently say "for every £1 I put into this campaign, I'm getting about £X back". It's about building a system that captures the vast majority of your leads and sales, so the small percentage that slips through the cracks doesn't really matter in the grand scheme of things. You're looking for strong signals, not perfect silence. Right now, it sounds like you're dealing with a lot of noise, so lets try and clear that up.
We'll need to look at your Call Tracking first...
This is probably the biggest and most common headache for any service business. Calls are gold, but tracking where they come from is a nightmare. You've got calls from ads, calls from your Google Business Profile, calls from your organic website listing... it's a mess.
The Google rep is right that they can't track someone who sees an ad and then manually dials your number on a different device. But you have much better options than just shrugging your shoulders. What you need is a system called Dynamic Number Insertion, or DNI. It's a bit of tech that automatically swaps the phone number on your website with a unique, trackable phone number depending on where the visitor came from.
Here's how it would work in your situation:
-> For Google Ads Traffic: When someone clicks on one of your ads, the DNI software shows them a specific tracking number. If they call that number, the system knows it came from a Google Ad click. Good DNI providers can even track it back to the specific campaign, ad group, and sometimes even the keyword that triggered the ad. This is how you start connecting ad spend directly to a phone call lead. It's a massive step up from what you're doing now.
-> For Google Business Profile & Organic Traffic: You can set up seperate tracking numbers for these sources too. One number shows only to people who come from your GBP listing, another for people who find you through a standard organic search. Suddenly, you can see exactly how many calls each channel is driving. No more guessing if a call was from an ad or organic. You'll know.
There are loads of third-party companies that offer this service. You'd pay a monthly fee for the service and the phone numbers. It's an extra cost, yes, but the clarity it provides is almost always worth it. Without it, you're flying blind on your most valuable leads. We've run campaigns for service businesses, like an HVAC company we work with, and getting their call tracking sorted was the first thing we did. Their cost per lead seemed high until we realised how many calls weren't being attributed properly. Once we fixed that, the picture became much clearer and the campaigns looked a lot healthier.
Even with DNI, I'd still recommend having a simple process in place with whoever answers the phone. A simple "Just so I know for our marketing, how did you hear about us today?" can capture those few ghosts who slip past the tech. It's not perfect, but it's another valuable data point. The combination of tech (DNI) and a simple human process will get you as close to 100% on call tracking as anyone can reasonably get.
I'd say you need to sort out that third-party booking system...
Okay, this is another classic problem. You send traffic to your site, they click 'Book Online', and then they vanish into a third-party CRM where you have no visibility. Again, the Google rep is correct in that Google's standard tracking tags can't follow a user across to a completely different website domain that you don't own. It's a security and privacy thing, and it's called cross-domain tracking. It's a massive pain.
So, tracking clicks on the button is a start, but it's a poor proxy for a real booking. It's a bit like counting how many people walk into a shop instead of how many people actually buy something. You're measuring interest, not revenue. This is probably killing your ability to calculate a real ROAS.
You do have a few potential solutions here, but they require a bit of investigation:
1. Check for Native Integrations: The first thing to do is to dig into the settings of your third-party booking CRM. Is there a section called "Integrations", "Marketing", or "APIs"? Some modern CRMs have built-in integrations with Google Ads. If you're lucky, you might just need to connect your accounts, and the CRM will automatically send conversion data back to Google Ads when a booking is completed. It's worth a proper look, check their help docs or even contact their support. This would be the easiest fix.
2. Use a "Middleman" like Zapier: If there's no direct integration, the next best thing is to see if your CRM connects to a service like Zapier or Make. These are automation tools that connect different apps together. You could potentially set up a "Zap" that says: "When a new booking is completed in my CRM, send a conversion event to Google Ads". This is a bit more technical to set up but is a very powerful way to bridge the gap.
3. The "Pro" Method - Offline Conversion Imports: This is the most robust and powerful solution, and it's what we use for clients in this exact situation. It sounds complicated, but the concept is simple. It's the key to unlocking true ROAS tracking for almost any business that doesn't have a simple, direct online sale. I'll cover it in more detail in the next section because it also solves your form submission problem.
For now, your method of calculating a ratio is a decent stop-gap, but it's based on averages and assumptions. If one ad campaign sends you 10 clicks that all book, and another sends 10 clicks that don't book, your ratio method would treat them the same. You'd have no idea which campaign was actually driving the value. To properly optimise, you need to get that final booking data back into Google. It's not an optional nice-to-have; it's fundamental to making the platform's automated bidding work for you.
You probably should master Offline Conversion Imports...
This brings us to your form submissions and the manual back-and-forth. You are absolutely right, this has to be tracked, and yes, it's often a mnaually-intensive process on your end. But the tracking inside Google Ads doesn't have to be. You should not be optimising your campaigns based on who filled out a form. You should be optimising based on who actually became a paying customer and how much they paid you.
This is where Offline Conversion Imports (OCI) come in. This is the solution for both your form fills and, potentially, your third-party booking system.
Here’s the big idea: When a user clicks your Google Ad, Google attaches a unique ID to that click. It's called a "GCLID" (Google Click Identifier). Your job is to capture that ID when someone fills out a form, and then, later on, tell Google, "Hey, the person with this specific GCLID just became a customer and paid me £500".
This is how you connect your ad spend directly to actual, real-world revenue, even if that revenue happens days or weeks after the initial click, and after a dozen emails back and forth.
Here is a simplified step-by-step of how you would set this up:
Step 1: Enable Auto-tagging. In your Google Ads account, make sure auto-tagging is turned on. This is what makes Google add the GCLID to the URL when someone clicks your ad.
Step 2: Capture the GCLID. This is the most technical part. You need to configure your website and your lead form to capture the GCLID from the URL and save it along with the other lead information (name, email, phone number, etc.). This usually involves adding a hidden field to your form. When a user lands on your site from an ad, some simple code grabs the GCLID from the URL and puts it into that hidden form field. When they submit the form, you get their details AND their unique Google Click ID.
Step 3: Track Your Leads Internally. This is the part you're already doing. You have your spreadsheet or CRM where you track the lead from the initial enquiry, through the back-and-forth emails, to the final booking. The only difference now is that you have a GCLID associated with each lead that came from a Google Ad.
Step 4: Prepare Your Upload File. Once a lead becomes a paying customer, you create a simple spreadsheet. Google provides a template for this. It has a few columns, but the most important ones are:
- Google Click ID (the GCLID you saved)
- Conversion Name (e.g., "Booked Service" or "Confirmed Booking")
- Conversion Time (the date and time they paid you)
- Conversion Value (how much they paid you)
- Conversion Currency (e.g., GBP)
It would look something like this:
| Google Click ID | Conversion Name | Conversion Time | Conversion Value | Conversion Currency |
|---|---|---|---|---|
| EAIaIQobChMI-9-y... | Confirmed Booking | 2023-10-27 14:30:00 | 750.00 | GBP |
| Cj0KCQjw... | Confirmed Booking | 2023-10-28 11:00:00 | 1200.00 | GBP |
Step 5: Upload to Google Ads. You then go into your Google Ads account (under Tools & Settings > Conversions > Uploads) and upload this spreadsheet. You can do this once a day or once a week. Google then processes the file and matches the GCLIDs back to the original clicks.
The result? The "Conversions" and "Conversion Value" columns in your Google Ads dashboard now reflect *actual booked revenue*, not just form fills. Your ROAS calculation becomes real. Google's bidding algorithms now know which keywords, ads, and audiences are driving profitable customers, not just cheap form submissions. This is how you truly optimise an account like yours.
You'll need to think beyond ROAS...
Getting your tracking right and calculating a true ROAS is the first, vital step. But the next level