Google Ads for concrete contractors: the build order
Written for a concrete contractor who runs the estimates for residential flatwork, or the office manager who books the site visits. Service area, which calls count, keyword buckets, the negative list to load on day zero, ad groups, ad copy inside Google's character limits, how Local Services Ads changes the auction, and the weekly hour that keeps it honest, in the order you would build it.
Free30 minutesNo obligation
The short answer
To run Google Ads for concrete contractors, optimize toward a signed estimate with the deposit taken, valued at the quoted job — recorded in your job or estimating system (Jobber, Joist, JobNimbus) — rather than toward form fills or booked appointments. Planned, high-ticket residential flatwork, bought by homeowners who collect several estimates and weigh stamped concrete against pavers. The costliest mistake is treating every estimate request as the same conversion. Everything below is the build order, in the sequence you would actually work through it.
Written by Ariful Islam — eight years building Google Ads accounts and the conversion tracking underneath them.
Specific to Concrete
Google Ads for concrete contractors: buy driveway and patio estimates, not calculator searches
For a concrete contractor, split Search by work type (driveways, patios and decorative, leveling, repair), load DIY and material negatives on day one, and target the ZIP codes where you have poured before. Optimize to signed estimates imported from Jobber, Joist or JobNimbus with the quoted value, and plan budgets around the pour season.
Most searches with 'concrete' in them are not looking for a contractor. Homeowners price bags at the hardware store, work out yards with a calculator, rent mixers and look up how to resurface a patio themselves. The buyers you want type the job and the problem: driveway replacement, stamped patio, sunken slab, a sidewalk the city told them to fix. Build the account on those, and treat the bare word 'concrete' as something to block, not to bid on.
The work types are different businesses sharing one crew. A driveway tear-out or a stamped patio carries the year; mudjacking, polyjacking and crack repair are quick jobs that convert fast and pay little. In one campaign with one value, the quick jobs win the budget. Split them, pass the quoted value back from the job system, and give leveling its own tight service area and its own smaller budget.
The sale lags the click twice: the estimate is signed days or weeks after the visit, and the pour waits for dry weather and an open slot. Capture the click ID on the request, import the signed estimate as the conversion inside Google's window, and restate its value once the job is poured or cancelled. Jobber's request form reports to the Google Analytics property set inside Jobber, not through your site's Tag Manager, so check where those requests are really counted.
Search terms to start from
- concrete contractor near me
- concrete driveway replacement
- stamped concrete patio
- concrete patio installation
- concrete leveling near me
- mudjacking near me
- polyjacking
- sidewalk repair contractor
- garage floor slab replacement
- concrete resurfacing
Negative keywords
- concrete calculator
- bag of concrete
- concrete mix price
- ready mix delivery
- concrete mixer rental
- concrete jobs
- concrete finisher salary
- how to pour a concrete slab
- concrete supply
Symptom and fix
Five problems we get called in to fix
- 01
Google Ads shows a great cost per lead, and the estimator spends the week on sidewalk patches and leveling quotes.
What is actually happening
Every estimate request counts the same, so bidding finds the cheapest, quickest requests, and leveling and small repairs convert faster than driveways.
What fixes it
Campaigns split by work type, a minimum job size stated on the form, and signed estimate values passed back so a driveway counts for more than a crack repair.
- 02
Half the search terms are 'concrete calculator', 'how much is a yard of concrete' and bag prices.
What is actually happening
Broad match on 'concrete' matches DIY pricing, material delivery and tool rental, and nobody built a negative list for this trade.
What fixes it
A day-one negative list for calculators, bag mix, delivery-only, rental and how-to terms, reviewed weekly against the search terms report.
- 03
Google credits the campaign in March, and Jobber shows the jobs poured in May.
What is actually happening
The request is tracked when it happens, but the estimate is signed weeks later and the pour waits for weather, so the job never connects back to the click.
What fixes it
The click ID carried onto the Jobber client record, the signed estimate imported as the conversion, and the value restated when the job is poured or cancelled.
- 04
Every patio lead says they are also getting a quote for pavers.
What is actually happening
Patio keywords are shared with hardscapers and paver installers, and the ads and landing page never say why stamped or broom-finished concrete fits this buyer.
What fixes it
Separate ad groups for stamped and decorative patios, a page with finished patios, rough price ranges and the concrete-versus-pavers question answered honestly, and close rate tracked for patio leads.
- 05
The pour schedule is full until fall and the ads are still running.
What is actually happening
Spend is not tied to the pour calendar, and rain delays stack up jobs that were already sold.
What fixes it
Budgets cut when the schedule is full, next-season estimates offered with a deposit, and capacity checked in the weekly routine.
Read this before step one
Google Ads does not fail on its own. It fails on top of three things that were already broken.
- 01
Conversion tracking that reports the truth
If Google is counting form fills rather than a signed estimate with the deposit taken, valued at the quoted job, every bid it makes is aimed at the wrong outcome. First-party, server-side, joined back to your own system — not a browser tag that a consent banner or a cookie policy can silence.
- 02
A landing page that answers the search
One page for every ad group means the page answers a general question when the search asked a specific one. Google scores that as poor landing page experience and charges you more per click for it.
- 03
The right campaign for the goal
Performance Max on a broken signal spends faster and explains less. Search first, on a conversion you trust, then expand — in that order, because the order is not a preference.
Get all three right and the playbook below compounds. Get the first one wrong and everything below is executed perfectly in the wrong direction — which is the single most expensive thing that happens in this channel.
Not sure which of the three is wrong on your account? Send it over and we will tell you what it is actually reporting.
Free Google Ads + call tracking audit
What the free audit covers for concrete contractors
- The conversion bidding learns from: a signed estimate with the deposit taken, valued at the quoted job
- Whether your job or estimating system (Jobber, Joist, JobNimbus) reports back to Google Ads
- The costliest mistake: Treating every estimate request as the same conversion
- Search terms against 9 starter negatives
- Call tracking: which calls count, and which are counted twice
- Your account against the 15-step build order below
How it works
- 1Pick a 30-min slot
- 2Live session with Ariful
- 3Written audit in 24 hours
Free30 minutesNo obligation
Decide what counts as a conversion before you spend anything
For concrete contractors the conversion that matters is a signed estimate with the deposit taken, valued at the quoted job, and it lives in your job or estimating system (Jobber, Joist, JobNimbus) — not in the ad platform. Google can only optimize toward what you send it, so whatever you pick here decides what the algorithm spends the next ninety days chasing. Pick the wrong one and every later step in this playbook is executed perfectly in the wrong direction.
This is the step we get called about most. If you do not have a developer for it, that is the normal situation rather than the exception — it is most of what we do, and it is worth fixing before the spend rather than after.
Everyone agrees the real conversion matters and then optimises to form fills anyway, because form fills are the number that is already there. The wrong choice here is invisible for ninety days and then expensive.
Google will spend ninety days chasing whatever you tell it to count. That decision is made here, in five minutes, before any money moves.
- 01Write down the single event that means money: a signed estimate with the deposit taken, valued at the quoted job.
- 02Find where that event is recorded today. For most of this industry that is your job or estimating system (Jobber, Joist, JobNimbus).
- 03Check whether that system can be joined back to a click — a GCLID field, an email, or a phone number captured at the form.
- 04If it cannot, fix that before you launch. An account optimizing toward form fills is optimizing toward the wrong thing the moment the form is easy to fill.
- 05Set the conversion action to the real one, and mark every softer action as secondary so it reports but does not bid.
Turn off the three defaults before you turn the campaign on
Google enables these on every new Search campaign, and none of them are keyword decisions — they are switches on the settings screen that decide where the money goes before a single keyword applies. Everything else in this playbook operates on whatever is left after they have taken their cut, so a reader who skips this step spends the rest of it optimizing a remainder.
For Concrete · Target ZIP codes where you have poured before, inside the delivery range of your ready-mix plants, with presence-only location targeting. Put leveling and repair in their own campaign with a tighter area.
Half an hour of switches that decides where a year of budget goes — and it is the screen everyone skips because it looks like boilerplate.
Three switches decide where the budget goes before a single keyword is involved. All three are on.
| Setting | What Google defaults it to | Set it to |
|---|---|---|
| Networks — search partners | Included. Your ads run on sites that are not Google. | Off at launch. Add it back later, as its own campaign, when you can see what it contributed on its own. |
| Networks — display expansion | Included. A Search campaign quietly starts buying banner placements. | Off. Display is a different intent and a different campaign; mixing them makes both unreadable. |
| Locations — targeting | Presence or interest — people merely interested in your area count. | Presence only. Under Location options, choose people in or regularly in your targeted locations. |
| Audiences | Observation, which measures without restricting. | Leave on observation deliberately, not by accident. If you meant to narrow, you have to switch the mode. |
| Bidding | Maximize clicks, or a target set before any data exists. | Maximize conversions on the real conversion action. A target set on day one is a guess the algorithm will honor. |
Draw the service area around the jobs that pay, not a circle on a map
Concrete has a hard floor under the cost of every job: the truck, the crew, the forms and the pump or wheelbarrow access cost much the same for a small pad as for a long driveway. That makes distance cheap on a full replacement and ruinous on a small repair, and ready-mix has to reach the site before it starts to set, so the plants you buy from draw an outer line of their own. Draw the replacement area around where you have poured before, keep leveling and repair tight, and stop at the edge of your plants' delivery range.
The radius gets drawn from the office instead of from where the profitable jobs are, and nobody revisits it once the search terms report starts showing towns the crew refuses to drive to.
- 01Map last year's signed estimates by ZIP code from the job system before choosing targets
- 02Mark the delivery range of the ready-mix plants you use and exclude areas outside it
- 03Check the user-location report monthly for estimate requests from towns your crews will not drive to
- Driveway and patio replacement
- ZIP codes or towns where you have poured before, wider than repair, because the job pays for the drive.
- Leveling and repair
- Core ZIP codes only. Mudjacking, polyjacking and crack repair are quick jobs that cannot carry a long drive.
- Commercial and cutting
- Keep out of homeowner campaigns. Core drilling, sawcutting and commercial slabs come from general contractors and bid boards, not from residential searches.
Decide which calls count before Google counts all of them
Concrete leads split between calls and estimate forms, and plenty arrive as a text with a photo of a cracked driveway or a sunken step. None of them is the sale; the signed estimate is. The call conversion should mark a real flatwork enquiry with an address and a work type, and the signed estimate, imported from the job system, should be what bidding learns from.
Every call gets counted because that is the default, and by the time anyone listens to the recordings the bidding has spent a quarter learning from wrong numbers and supplier calls.
- 01Ready-mix suppliers, pump operators and equipment dealers calling the number in the ad
- 02Finishers and laborers asking about work, especially at the start of the season
- 03General contractors asking you to bid their flatwork or offering to sub out a job
- 04Callers who want a price per yard for material delivery only
- 05Past customers calling about sealing, a new crack or a warranty question on an old pour
- Count a call when
- The caller describes concrete work you do (a driveway, patio, slab, sidewalk or leveling job) at an address inside your area and asks for an estimate or a site visit.
- Minimum duration
- Start at 90 seconds. A real enquiry covers the address, what is being poured or lifted, roughly how big it is, and when the estimator can come out, which rarely fits in less. Move it if your recordings say otherwise.
- After hours
- Concrete is rarely an emergency, so overnight answering is not worth paying for. A fast callback the next morning is: homeowners gather estimates over a few days and favor the contractor who measures first. In pour season the owner is on a slab by dawn, so route daytime calls to whoever books estimate visits.
- Double counting
- A homeowner who texts a photo, fills in the Jobber request form and then calls is one lead. Use one call source in Google Ads, merge the contact in the job system, and import the signed estimate against the first click, not every touch.
Build the keyword list in four buckets, not one
One flat keyword list is why most accounts in this vertical cannot tell which half of the budget works. Sorting terms by the intent behind them means you can bid, write and judge each group on its own terms — a problem-aware search and a competitor search convert at rates that have nothing to do with each other, and averaging them hides both.
The list is easy to build and hard to bucket. Sorted by volume instead of by intent, it produces an account you cannot read six weeks later.
| Bucket | Terms to build on |
|---|---|
| DrivewaysReplacement and new driveways: the largest residential pour most crews do, researched for weeks and compared across several estimates. |
|
| Patios and decorativeStamped, colored and exposed-aggregate work, weighed against pavers by most buyers; priced above plain flatwork and sold on photos of finished jobs. |
|
| Leveling and liftingSunken slabs, sidewalks and steps lifted by mudjacking or polyjacking: quick, low-ticket jobs that convert fast and need a tight area. |
|
| Repair and resurfacingCracks, spalling, resurfacing and city-ordered sidewalk repair: smaller tickets, often the first visit before a replacement quote at the same house. |
|
Match types, and why exact has not meant exact since 2021
Exact match includes close variants — misspellings, plurals, reordered words, dropped function words. Phrase match now behaves roughly like the old broad-match-modified. Broad match reaches as far as Google judges useful, which with a good conversion signal is genuinely valuable and without one is an open tap. Start narrow, prove the signal, then widen — in that order, because widening is reversible and a mistrained bidding algorithm is not.
For Concrete · Broad match on 'concrete' drifts into calculators, bag prices, mixer rental and DIY videos. Keep driveway and patio terms on phrase and exact until signed estimates are importing.
Broad match added early, before the conversion signal is trustworthy, teaches the algorithm the wrong lesson faster than any other single decision in the account.
- 01Launch on exact and phrase only. You are buying data you can read, not volume.
- 02Give broad match its own campaign when you add it, so its spend and its search terms are separable from everything else.
- 03Keep 5 to 10 tightly themed keywords per ad group. When you want an eleventh, that is usually a signal to build another ad group instead.
- 04Do not add the same keyword in three match types in one ad group. Google picks by relevance, not by your match type ladder, and you are only making the report harder to read.
Load the negatives before the first click, not after the first invoice
Every vertical has a set of searches that look commercial and are not. In concrete contractors those are job seekers, students, people looking for free help, and DIY researchers. Broad and phrase match will find all of them for you. Add this list at the account level on day zero — the first week of an unfiltered account is the most expensive week it will ever have.
The starting list is the easy part. The list that matters is the one you build from your own search terms report every week, and that is the habit almost nobody keeps past month two.
- calculator
- bag
- quikrete
- sakrete
- home depot
- lowes
- ready mix delivery
- price per yard
- mixer rental
- saw rental
- concrete jobs
- finisher salary
- laborer
- how to pour
- diy
- countertops
- concrete sealer
- crack filler
- foam kit
- concrete supply
One ad group per intent, and no more than you can write ads for
Ad groups exist so the ad can match the search. The moment a group holds two intents, the ad has to be vague enough to cover both, and vague ads lose the auction on relevance before budget ever enters the picture. Build these groups, each with its own ads and its own landing page.
The structure is quick to draw and slow to serve: every ad group you create needs its own ads and its own page, so the build you sketched in an afternoon turns into a fortnight of copywriting.
- AG01
Driveway replacement
The highest-value residential pour, with its own budget, a wider area and a page of finished driveways with a rough price range.
- concrete driveway replacement
- new concrete driveway
- driveway tear out and replace
- concrete driveway contractor
- cracked driveway replacement
- AG02
Stamped and decorative patios
Photo-led ads and a page that answers concrete versus pavers, with stamped, colored and exposed-aggregate examples.
- stamped concrete patio
- concrete patio installation
- decorative concrete contractor
- exposed aggregate patio
- concrete pool deck
- AG03
Leveling and mudjacking
Quick lifting jobs with a lower value and the tightest service area, so they never set the bids for replacement work.
- concrete leveling near me
- mudjacking near me
- polyjacking
- slab jacking
- sunken concrete slab repair
- AG04
Sidewalks and steps
Trip hazards, city repair notices and front steps; small jobs that often lead to a driveway quote at the same address.
- sidewalk repair contractor
- sidewalk trip hazard repair
- concrete steps repair
- city sidewalk repair notice
- sidewalk replacement
- AG05
Slabs and garage floors
Garage, shed and patio-cover slabs; mid-size pours that need the base and access questions answered before the visit.
- garage floor slab replacement
- concrete slab for shed
- concrete slab contractor
- garage floor repair
- pole barn slab
Responsive search ads that the landing page can actually back up
Google rewards assets that match the search and the page behind it. It penalizes — and increasingly disapproves — copy that promises something the page does not deliver. Every line below is written to be provable on arrival. Character counts are shown because assets over the limit are rejected at upload, which is where most copied-from-a-blog ad copy dies.
Copy that is fine everywhere else is a policy problem here. In regulated verticals the claim has to be provable on the page it lands on, and a disapproval mid-flight stops the ad group dead.
- Concrete Driveway Replacement29/30
- Stamped Concrete Patios23/30
- Concrete Leveling & Lifting27/30
- Book an On-Site Estimate24/30
- Sunken Slab? We Lift It23/30
- Sidewalk and Step Repair24/30
- Written Quote Before Work25/30
- Decorative Concrete Work24/30
- Licensed in [STATE]19/30
- Concrete Crews in [City]24/30
- Cracked or sinking driveway? Book a site visit and get a written replacement quote.83/90
- Stamped, colored and exposed-aggregate patios. See finished work, then book an estimate.88/90
- Sunken slab or trip hazard? Ask about mudjacking or polyjacking before you replace it.86/90
- Now booking next season's pours. Reserve a date with an estimate and a deposit.79/90
What Local Services Ads takes from this auction, and when to run both
Concrete contracting is not on Google's US Local Services Ads category list, so there is no pay-per-lead box to buy and no LSA budget to split. Do not sign up under a near category to get in: the leads would be for that category's job types, and Google no longer credits leads for job types you don't service. The layer around your ads is the marketplaces (Angi, HomeAdvisor, Thumbtack, Yelp), plus Nextdoor recommendations, yard signs and trucks that send homeowners to search your name.
LSA and Search are reported in two different places, so the same customer gets counted twice and both channels look better than the bank account does.
- Local Services Ads
- Not available for concrete. The money that would go there belongs in Search and the Business Profile.
- Marketplace leads
- Angi and Thumbtack requests are often shared with other contractors and arrive through their own apps and proxy numbers. Log them as their own source in the job system and keep them out of any Google Ads upload.
- Brand searches
- Neighbors who saw a yard sign, a truck or a Nextdoor post search your company name. Keep brand separate so those signed estimates are not credited to driveway keywords.
Budget to the demand curve, and only bid on hours someone answers
Concrete follows pouring weather. In colder states the season closes with the first hard frost and reopens when the ground thaws, and rain pushes pours everywhere. Homeowners plan driveways and patios before the season opens, so the estimate calendar fills well ahead of the pour calendar, and a wet month moves revenue into the next one without any change in the ads.
Budgets get raised the week demand arrives, which is the week the account has the least room to learn and the office has the least capacity to answer.
- Ramp
- Start driveway and patio campaigns before the thaw so estimate visits are booked when the season opens, and taper once the pour schedule is full. Where the ground freezes, turn leveling and repair down over winter and run next-season booking with a deposit instead. In warmer states, run all year and plan around the rainy months.
- Dayparting
- Homeowners fill in estimate forms in the evening and call during the day. Bid for calls on the hours someone can book a visit, keep form campaigns running overnight, and pause call assets on pour mornings if the only person answering is finishing a slab.
Why the advertiser bidding the most is often third
Position is not bought, it is earned and then paid for. Google ranks you on your bid multiplied by how good it expects your ad and landing page to be, plus your assets — so a relevant advertiser at half the bid outranks a vague one, and then pays less per click at the same position. This is the mechanism underneath everything above: tight ad groups and honest ad copy are not tidiness, they are the discount.
For Concrete · Angi, HomeAdvisor and Thumbtack bid on the same terms and resell the request, and paver installers compete for every patio search. Win on work-type relevance and photos of your own pours.
Quality is treated as a score to chase rather than a diagnostic to read, so people optimise the number instead of the mismatch it is pointing at.
Position is not bought. A relevant advertiser at half the bid outranks a vague one — and then pays less for the click.
- 01Read Quality Score as a diagnostic, not a target. The 1 to 10 number is not what runs the auction; the three components underneath it tell you which of ad copy, keyword grouping or landing page is dragging.
- 02Ad relevance low? The ad group holds more than one intent. Split it.
- 03Landing page experience low? The page is not answering the search — usually because one page is serving every ad group.
- 04Expected CTR low? Your ad is not the one being clicked. Rewrite the headlines against the actual search terms, not against the keyword.
Bidding, and the point at which you are allowed to change it
Start on Maximize Conversions with a qualified estimate request as the primary conversion: an address in your area, a work type you do and a rough size. Import signed estimates with their quoted value from the job system inside the 90-day window, and move driveway and decorative campaigns to value-based bidding once they import steadily. Run leveling and repair as a separate campaign with its own lower value, so cheap, quick jobs never set the bids for driveways and patios. Smart bidding is a data problem before it is a strategy problem: with thin or wrong conversion data it will confidently optimize toward noise, and it does that faster than a manual account can lose money.
For Concrete · Bid on qualified estimate requests until signed estimates import from Jobber, Joist or JobNimbus with quoted values, then move replacement and decorative campaigns to value-based bidding.
A target set before the data exists is a guess the algorithm will honour to the letter.
What to judge, and when you are allowed to judge it
Most accounts are killed or rescued on evidence that could not have meant anything yet. The bidding algorithm is fitting a model, and a model fitted on two weeks of data is fitted on noise. This is the shortest honest schedule: what to look at each stretch, and — more usefully — what to ignore.
For Concrete · Read every request and listen to a sample of calls from each campaign in the first month. If many are material buyers, DIYers or out of area, fix the negatives and the form before judging keywords.
Accounts get killed on week-three evidence that could not have meant anything yet — and the replacement starts its own learning phase from zero.
The first month buys data. The second corrects for it. The third is the first one worth judging.
- 01Weeks 1–2 — watch search terms and nothing else. Add negatives daily. Cost per conversion at this stage is not a number, it is a rumor.
- 02Weeks 3–4 — the first real read on which ad groups get impressions. Pause nothing on conversion volume yet; fix relevance where the ad and the query disagree.
- 03Weeks 5–8 — conversion data starts to mean something. If you are near thirty conversions in thirty days, a target becomes an option. If you are not, the answer is a narrower footprint, not a lower target.
- 04Weeks 9–12 — the first period worth judging on cost per outcome. Compare against your own system, not the Google column, and expect the two to disagree.
- 05Only now: consider broad match, Performance Max, or a second market. Each of them needs the signal you spent the quarter building.
The weekly hour that decides whether this works
An account left alone drifts toward the cheapest clicks it can find, because that is what the system is built to do when nobody corrects it. This is the shortest routine that keeps it honest. It takes about an hour and it is the difference between an account that compounds and one that plateaus at month three.
For Concrete · Compare requests counted by Google with estimate visits booked and estimates signed in the job system, by work type. Pours pushed by weather belong in the notes, not in the verdict on a campaign.
This is the one that decides whether any of the above compounds, and it is the first thing to go the week you get busy. An account left alone drifts toward the cheapest clicks it can find, because that is what it is built to do when nobody corrects it.
- 01Search terms: concrete calculator, bag mix, ready-mix delivery, tool rental and DIY resurfacing searches turn up every week
- 02Estimate requests by work type and campaign, and how many were outside the area or below your minimum job size
- 03Estimates signed, average quoted value and pours pushed by weather, by campaign, from the job system
- 04Days from the estimate visit to the signature, so a slow close is not mistaken for a bad campaign
When Google Ads is the wrong answer here
Three situations where running this playbook will lose money. Read them before you fund the account, not after.
- You mostly pour commercial slabs, foundations for builders or sawcut for other contractors. That work is won on bid boards and relationships, and homeowner searches will fill the estimator's week with patios.
- Your pour schedule is already sold out for the season. Paid search buys estimate visits you cannot turn into pours this year, and homeowners will not wait for next spring.
- Your estimates live in a notebook with no record of who signed. Without signed estimates the account optimizes toward requests, which is how leveling quotes crowd out driveways.
Questions this raises
- Why does Google Ads show more leads than estimates we actually ran?
- Requests from DIYers, material buyers and out-of-area homeowners count the moment the form is sent, and so do repeat contacts from the same person by text, form and call. Filter requests by work type and address, count each homeowner once, and import signed estimates from the job system as the conversion bidding learns from.
- Should leveling and mudjacking share a campaign with driveways?
- No. Leveling jobs are cheaper, quicker and convert faster, so in a shared campaign they absorb the budget. Give them their own campaign, a tighter service area and a lower value, and keep driveway replacement and decorative work on separate budgets.
- How much should a concrete contractor spend on Google Ads?
- Start from the pours your crews can add this season, your average signed estimate in the job system, and what you can pay per signed job. Fund enough clicks to book that many estimate visits at your current close rate, and keep leveling and repair on a separate, smaller budget.
- Should concrete contractors bid on patio and paver searches?
- Bid on 'patio' with concrete-specific ads and a page showing stamped and broom-finished patios, and add 'pavers' as a negative unless you install them. A homeowner who has already chosen pavers rarely switches, and those clicks cost the same.
- Does Performance Max work for concrete contractors?
- Not until Search is judged on signed estimates. Optimized to requests, Performance Max finds the cheapest form fills, including material buyers and DIYers, on placements you cannot separate. Once estimate values import, test it on replacement work and judge it on signed jobs it adds.
What this costs you, in hours
Every step above is doable. Together they are a project with a tail. Nobody tells you this part, so here it is before you start rather than in month three.
So what should you actually do with this?
Three honest options. The first one is genuinely fine for a lot of businesses, and we would rather you picked it knowingly than drifted into it.
Run it yourself
Good if you have the hours and someone technical
- 25–32 hours to build, then 3–4 every week
- You end up understanding your own account, which is worth real money later
- The measurement step still needs a developer
- Your mistakes are paid for at auction prices while you learn
Hire a general agency
Good if you want it off your desk this month
- Fast to start, and most are competent at the campaign work
- Usually optimizes toward whatever is easy to count — the form fill, the booked call
- Reports come from the ad platform's own numbers
- The measurement problem stays yours, because it lives in your systems
Work with us
Good if the reporting has stopped matching reality
- We build the measurement first — first-party, server-side, joined back to your job or estimating system (Jobber, Joist, JobNimbus)
- Then we run the account on a conversion we can both check
- Reporting is against your numbers, not the Google column
- Eight years of this, and the tracking and the media are the same team
We are not going to promise you a number. Anyone who quotes you a return before seeing what your account currently reports is guessing, and the guess is always flattering. What we will tell you, for free and before any of this becomes a conversation about money, is what your account is actually measuring today.
Or we run it for you
Eight years of Google Ads, on top of tracking that reports the truth.
Everything above is doable, and none of it is the hard part — the hard part is doing it every week for a year while running the business it is meant to fill. That is the 3–4 hours a week you just read about, on top of the 25–32 to build it.
Most agencies will run the campaign and take your word for what a conversion is. We build the measurement first — first-party, server-side, joined back to your job or estimating system (Jobber, Joist, JobNimbus) — and then manage the account on a signal we can both trust. It is the same reason the playbook above starts with the conversion rather than the keywords.
- Account build or rebuild, structured the way this page describes
- Conversion tracking wired to your job or estimating system (Jobber, Joist, JobNimbus), not to form fills
- Server-side, first-party tagging so the signal survives the browser
- Landing pages that answer the ad, one per intent
- Monthly reporting against your own numbers, not the Google column
- The search terms report worked every week, not quarterly
The first conversation is a read of what your account is actually reporting. No deck, and nothing to sign to get it.
- Agency since 202210-person team
- 300+ clients1,000+ projects
- CertifiedGoogle Ads · GA4 · Meta
