What we have done in ads, measured on completed revenue.
Two home-service companies, shown as examples, one measurement layer. Every ad dollar below sits in one spend table keyed by date, channel and campaign; every phone call is classified and tied to the customer it won; every completed job is read from the operating system on the day it finished. This page is the paid-search story for both: Google Ads Search, Performance Max and Smart campaigns, plus Google Local Services Ads, month by month.
Read from production 30 October 2026. October is a partial month. Revenue is pre-tax, counted on the day the job completed.
Spend
Pulled hourly from the Google Ads and Local Services APIs into one table. Local Services charged-lead cost lands in the same table, so it carries a real cost per customer instead of living in its own dashboard.
New customers
Inbound calls whose caller had never contacted the company before, attributed to the channel that rang the phone. Cost per new customer is spend divided by this count.
Attributed revenue
Completed-job revenue credited to the channel of the customer's first call. Revenue with no attributable call stays visible as Direct / unattributed. It is never forced onto a paid channel.
We did not buy the growth. We moved the money.
Bluefrog started with this Garage Door Company in mid-February 2026. The ad budget stayed roughly where it was; the mix changed. Google Smart campaigns that were buying the wrong thing were turned off, Local Services was scaled, and real Search and Performance Max campaigns were launched in September and October. Monthly completed revenue went from $118,761 in January to $240,964 in September.
2026 year to date, 1 January – 30 October. "All revenue per ad dollar" divides every completed dollar by paid media; "attributed" counts only revenue whose customer first called from a paid channel.
Monthly paid media spend by channel
January 2025 – October 2026. Google Ads cut from $100K (2025) to roughly $58K (2026); Local Services up 2.3×.
Table view
New customers won by paid channel
First-time callers per month, 2026. Google Ads new customers rose from 17 in January to 83 in October after the Search launch.
Table view
Completed revenue by first-touch channel
Thousands of dollars per month, 2026. Direct / unattributed is shown, not hidden.
Table view
Paid-attributed revenue per ad dollar
Each month's paid-attributed completed revenue divided by that month's spend. Strict basis: first-touch paid customers only.
Table view
What we did, and when
- Feb 2026Took over the account. The "air conditioning repair nearby" Smart campaign, running inside a garage door account, was ended on 18 February.
- Mar – AugShifted budget to Local Services. LSA went from $5K a month to $15K by August while Google Ads held under $6K. Local Services won 112 to 202 new customers a month.
- 27 AugLaunched Performance Max for the door business — the first Google campaign in the account built around door work rather than a keyword theme.
- 1 SepLaunched the first real Search campaign (Oklahoma City – Search 2), followed by a second Search campaign on 7 October.
- 19 OctEnded the "Edmond and NW Oklahoma City" Smart campaign — its search terms were HVAC and plumbing, not doors. $35.7K had gone through it since January 2025.
- Oct 2026Google Ads new customers 83, up from 17 in January, with $32K of October completed revenue traced to a Google Ads first call.
Every campaign in the account
Spend and clicks, 1 January 2025 – 30 October 2026. Smart campaigns are Google's automated format; the two Search campaigns and Performance Max are Bluefrog's.
Local Services is one system-generated campaign, so it appears as a single line. "Garage door openers" is a Smart campaign labelled by name only; its search terms are generic door shopping.
Four trades, two states, one spend table.
Bluefrog took over this HVAC Company's Google Ads account on 27 April 2026 and scaled Local Services from May. Performance Max campaigns for Edmond, Oklahoma City and Norman launched in mid-June; dedicated Search campaigns for Edmond, OKC and Norman followed in September, and trade-specific plumbing and electrician Search campaigns in October. Every campaign is read for the trade it sells, so plumbing spend is held against plumbing revenue.
May – October 2026, the like-for-like window since Bluefrog took the account over. Google Ads spend before 27 April was not in our record, so earlier months cannot be measured on the same basis. Facebook lead forms and the OpenAI Ads pilot ($4.2K combined) are excluded from paid media here.
Monthly paid media spend by channel
January – October 2026. Search carried May; Performance Max carried the summer; Search was rebuilt around Edmond, OKC, Norman, plumbing and electrical from September.
Table view
New customers won by paid channel
First-time callers per month, 2026. Google Ads new customers went from 80 in April to 689 in July.
Table view
Completed revenue by first-touch channel
Thousands of dollars per month, 2026. Google Ads first-touch revenue reached $542K in September.
Table view
Paid-attributed revenue per ad dollar
Each month's paid-attributed completed revenue divided by that month's spend, May – October. HVAC is seasonal; July and August are peak.
Table view
What we did, and when
- 27 AprTook over Google Ads. The brand HVAC Search campaign carried $41.6K in May, the first full month, and Google Ads new customers jumped from 80 to 293.
- May – JulScaled Local Services from $2.4K to $36.9K a month and added a second Local Services account on 8 June. LSA new customers went 23 → 142 → 442.
- 16 – 17 JunLaunched Performance Max for Edmond, Oklahoma City and Norman — $111K through October, the summer's largest channel.
- 10 AugPlumbing Performance Max launched so plumbing spend is bought, and measured, on its own.
- 4 SepRebuilt Search by city: Edmond, OKC and Norman Search campaigns. September Search spend $21.4K; Google Ads first-touch revenue $542K.
- 5 OctTrade-specific Search: "Plumbing | OKC Search" and "Electrician | OKC Search" so each trade carries its own cost per customer.
Every campaign in the account
Spend and clicks, 2026 through 30 October.
Two Local Services accounts roll up under the HVAC Company (Oklahoma and Texas). Facebook Leads (via an agency partner) and the OpenAI Ads pilot are listed for completeness and excluded from the paid-media totals above.
Where every number comes from.
One spend table, no double counting
Spend is keyed by company, date, channel and campaign. A hand-entered row and the connector's later pull share the key and overwrite each other, so the same dollar is never counted twice. Spend with no attributed revenue, and revenue with no spend row, are both reported rather than dropped.
First-touch attribution, labelled honestly
A customer is credited to the channel of their first inbound call, and their later completed jobs stay with that channel. Where the published phone number serves the website, Local Services and Google Ads alike, channel is resolved by timestamp and caller-ID matching against the ad platforms' own call records, which is why a share of revenue stays Direct / unattributed.
Revenue, counted on completion
Completed revenue is the pre-tax total of job-attached invoices, counted on the day the job completed. Open estimates are not revenue. The HVAC Company's 2026 months reconcile to ServiceTitan's own campaign-performance report within about 3%.
What is deliberately not claimed
No search-ranking results. No Google Ads conversion counts — platform conversions are not the measure here. No 2025 revenue for the HVAC Company (the record starts in 2026). Its Google Ads spend before 27 April 2026 is outside the window because it was not in our record.
AI is easy to access. Making it useful is hard.
Bluefrog makes AI useful by integrating it with the way your business actually works — your software, your calls, your customers, your marketing and your revenue.
Technology development since 1997 · AI integration platforms since 2001