Skip to main content
Google Ads Autopilot

Google Ads for auto shops that answer to your invoices.

Google Ads for auto shops, tied to the money: spend traced to booked jobs and settled invoices, then fed back so Google learns what pays.

Read-only connection, Audit and ROI report included, no add-on, Autopilot itself is the add-on

One click followed all the way round: a Search campaign spending $38.20 of its $45 day, the click it bought landing on the shop's own booking page with its click id in the URL, that becoming Priya Sandhu's lead while Google records only a form fill with no value, an approved $1,899 Full Front PPF quote and a Thursday drop-off in Bay 2, the invoice settling at $1,899, and the click id and that value going back to Google beside the campaign's own row — $1,240 spent, 38 leads, 9 booked, $138 a job.

Illustration. Product demonstration with sample data.

The short answer

How should an auto shop measure its Google Ads?

On booked jobs and money that settled, not on clicks or form fills. Because the same system holds the ad spend and the invoice, a campaign can be read all the way through: what it cost, which leads it produced, which of those were booked, and what those jobs were worth.

  • Spend, leads, booked jobs and settled invoices are read as one chain rather than four reports.
  • What actually paid is sent back to Google, so bidding learns from revenue instead of form fills.
  • A free audit reads the account you already run, read-only, before anything changes.
  • Every automatic change is written down first and graded a week later against cost per booked job.
  • Campaigns are created paused
  • Your daily ceiling, never crossed
  • You approve every keyword
  • Suggestions-only by default
  • EXACT and PHRASE keywords — never broad
The black box

“Google says 40 conversions. I did 6 jobs.”

Google can only count what it can see: a form filled in, a button tapped, a call started. It has no idea which of those became a car in your bay and an invoice you were paid for.

So it optimizes for the wrong thing. It goes and finds you more form fills — more tire-kickers, more price-shoppers, more people who were never going to book — because that is the only signal you ever gave it.

Meanwhile you are the only one who knows which click turned into a $3,400 full-front job. That information never gets back to Google. Until now.

What Google counted vs what you got paid forIllustrative example
Google conversionsBooked jobs (your invoices)
One campaign, one month
0
0

An illustration of the gap this page is about — the shape of the problem, not a measured customer average. Both bars are replaced by your own numbers.

What Google counted vs what you got paid for
ItemGoogle conversionsBooked jobs (your invoices)
One campaign, one month406
The mechanism

Your invoices teach your ads.

We have no case studies to show you yet, so here is the thing you can check instead: exactly how it knows. Four steps, and a return leg nobody else in this trade can build.

  1. Every click is remembered

    Someone taps your ad and lands on your booking page, a lead form or a landing page we built. The click id and campaign ride along and get stored with the lead. Nothing to install, no third-party script in your customer's browser.

  2. The job runs like any other

    Quote it, schedule it, do the work, invoice it. You change nothing about how you operate — the chain from lead to quote to job to invoice is the one you already use every day.

  3. The money goes back to Google

    When the invoice is paid we send that click's real value — the ex-tax subtotal you were actually paid, the same figure your Reports page counts — back to the ad account as a conversion.

  4. Bidding starts chasing jobs

    With paid invoices as the conversion signal, value-based bidding can hunt for the clicks that look like your best jobs instead of the ones that look like form fills.

And then it goes round again. An agency can't do step three — it doesn't have your invoices. Your shop software can't do step four — it has no ads engine. Closing this loop needs one system that owns the lead, the booking, the job and the invoice. That is the whole argument, and it is structural, not a claim about results.

Start here

Before you change anything, find out what's leaking.

Connect the Google Ads account you already run and Service VIN reads what's there — every campaign, every keyword, roughly 2 years of spend — then tells you what's wrong with it in plain English, with the numbers behind every word.

app.servicevin.com/ads/auditSample data

Account audit

Last 90 days · read from your own account history

Quantified monthly waste

$988

  • CriticalBudget on a campaign with no booked jobs$849/mo

    PMax — All services spent $2,510 over 212 clicks in the last 90 days and produced no booked job we can trace to it.

  • WarningSearch terms with clicks and no conversions$139/mo

    11 terms took 148 clicks and $410 between them on Search — PPF Toronto. Worst three: “ppf installer jobs”, “paint protection film how to”, “cheap clear bra free quote”.

  • WarningBroad match running with almost no negativesNot counted twice

    $780 of broad-match spend behind 4 negatives. These are the same dollars the finding above already claimed, so they are reported here and added once.

  • Not enough data yetSearch — Window Tint

    Spent $61 on 9 clicks — under the floor where we'd call anything a loser. Too early to judge, so we're not judging it.

Sample dataOn your account every figure is arithmetic over your own rows, which means you can check all of it inside Google Ads.

13 checks, and none of them guess.

The audit touches no Google API at all — it reads the account history already imported, which is why it still works on an account whose access has lapsed.

Carries a $ figure

Budget on a losing campaign

Real spend, real clicks, and not one booked job we can trace over the window.

Carries a $ figure

Search terms that never book

The actual phrases people typed that took clicks and produced nothing — with the top offenders listed.

Carries a $ figure

Broad match with no negatives

Broad keywords spending real money behind a handful of negatives, or none at all.

No conversion tracking at all

The account spent and clicked and recorded zero conversions — it is flying blind.

Booked-job feedback not live

Your invoices aren't reaching Google yet, so bidding still can't tell a quote request from a paid job.

Auto-tagging switched off

Click ids never reach your CRM, so nothing you spend can ever be traced to a car in the bay.

Spend nothing can be matched to

The share of account spend running through campaigns that produced no lead we can name.

One ad in an ad group

Nothing to rotate, nothing to compare, nothing for Google to learn from.

Missing sitelinks and callouts

Free space on the results page a spending Search campaign is leaving empty.

A landing page we can't attribute

Paid clicks going to a page that carries no tracking, so the leads it makes can never be tied back.

Search partners or display on

A Search campaign quietly buying traffic from somewhere else entirely.

A campaign starved of budget

One that books work below your own cost per job and hits its cap nearly every day.

Targeting far wider than you serve

A radius — or a whole country — well past where your jobs actually happen.

Why only 3 of them carry a dollar figure

Money is only ever spend that is already sitting in your own rows, restated per month. No modelled uplift, no benchmark click-through rate, no industry average anything. When the dollars can't honestly be sliced out, the finding reports no number and shows you the arithmetic it does have instead.

And a campaign's dollars are claimed by one finding at most. If three checks fire on the same campaign, the first one takes the money and the others say so out loud — which is what makes the total a number you can hold up against your actual Google Ads bill.

Below a data floor, a check says “not enough data yet” rather than inventing a verdict. And where an account doesn't give us the fact a check depends on, that check stays silent — a missing fact must never become an accusation.

Bring what you have

Switching shouldn't mean starting your ads over.

Most shops arriving here already have an account somebody else has been running for years. It gets read properly, not replaced.

  • About 2 years of campaign spend, and roughly 6 months of ad-group, keyword and search-term detail
  • Every campaign — including removed ones, so old spend has a name instead of an id
  • Imported campaigns arrive report-only. The optimizer cannot touch one until you switch that campaign on
  • A campaign we didn't build clears a higher bar before anything is paused — double the evidence, and never without two months of its own history
  • A campaign whose insides we can't see is excluded from every lever, and told to you

Importing is reading

It is never permission to act

Search — PPF TorontoReport-only
Search — Window TintReport-only
PMax — All servicesReport-only
Search — Ceramic (removed)Report-only

The switch that lets the optimizer act is a column no import can write. It defaults to off — for campaigns Service VIN built, too.

Campaign building

A campaign built from what you actually sell.

Most ad copy is written by someone who has never seen your price list. Yours is written from your real catalog — your services, your actual prices, the radius your jobs genuinely come from, and the Google reviews you really have.

  • Search and Performance Max, pointed at a page that already captures click ids
  • Keyword research priced against your city, not the whole country — and annotated with what already worked in your own account
  • A negative-keyword shield that blocks the job-hunters, the DIY crowd and the freebie chasers before they cost you a click
  • Every keyword carries one sentence saying why it is there — so you can delete the ones nobody can justify
  • A budget rationale in a sentence, using your numbers — and saying so plainly when a number is missing

Campaigns are created paused. Building isn't spending. Nothing runs until you switch it on yourself, in your own account.

Review before anything is created

Will be created PAUSED

Daily budget

$45.00

That is, per month

$1,370

Why this budget

$45/day because your full-front PPF averages $1,840, you accept about one quote in four, and the median top-of-page bid for these terms in Toronto is $6.10. We don't have a close rate for window tint yet, so that group assumes five jobs a week rather than a number we don't have.

Keywords · every one editable

  • EXACTpaint protection film calgary
  • PHRASEclear bra calgary
  • EXACTfull front ppf cost
  • PHRASEppf installer near me
Negativesjobssalarydiyfreehow towholesale+ the rest of the shield

Maximize clicks · $6.10 CPC ceiling — switches to conversion bidding at 15 conversions in 30 days

Dry run passed — Google validated every operation without creating one

EXACT and PHRASE keywords. Never broad.

Broad match is a volume instrument. It needs a big budget and a steady stream of conversions to learn from before it stops dragging in junk — and a local shop running a normal daily budget in one city has neither. It would spend the month exploring and the money would be gone before there was enough signal to prove which terms to block.

Negatives don't fix that. Negatives block the terms you thought of; broad match fails on the ones you didn't. So the plan schema rejects broad outright — a hand-edited plan carrying one fails loudly instead of quietly spending.

Bidding that waits until it has earned it.

Smart bidding optimizes toward conversions, and a brand-new campaign has none — so it spends its first weeks exploring on your money, with erratic costs per click. On a local daily budget, that exploration is the budget.

So a new campaign starts on clicks with a hard CPC ceiling while real booked-job conversions accumulate underneath it. Once there are about 15 conversions across 30 days, the weekly run proposes the switch to conversion bidding. Until then you see “3 of 15” rather than silence. Performance Max is the exception — Google gives it no click-bidding option, which is itself a reason a shop with no conversion history should start on Search.

Every Monday

It checks your ads every week. And it remembers what worked.

Every Monday morning it reviews performance and finds the fixes: block the searches wasting money, move budget from the campaign that's losing to the one that's winning, pause a keyword that has had clicks and no jobs.

Here is the part that matters: it measures its own work. Seven days after every change, a nightly pass checks what actually happened to your cost per booked job — from your invoices, not from Google's conversion counter. A kind of change that keeps helping your shop gets more weight here. One that keeps hurting is held back, and the reason shows up in the list with the numbers in it.

Week one it reasons from how much data there is. Week eight it reasons from its own track record at your shop. A change that measured badly enough gets proposed for reversal before any new advice.

It starts in suggestions-only mode. It proposes, it explains, and it changes nothing until you say so — lever by lever, under a daily ceiling it can never cross. In that mode the code that writes to Google is never even loaded, so “it won't act” isn't a setting to trust. It's how it's built.

Monday, 5:30 a.m.

This week's review of your campaigns

Suggestions only
  • Block 4 search terms on Search — PPF Toronto

    “ppf installer jobs” took 11 clicks and $47 with no booked job. Three others like it.

  • Move $5/day from PMax — All services to Search — PPF Toronto

    Search books a job for $138. PMax is at $280 across 3 jobs. Your total daily spend doesn't change.

  • Pause keyword — held back

    Held back by your shop's own history: 3 measured runs of this lever moved your cost per booked job by −30% on average, and none of them helped.

  • Target CPA — skipped

    Only 12 conversions in the window. A target needs about 30 before it has anything to learn from.

Measured 7 days later

  • Blocked 5 search terms — cost per booked job down 22%. This lever gets more weight here from now on.
  • Paused an ad group — cost per booked job up 31%. Reversed, and it says so.

The levers, and the guardrail on each.

At most ten changes a week, each lever capped on its own underneath that. Nothing in the weekly list is written by a language model — every line is arithmetic over your real numbers, and it names the campaign, the money and the counts it is arguing from.

  • Block the searches that waste money

    A term with clicks and no conversions becomes a negative keyword — unless it touches something you actually sell. A shop that sells ceramic coating can never be handed “ceramic coating” as a negative, however badly it performed, and “near me” is never offered at all.

  • Move budget to what books work

    When one campaign books jobs far cheaper than another, it shifts a slice of the loser's daily budget across. It moves at most a fifth, always through your ceiling, never below the floor — and it never raises your total daily spend.

  • Pause the keyword, not the ad group

    The smallest change that stops the bleed. Ad groups only get paused past a spend floor scaled to what a booked job actually costs you, so a campaign running expensive doesn't get a weaker guard exactly when it needs a stronger one.

  • Graduate the bidding when it's earned

    New campaigns run on clicks with a hard CPC ceiling. Only once there are about 15 conversions across 30 days does it propose the switch to conversion bidding — and a campaign still learning is shown its progress rather than left silent.

  • Aim at your cost per job, not Google's

    A target CPA is translated before it's proposed: Google bids per conversion, you care per booked job, so the target is scaled by the gap between them. It won't propose one at all until there's enough volume for a target to learn from.

  • Run ads when your buyers actually appear

    The hours come from when the leads behind your booked jobs really arrived, in your timezone — and only when trimming the schedule cuts a meaningful slice of the week.

The one nobody else can offer

It knows when you're too busy to want more leads.

You're booked out three weeks. Every ad tool on earth would keep spending, because none of them have ever seen your calendar. This one has — it's the same calendar your bookings land in.

Set a threshold and, when the next fortnight passes it, the Monday run can ease the budget instead of buying leads you'd have to turn away — then bring it back when the board opens up. It cites the real numbers when it does, and like every other lever it only acts if you've told it to.

Next 14 days

Past your threshold

91% booked

Your own setting: ease spend past 85%.

Suggested: ease PMax — All services by 40%

Your calendar is 91% booked over the next fortnight, past the 85% you set. Back to full budget when the board opens up.

That isn't a smarter algorithm. It's a system that can see both halves of your business at once.

What it won't do.

This is the only part of Service VIN that spends your money, so the guardrails live in the code path rather than in a habit — and they're worth reading before the features are.

  • It won't spend a dollar you didn't approve

    A build produces a draft. You see the daily budget, the monthly number, every keyword and every headline before anything is created — and what does get created is created paused. Launching builds the structure; starting the spend is a separate act, by you, in your own Google Ads account.

  • It won't exceed the ceiling you set

    Every budget it touches passes through your per-campaign ceiling and then a platform backstop. There is no code path that sets a budget without them, and the mutation layer re-applies your ceiling on its own side — so an arithmetic bug upstream still can't reach Google as spend.

  • It won't touch a campaign you didn't hand it

    Importing your account is reading, never permission to act. Every imported campaign lands report-only and stays that way until you switch that specific campaign on — including campaigns Service VIN built itself.

  • It won't invent claims in your ads

    Headlines are re-grounded in code after they're written, not just asked nicely in a prompt: invented awards, guarantees, superlatives, promo percentages, prices that aren't in your catalog and review counts that don't match your synced ones are dropped. If it can't trace a phrase to something real of yours, it doesn't ship.

  • It won't change anything quietly

    Suggestions-only is the default, and in that mode the code that writes to Google is never even loaded. Every change and every non-change is written down in plain English with the arithmetic behind it — including the ones it decided against, and why.

  • It won't promise you a result

    What it guarantees is visibility and control. What your ads return depends on your market, your prices and your close rate — so you'll find measured outcomes on this page and no performance claims anywhere on it.

The fine print, in plain sight

  • Before a build is created, the whole operation is sent to Google for validation without creating anything — so “it will work” is Google's answer, not ours.
  • Conversion uploads can run log-only first, so you can read exactly what would be sent to Google before a single event is.
  • Search terms that look like somebody's email address or phone number are dropped before they're stored — not stored and tidied up later.
  • Customer Match lists are hashed and consent-gated: a customer who hasn't given you marketing consent is never in one.
  • An audit check whose underlying fact isn't captured on your account stays silent rather than accusing you of something.
  • We are not affiliated with, endorsed by, or partnered with Google, and we don't manage campaigns on your behalf. You own the account; you keep the keys.

An add-on, not a plan tier.

Ads Autopilot sits on top of whichever plan you're on, so it doesn't reshuffle what you pay for the rest of the shop software — a smaller shop is exactly as likely to want it as a bigger one. It's a flat monthly fee, never a percentage of what you spend on ads: nobody should earn more when your budget goes up. Turning it on today is a conversation rather than a checkout, because we'd rather enable it by hand than guess at a recurring charge.

See plan pricing

Google Ads for auto shops, answered

How does Service VIN know which Google Ads clicks turned into paid jobs?

Because it owns both ends. When someone clicks your ad and reaches your booking page, a lead form or a landing page we built, the Google click id and campaign are captured and stored with that lead. That lead becomes a quote, the quote becomes a job, the job becomes an invoice — all inside Service VIN. So when the invoice is paid, the system can say exactly which click produced it, and send that value back to Google as a conversion. An agency cannot do that last step: it doesn't have your invoices.

Will it start spending my money on its own?

No. Campaigns are created paused, so building is never spending — enabling a campaign is a separate act you take yourself. The weekly optimizer ships in suggestions-only mode, which is mutation-free by construction: the code that writes to Google isn't even loaded in that mode. If you later switch it to autopilot, you choose which levers it may pull, and every budget it touches passes through a daily ceiling you set.

What does the audit actually check?

13 things, all of them arithmetic over your own account: money on campaigns with no booked jobs, search terms that took clicks and never booked, broad match running without negatives, conversion tracking that isn't recording anything, booked-job feedback that isn't live yet, auto-tagging switched off, spend nothing can be matched to, ad groups with a single ad, missing sitelinks and callouts, landing pages that can't be attributed, search partners on inside a Search campaign, campaigns starved of budget, and targeting wider than the area your jobs actually come from. Below a data floor a check reports “not enough data yet” rather than a verdict, and a check whose underlying fact isn't captured on your account stays silent instead of accusing you of something.

Does it use broad match keywords?

Never in a campaign it builds — EXACT and PHRASE only, and the plan schema rejects broad outright so a hand-edited plan carrying one fails loudly instead of quietly spending. Broad match needs a large budget and steady conversion volume before it stops dragging in junk, and a local shop running a normal daily budget in one metro has neither. It reads broad match fine: an imported account usually has some, the audit flags it, and the weekly optimizer can pause it.

I already have a Google Ads account. Can it work on that?

Yes, and that's the normal case. It imports the account you already run — about 2 years of campaign spend and roughly 6 months of ad-group, keyword and search-term detail — so the audit and the optimizer can reason about your real campaigns, not just ones we made. Every imported campaign arrives report-only. It stays that way until you switch that campaign on, and even then a campaign we didn't build has to clear a higher evidence bar before anything gets paused.

How does the weekly optimizer know its own advice worked?

It measures itself. Every change is logged with the numbers as they stood at that moment. Seven days later a nightly pass records what actually happened and scores the change by whether your cost per booked job — computed from your invoices, not Google's conversion counter — went up or down. The next Monday reads that history: a kind of change that keeps helping your shop is favoured, and one that keeps hurting is held back and says so, with the numbers, in the same list. A change that measured badly enough gets proposed for reversal before any new advice.

What does Ads Autopilot cost?

It's an add-on that sits on top of any Service VIN plan rather than a plan tier, so it doesn't change what you pay for the rest of the shop software. Turning it on today is a conversation, not a checkout — we enable it per shop by hand while the purchase flow is finished. Plan pricing is on the pricing page.

Is any of my customer data sent to Google?

Only what you'd expect, and only where consent allows it. Conversions are sent as a click id and a value. Customer Match audiences — the list that stops you paying for clicks from people who are already your customers — are hashed and consent-gated, so a customer who hasn't given you marketing consent is never included. Uploads can run in a log-only mode first, so you can see exactly what would be sent before anything is. And search terms that look like somebody's email or phone number are dropped at the door rather than stored and cleaned up later.

The other ends of the loop

Both of these are what make the return leg possible

Go deeper

Related reading

The worst outcome isn't a bad campaign.

It's turning ads off because you couldn't tell. Plenty of shops do — they spend a few thousand, see nothing they can measure, and quit. They lose the jobs and they learn nothing. Find out what yours are actually doing.

Read-only · no add-on needed · 14-day trial has everything, nothing charged for 14 days · Nothing in your ad account changes without you