Skip to content

How to Show a Client What His Ads Returned

Give the client the number he cares about: jobs booked and the money left after the sub and the ads. Show it next to the platform report, and end with a one-line text message.

How to prove marketing ROI to clients: give the shop owner one number he already cares about: jobs booked and the money left after the sub and the ads. Not clicks, not impressions. Show the same month in two ways, his and yours, and end with a text message he can read in ten seconds. This guide is for the freelance Google Ads or LSA person who runs ads for a few home-service shops.

The Question Your Client Is Really Asking

When a shop owner asks "is it working?", he is not asking about click-through rate. He is asking "did I make money on this?". AgencyAnalytics' 2026 benchmarks (494 agencies) found 55% of agencies say clients now regularly ask them to clearly connect marketing performance to revenue, while only 11% to 12% of delivered reports prioritize revenue or ROI. That is a gap between the question and the page.

The gap is not a sign of bad work. Platform reports cannot answer that question, because the platform never sees the job. You can close the gap, and doing so makes your good work visible.

Databox and ZenPilot's 2022-23 survey (241 agencies) found agencies rated 90% of their own staff data-proficient but only 10% of clients, and spent 50% of reporting time explaining data. A client who cannot read a chart is not a client who does not care. Speak in jobs and dollars.

How to Prove Marketing ROI to Clients: Two Reports

Example, with made-up numbers. One garage door client, one month, $4,000 of ad spend.

The platform reportThe outcome report
520 clicks, 70 calls, $57.14 per call$4,000 spent, 16 jobs booked, $250 a booked job
Click-through rate, impression share12 jobs paid, $14,400 collected
"Performance is strong"$7,200 left after parts and the sub, $3,200 left after the ads

The first report is true and does not help him. The second helps him decide. If the month had gone the other way, say only 5 paid jobs and $1,000 lost, the second report would show that too. That is the point. A report that can only say good news is not trusted.

The Hard Part: You Do Not Have the Job Data

You see spend and calls. The client sees jobs and cash. The outcome report needs both sides. Ways to get the job side:

  • The client sends you a monthly list of jobs: phone, date, status, amount collected.
  • The client keeps his jobs in a tool you can both see.

Ask for it in plain words: "Send me last month's paid jobs with the phone number and the total, and I will tell you what the ads returned."

A Worked Join, Row by Row

Here is the join in miniature. Example, with made-up numbers. Four calls came off ad clicks, and the client opened four tickets.

CallPhoneTimeHas click ID
A555-0101Mon 9:02Yes
B555-0102Mon 14:20Yes
C555-0102Wed 8:10Yes
D555-0103Thu 11:45No
TicketPhoneOpenedPaidJoins to
1555-0101Mon 9:15$380 (left $190)Call A
2555-0102Wed 8:30$1,200 (left $600)Call C, the nearest in time
3555-0103Thu 12:00$0, cancelledCall D, but no click ID
4555-0199Fri 9:00$500 (left $250)No call from that number

Call B has the same number as ticket 2, but call C is nearer in time to the ticket, so ticket 2 takes call C and its click. One click is never counted on two tickets. Three tickets are booked jobs with a call: 1, 2 and 3. Two of those have a click ID and were paid: 1 and 2. They left $190 and $600, so $790. If the ads cost $600 for these four calls, the answer is $190 left. Ticket 4 is a paid job the ads cannot claim. It goes under another source, and honest reports say so.

What You Can and Cannot Claim

  • You can claim the jobs that joined to a click, and say they are a minimum.
  • You can claim the price of a job: spend divided by those jobs.
  • You cannot claim the customer who saw the ad, searched the name and called the Business Profile. He is real, and you cannot show him.
  • You cannot claim that a better month came from your changes unless you changed one thing at a time.

How to Build It by Hand

  1. Pull the spend. Google Ads cost for the month.
  2. Pull the calls. From your call tracker, with number, time and click ID.
  3. Get the client's job list. Phone, date, status, collected, parts, sub cut.
  4. Join on phone number and time. Each job takes the call from its number nearest in time. One call, one job.
  5. Count the booked and paid jobs that joined to a paid click. Add up what they left.
  6. Write three lines. Spent, booked and cost per job, left after the ads.

Be plain about coverage. Some calls carry no click ID: a number on a van, a Business Profile call. Say what share, so the number is read as "at least". Do not claim credit you cannot show.

Frame it as the gap between a question and a page, never as a threat. Do not write "or you will lose clients". There is no evidence that proof alone keeps a client, and it reads as pressure.

The Text Message

The deliverable that survives the conversation is not another PDF. It is this:

Example

"October: $4,000 in ads, 16 jobs booked, 12 paid. $250 a booked job. $3,200 left after parts, the sub and the ads. Best ZIP: 62701."

Send it on the first of the month. Attach the full report for anyone who wants it.

Where the App Does It

HeadHoncho does the join. Connect the client's Google Ads account in Sources and their jobs live in the same place. The Reports tab has The Month, which puts spend, calls, leads, revenue and what the company kept, with the previous period beside each figure, on one page. Google Leads Attribution by Campaign prices each campaign. Every client on one page shows what each client kept per ad dollar. Download any of them as a PDF or CSV. See the Reports catalogue and Statistics.

When you also turn on Send Booked Jobs to Google Ads for a client, Google bids on paid jobs, and your next report has better inputs. The pitch to freelancers is on For Agencies. To learn the reading first, take How to Read Your First Report.

Related: Client Reporting for Home-Service Shops, Cost Per Booked Job and Tracking a Lead All the Way to the Job.

Week One With a New Client

  1. Ask for access to his Google Ads account at the right level, and to his call numbers.
  2. Check auto-tagging. If it is off, nothing downstream works. Turn it on and write the date down.
  3. Check the click ID reaches his calls. Click your own ad, call, and look for the ID on the call.
  4. Agree the job list. What, when, how, in ten minutes a month.
  5. Agree the definition. A booked job is a job with a name, a phone and an address. Paid means money collected.
  6. Do a first report on last month. It sets the baseline and shows the client what you will send.

Two Sources in One Report

If a client also runs Local Services Ads or a directory, keep each source apart in the report. Do not divide one source's spend by all the jobs. Give each its own spend, its own jobs and its own price per job, and a total at the bottom. The client gets one page and nothing is double counted.

Words to Use and Words to Skip

SaySkip
Jobs booked, jobs paidConversions
What a job cost to bookCPA, CPL
What was left after the adsROAS
At least, because some calls carry no clickAttributed revenue

If a number needs a glossary, it is the wrong number for the first line. Use the term on the second line, where the curious client can look it up in the ROAS entry or the cost per lead entry.

A Month in Three Versions

Show the client what each kind of month looks like in the outcome report. Examples, with made-up numbers. Each month spent $4,000, and a paid job left $600 before ads.

A good monthA flat monthA bad month
Jobs booked1696
Jobs paid1274
Left before ads$7,200$4,200$2,400
Left after $4,000 of ads$3,200$200-$1,600
Cost per booked job$250$444$667

The flat month is the useful one. It looks like "fine" on a platform report. In jobs it barely broke even. That is a conversation worth having.

How to Talk About a Bad Month

  1. Lead with the number. "October left minus $1,600 after the ads."
  2. Say what you checked. Tracking intact, coverage steady, calls answered.
  3. Say what you know and do not. "We had 6 jobs from 50 calls. Where the other 44 went, I cannot see from my side."
  4. Ask for the one thing. "Can you tell me how many of those 44 you reached?"

That last step matters. Many bad months are lost at the phone, not the ad. Invoca's 2026 benchmarks (more than 70 million calls) found only 52% of inbound calls to home-services businesses are answered by a person. You cannot fix that from the ad account, but you can name it kindly.

What You Can Promise, and What You Cannot

  • You can promise a monthly number in jobs and dollars, with its limits stated.
  • You can promise to say when you cannot tell.
  • You cannot promise a result. Say what the number says.

Ten Minutes a Month From the Client

The report only works if the job side arrives. Make it easy: one message on the 1st, one list back by the 3rd. Ask for phone, date, status, the total, and the sub's cut. If the client keeps jobs in HeadHoncho, they are already there.

Questions Freelancers Ask

What If the Numbers Are Bad?

Show them anyway, with the check on why. A bad month you can explain keeps trust better than a good month you cannot. HeadHoncho reports what made money and what lost it. It does not tell you how to fix the ad.

What If the Client Will Not Share Jobs?

Start with calls and cost per call, and ask for one thing: how many of the calls became paid jobs. Even a rough count moves the conversation to jobs.

Under five minutes, all in. No credit card required.See it with my jobs