Roofers working on a residential roof
Case study · Google Ads takeover

Six tracked leads in our first month. Twenty-six in the next.

A residential and commercial roofing contractor in Orange County, California, with a Google Ads account that had been counting page views as leads. We are publishing the slow first month as well as the good one, because the reason it was slow is the most useful thing on this page. Latest window: 22 August to 20 September 2026.

Matches the call-tracking log: 29 calls, 20 callers Search campaigns only, Local Services Ads excluded
The latest 30 days, 22 August to 20 September

26 new leads, up from 6 in the 30 days before

A lead is a first-time phone call, a text, a call made from the ad, or a submitted form. Repeat calls from the same person are tracked and left out.

26new leads

19 first-time calls, 4 texts, 2 forms and 1 call from an ad.

$239cost per lead

Down from $570 in our first 30 days. $6,206.76 divided by 26.

20distinct callers

29 tracked calls in total, from 20 different people.

7.3%click-through rate

Up from 4.9 percent the month before, on 2,706 impressions.

Google Ads records 19 first-time calls and 10 repeat calls for this window, 29 in total, which is exactly what the call-tracking log shows. Spend also went up, from $3,419 to $6,207, because a new campaign was added. Roofing clicks here averaged $31.35, so this is an expensive auction and we are not presenting $239 as cheap. It is what a lead costs in this market once only real contact is counted.

Where it started

Twenty-one conversion actions, all marked primary

Our audit in July found an account that could not tell a roof estimate from a page view. Twenty-one different actions were switched on as primary conversions at the same time, several of them overlapping, so one phone call could be counted two or three times and somebody glancing at a menu page counted the same as a homeowner asking for a quote.

21primary conversion actions

Including page views and map directions. Bidding was optimising toward noise.

1 to 3Quality Scores on the main keywords

Which roughly doubles what each click costs for the same position.

19%of local demand reached

The Search campaigns were appearing for about one in five of the searches available to them.

Because of the double counting, conversion figures from before the takeover cannot be trusted in either direction, so this page does not compare against them. The comparison is our own first 30 days against our next 30.

The slow start

Why our first 30 days produced six leads

We rebuilt the Search campaign and it went live on 27 July. Over the next four weeks it spent $3,419 for 6 tracked leads, $570 each. That is not a result anybody would publish, and the cause was ours to find.

The calls were happening, but the account was not allowed to learn from them. The contact goal was not set as biddable on the new campaign, and one call asset pointed at a conversion action that no longer existed. Google was spending the budget with nothing telling it which clicks had turned into a phone call.

We found it in the last week of August, fixed the goals and repointed the call assets, and the account began optimising toward phone calls for the first time. Weekly leads went from between 0 and 3 to between 4 and 11.

What we changed

Five changes behind the second month

Listed in the order they were made.

Cut 21 primary conversion actions down to real contact

First-time calls, texts, ad calls and form submits stay primary. Page views, map directions, button taps and repeat calls are still recorded, and no longer steer the bidding.

Made phone calls a biddable goal on every campaign

The fix described above, completed between 27 and 31 August. It is the single change that moved the numbers most.

Built a metal roofing campaign

Live from 20 August. Metal and standing seam roofing searches are a separate, higher-value buyer with far fewer advertisers. The campaign holds a 77 percent impression share and a 10.2 percent click-through rate.

Removed a county that had never produced a lead

The account was also targeting Ventura County. In 90 days it took $942 and returned no leads at all, so on 9 September four Ventura County locations were removed and the money stayed in Orange County.

Kept the negative lists honest

Competitor names and out-of-area cities were leaking through the existing negative lists. Search terms are now reviewed weekly and blocked as they appear.

Week by week

New leads per week since the takeover

Monday to Sunday, first-time calls, texts, ad calls and forms. The red bars are our first five weeks.

220 Jul
227 Jul
03 Aug
110 Aug
317 Aug
524 Aug
431 Aug
57 Sep
1114 Sep

Weekly Search spend over the same nine weeks ran from $329 to $2,191. The week of 14 September is the first with the metal roofing campaign, the goal fix and the Ventura removal all in place together.

From the call-tracking log

What the 29 calls were searching for

Every tracked call in the window, grouped by the keyword that produced it. Caller details are not published.

What they searchedCallsShare
Metal roofing searches1138%
Orange County roofing company searches931%
The company's own name621%
Roof inspection searches13%
No keyword recorded27%
All tracked calls29100%

Metal roofing is the finding. A campaign that did not exist five weeks earlier produced more calls than the general roofing campaign, from six different callers, on $2,367 of spend. Six calls came from people searching the company by name, which a brand campaign protects cheaply and which we do not count as demand we created.

The honest part

What we do not know yet

No revenue figure appears on this page

Signed roofing jobs are not imported back into the account yet, so there is no return on ad spend here and no cost per booked job. A roof is a large sale with a long decision, and one month of calls says little about signed contracts.

The general Orange County campaign is still the weak point. It holds a 32 percent impression share and loses roughly a third of its available searches to budget and another third to ad rank, at the highest cost per click in the account.

Form fills on the newer landing pages were not reaching Google Ads for part of this window, so the true lead count is probably slightly higher than 26. We have published the lower figure.

Straight answers

Questions about this case study

Why publish a first month that went badly?

Because it is the most common thing that goes wrong in a Google Ads account and most owners never find out. The ads were running and the phone was ringing, but calls were not set as a goal the campaign could bid toward, so Google had nothing to learn from. Once that was fixed, weekly leads went from between 0 and 3 to between 4 and 11.

Is $239 a good cost per lead for roofing?

It is what this market costs. Roofing clicks in Orange County averaged $31.35 in this window. We do not claim it beats a benchmark, and without signed-job data we do not claim a return. It is down from $570 in the previous 30 days.

Why does the page say 26 leads when there were 29 calls?

The 29 tracked calls include 10 repeat calls from people who had already called. Nineteen were first-time callers. Adding 4 texts, 2 forms and 1 call made directly from an ad gives 26 new leads.

Are Local Services Ads included?

No. The company runs Local Services Ads in the same account and we do not manage them. Every figure here is Search campaigns only.

Why was metal roofing given its own campaign?

Because it is a different buyer. Somebody searching for a standing seam metal roof has already chosen the product and is looking for an installer, and far fewer roofers advertise on those terms. It produced 11 of the 29 tracked calls.

Is the client named?

No. The page publishes their ad spend, so the company is described by trade and area only. Caller names and numbers from the call log are not published anywhere.

Paying for clicks and not sure what they turn into?

Send us read access. We will show you what your account is really bidding toward, which areas and services have never produced a lead, and what it should cost you to fix.

Book a Free Call

See the other case studies