Your ad dashboards show clicks and leads. Your bank account shows booked jobs. Call tracking for small business is how you connect the two.
This post covers a simple setup that works whether you spend on Google, Facebook, Instagram or Local Services Ads.
Why most tracking stops too early
Most ad platforms count a click, a form fill or a call. Then they lose the thread.
They don't know if the caller was a real customer, if the job was booked, or what it was worth. So you end up comparing channels on leads, which can reward the channel that sends the most tire-kickers.
The three pieces you need
1. A separate phone number for each channel
Give Google Ads, Facebook, Instagram, Local Services Ads and your organic listings each their own number. When the phone rings, you know where the caller came from.
Google Ads has its own version of this. A Google forwarding number is a unique number that tracks calls from your ads, logging details like time, duration, campaign and ad group. It stops at the call, though, so it can't tell you on its own whether the job booked.
2. A tagged link for each channel
For clicks, add UTM tags to every ad link so your analytics know the source. The three core tags are utm_source, utm_medium and utm_campaign.
Keep the values consistent. Google notes that values are case sensitive, so "google" and "Google" show up as two different sources.
3. The outcome, recorded on every lead
This is the step most businesses skip. Every lead needs a stage (new, qualified, booked) and, once booked, a dollar value.
Without it, you can count leads per channel but not revenue per channel.
Set it up in an afternoon
- List every channel you pay for or post on.
- Assign each one its own phone number and its own booking or landing link.
- Swap the numbers and links into each ad, profile and bio.
- Mark every lead with its stage, and add a job value when it books.
- After 30 days, compare channels on booked jobs and revenue.
The numbers to look at each month
- Leads by channel
- Booked jobs by channel
- Revenue by channel
- Cost per lead: ad spend divided by leads
- Cost per booked job: ad spend divided by booked jobs
Cost per booked job is the number that tells you where the next dollar should go. A channel with cheap leads and few bookings is often more expensive than it looks.
A quick example
These numbers are made up to show the math. Say you spend $1,000 on each of two channels in a month.
- Channel A: 50 leads, 5 booked jobs. Cost per lead $20, cost per booked job $200.
- Channel B: 20 leads, 8 booked jobs. Cost per lead $50, cost per booked job $125.
Judged on leads, Channel A wins. Judged on booked jobs, Channel B is the better buy.
What about customers who touch several channels?
Some customers see an Instagram post, search on Google, then call. Simple tracking credits the channel they used to contact you.
For most local businesses that is good enough to start. Ask "how did you hear about us?" on the call to catch the rest.
Common mistakes
- Using one phone number everywhere, so every call looks the same
- Leaving ad links untagged, so web leads show up as direct traffic
- Mixing tag spellings across campaigns
- Never marking leads as booked, so revenue is invisible
- Ignoring organic leads, which makes paid channels look better or worse than they are
Where Cindy fits
With Cindy's ad attribution, every lead channel gets its own dedicated phone number and booking link: Instagram, Facebook, Google Ads, Google LSA, TikTok and Organic. Every lead and booked job is traced to its source.
The ad performance report shows paid vs organic booked jobs, estimated revenue, leads and cost per lead by channel, and Meta Ads reporting connects to your ad account. Each lead lives in the pipeline with its stage and job value.
Book a demo to see the report with your own channels.






