Setup
Google Ads for a service business: end-to-end setup
In 98 days: a new website, Google Ads, call tracking, CRM attribution. 107 confirmed orders, 3.4× revenue-to-ad-spend — for a textile service business in 2 cities. Median sales cycle: 14 days (not the 4–8 weeks we expected).
This case study is for you if...
See yourself in this? Keep reading: this case study shows the solution.
About the project
Service business in the textile solutions niche (curtains, tulle, roller blinds)
Service business in the textile solutions niche (curtains, tulle, roller blinds) — 2 physical showrooms, a "measurement-to-installation" model
Challenge
The client came without any digital presence to support paid ads. There was an old brochure website that didn't convert. No CRM attribution, no call tracking, no offline conversions. A service model with a long sales cycle made measuring ROI impossible.
Goals
What can go wrong here
And why most contractors get it wrong
Service model ≠ e-commerce
In e-commerce a purchase is logged on the site automatically. In a service business the customer calls, comes in for measurement, thinks for a week, and only then pays. Standard tracking doesn't see this — Google Ads optimizes for clicks, not real sales.
2 cities = 2 different markets
A single campaign for two cities is a mistake. Customer behavior differs: in the larger city people look for premium and aesthetics, in the smaller one for price and speed. A shared campaign means a weak message for both.
Old site vs a new site built for ads
An old brochure site is good for brand, but not for Google Ads. No inquiry form, no UTM handling, no segmented landing pages, slow to load. Ads bring traffic but it doesn't convert.
CRM without discipline = illusion of data
Before the launch, managers filled in "deal amount" for 6% of cases. Revenue technically existed, but it couldn't be measured — which means it couldn't be optimized.
What was done
New website with intent routing
Replaced the old brochure site with a custom WordPress theme. One site with segmented landing pages for each campaign (instead of 2–3 separate sites). Intent routing via ACF.
Google Ads: 4 campaigns across 2 cities
4 search campaigns: Core+Systems Lviv, Core+Systems Khmelnytskyi, Brand UA, Lviv Maps Local. Different strategies for different markets — Lviv premium, Khmelnytskyi pragmatic.
Call tracking: every call has a source
Connected a number-substitution service (Ringostat). Now every call is logged in CRM automatically with: which ad brought the customer, which keyword they searched for, which city. No more "unknown source" calls.
Google Ads sees real sales, not clicks
Set up automated data push from CRM to Google Ads: when a deal closes, the ad platform learns which inquiry became a sale. The algorithm no longer optimizes for "many cheap clicks" — it searches for customers who actually buy.
A CRM where revenue is visible on every order
Added a mandatory "deal amount" field to the order card. Before, managers filled it in for just 6% of deals — now it's 100%. For the owner this means concrete monthly revenue is visible, not a list of closed leads without numbers.
What I did differently
Two cities, two strategies — not one
Customer behavior in the larger city differs from the smaller one: some look for aesthetics and premium, others for speed and price. That's why each city got a separate Google Ads campaign with its own keywords, ad copy, and landing page. A single "shared" campaign would have produced weak results for both.
Tie ads to real money, not clicks
Google Ads optimizes by default for what it "sees" — clicks and on-site forms. For a service business that's not enough: the customer calls, comes in for measurement, thinks for a week. We built full chaining: call → CRM → closed deal → signal back to Google Ads. The algorithm now looks for buyers, not clickers.
Numbers that speak for themselves
Before and after
"We need to move toward Google — that's what's actually delivering results for us. Numbers don't lie." And later: "Overall I like how we're moving — I understand everything takes time." — owner of the service business (2 cities, Ukraine), from chat messages February–March 2026. Shared with permission; identifying details removed.
Checklist: how to launch Google Ads for a service business
Step-by-step infrastructure for a service model: site → ads → call tracking → offline conversions. Based on a real case with 3.4× revenue-to-spend.
- PDF, 3 pages — from site to offline conversions
- CRM field template for attribution
- No signup, no spam
FAQ
How to measure Google Ads ROI for a service business?
You need a chain of four tools: Google Ads + a call tracking service (Ringostat, CallRail, CallTrackingMetrics) + CRM + an offline conversions mechanism. When a customer calls or submits a form, the system remembers which ad brought them in. When the deal closes in CRM, a signal is sent back to Google Ads. The algorithm starts optimizing for real sales, not clicks. In this case, revenue in CRM reached 3.4× the ad budget in 98 days.
How long does end-to-end digital setup for a service business take?
In 98 days (14 weeks) you can build the full infrastructure from scratch: new site, Google Ads campaigns, call tracking, offline conversions, CRM discipline. The first measurable ROI appears in month two, stable results in month three.
Do I need a separate landing page for Google Ads?
Paid ads need segmented landing pages for specific intents, with an inquiry form, UTM persistence, and load time under 2 seconds. Old corporate sites often lack all three. In this case, the new site lifted conversion and produced 107 orders in CRM.
Can I run Google Ads in multiple cities at the same time?
Yes, but with separate campaigns per city. Different cities = different customer behavior, different search queries, different CPC. In this case, two cities with distinct strategies produced a 9% CTR and allowed budget to be allocated to the more efficient market.
Ready for growth?
Let's discuss your project and find the solution that works for your business.