Most agencies won’t tell you this before you sign: the number in the contract decides what they optimize for. Not the slide deck. Not the quarterly roadmap. That one line.
I learned it the slow way, watching accounts hit a $180 CPA while sales told me none of the leads could buy. We paid on form fills, so bidding bought form fills. The result was exactly what we had asked for, and nothing we wanted.
My rule after a decade running Google Ads is to write down the metric closest to cash whose lag still fits inside 90 days. For most lead-gen businesses, that is neither raw CPA nor platform ROAS. Here is how to choose the number and write it so it holds.
Why is this a contract question, not a bidding question?
Google treats CPA and ROAS as math for Smart Bidding. Your partner treats them as instructions for where to spend the next dollar. Set Target CPA and the system hunts conversions that fit the price. Set Target ROAS and it hunts reported value relative to spend. I used to tell clients the bid strategy was a technical choice. I was wrong. The commercial choice comes first.
Say you spend $20k a month. A contract targeting $150 CPA on form fills rewards form fills. A contract targeting 4x ROAS on Google-reported revenue rewards a ratio on Google’s scoreboard. Neither says whether those leads can buy or whether that revenue survives returns and costs. Write the target closest to cash, then let bidding follow it. Skip the argument about which Smart Bidding mode is smarter until you have settled what counts as a win.
What do CPA and ROAS actually measure?
What counts as a conversion in CPA?
CPA is spend divided by conversions. The second half of that equation is the whole game. Count every form fill, phone click and ebook download equally, and bidding can buy more of the easiest ones. Target CPA needs about 30 conversions in 30 days to hold steady, which can tempt managers to loosen the definition just to feed the algorithm.
I have seen that tradeoff in home services: a $65 booked-call CPA became a $28 any-call CPA that sales could not use. Broaden the conversion, and cheap volume follows. If you sign a CPA target, put the exact conversion definition beside it.
What does Google get to call revenue in ROAS?
ROAS is reported conversion value divided by ad cost. The problem is what gets reported as value. Cart total or booked revenue may not account for VAT, returns, cancelled orders, cost of goods, fees or fulfilment unless you send corrections back. Target ROAS needs around 50 conversions with real values in 30 days, and without clean value tracking it runs on fiction.
I tell ecommerce owners to treat platform ROAS as an incomplete picture until they reconcile it with their books. If you sign a ROAS target, define the value after returns and relevant costs, and measure it outside Google.
Why can a better ROAS produce less revenue?
A CPA target puts a price on each conversion. A ROAS target protects a ratio and can cut spend that lowers it, even when that spend brings in profitable dollars. Raise a ROAS target from 300% to 500%, and you may get a prettier ratio on less revenue as bidding retreats from marginal clicks. I have watched that move shrink a healthy Shopping account by a third while the report looked better. If you want the mechanics, read why ROAS optimization shrinks revenue before setting either target.
Break-even math makes the distinction useful. Break-even gross-revenue ROAS equals 1 divided by contribution margin: a 40% margin breaks even at 2.5x; a 25% margin breaks even at 4.0x. A 2.8x gross-revenue ROAS on a 25%-margin store is reporting losses with confidence. CPA protects price. ROAS protects a ratio. Neither protects profit without the margin math.
CPA needs its own translation. Take the contribution from an average order after goods, fees and fulfilment, then multiply by close rate to find the allowable CPA for a lead at that stage. Write that number down before the kickoff call. Otherwise, someone else gets to choose which conversion looks affordable.
How can each number be gamed?
CPA rewards the easiest conversion you allow into the count. The familiar moves are soft conversions, junk leads and brand padding:
- Soft conversions: ebook downloads or newsletter signups counted alongside booked calls.
- Junk leads: wider geography or broad match filling a $150 CPA target with renters when you sell to owners.
- Brand padding: conversions from people already searching for your company making acquisition look cheaper. Over 50% brand share suggests padding. Check the Google Ads search-terms report for your company name.
If brand accounts for over half the conversions behind your target, ask for the non-brand CPA before calling it a growth result.
ROAS rewards whoever can claim your most valuable existing demand. Heavy retargeting and brand Shopping can flatter a blended number. Add a 20% off pop-up, and reported revenue may rise while margin falls. One account audit described an 11x blended ROAS account that lost money on every order: brand was near 18x, non-brand near 3x, and reported value included VAT before 28% returns, goods, fulfilment and fees. The useful comparison was contribution, with non-brand judged separately. Do not let a blended platform number stand in for that work.
Pipeline can be distorted by lag and a sloppy CRM. A median B2B SaaS sales cycle of 84 days stretches from 14 to 30 days for small deals to 90 to 180+ days for enterprise. Closed-won revenue may not be a fair 90-day target for a long cycle. Reps who leave stages untouched, duplicate leads and same-month MQL-to-SQL calculations can make an earlier stage unreliable too. Attribution disputes add another layer.
That is why a stage name alone is not enough. Average MQL-to-SQL conversion for B2B SaaS is 13% under a strict intent-based definition, while PPC MQLs convert at 26% versus SEO at 51%. A blended rate hides the channel you are paying the partner to improve. If you sign a pipeline target, sign its stage definition and system of record.

Set up measurement before spend starts. Google Ads can import offline CRM outcomes tied to a GCLID within a click-to-conversion window, including a 90-day window for file-based imports. I keep MQL, SQL, opportunity and closed-won as separate conversion actions, with one primary action for bidding. Bid on the earliest qualified milestone that supplies enough volume; judge the partner on the later milestone you can verify. There is a fuller walkthrough of switching conversion signals from form fills to pipeline opportunities.
The distinction matters: feed bidding a qualified signal it can see regularly; grade the contract on the outcome the business can verify.
Which number should you put in the contract?
Pick the metric closest to cash that you can count within the 90-day window. If cash lands quickly, use the resulting value after costs. If it lands months later, use the qualified stage that predicts it and can be counted sooner. Skip an earlier stage merely because it produces a tidier report.

Ecommerce: can you measure contribution by order?
Sign contribution ROAS, not platform ROAS, when you have clean margins. Take selling price minus goods, pick-pack-ship, payment fees and expected returns. Divide that contribution by spend. Keep brand and non-brand separate, and flag new customers if repeat buyers carry the average.
Say a store spends $20k a month at a 35% contribution margin. On a gross-revenue basis, break-even ROAS is about 2.9x. A 3.5x non-brand gross-revenue result clears that bar on those assumptions; a 4x blended gross-revenue result does not tell you whether non-brand clears it. Do not write either gross-revenue figure into a contract labelled contribution ROAS. Define contribution in the books, then set and judge the target on that measure.
Lead gen: does sales qualify the lead?
Sign cost per qualified opportunity, not cost per form fill. Sales wants calls that show up and fit the brief. Define SQL in a sentence reps can apply: right geography, right need, decision maker or budget holder, booked call completed. Bid on the highest-volume qualified signal you can feed regularly, often SQL or sales-accepted lead. Judge the partner on cost per SQL or opportunity, with a volume floor.
If 30% of SQLs become jobs and a job contributes $3,000, allowable cost per SQL is around $900 before overhead. Cheap unqualified leads stop counting toward that target. If sales will not log the qualification, do not pay against it.
SaaS: will closed-won arrive too late?
Sign cost per sales-accepted opportunity, with closed-won as a shadow metric. If the sales cycle sits near 84 days and enterprise deals run past 90, revenue cannot fairly settle every 90-day test. That is calendar math, not an excuse to count every demo as a win.
Bid on the earliest qualified stage with weekly volume, such as a completed demo or a trial started by an ICP account. Grade the partner on opportunities accepted by sales with a defined value and close date. I import the stages separately so bidding can learn on an earlier signal while the contract measures opportunities. If the opportunity target is met but closed-won misses after a full cycle, investigate lead quality, sales capacity and pricing before declaring success or failure.
Local services: did the booking become a job?
Sign cost per booked job net of cancellations, by service line. Plumbers, HVAC, garage door and legal intake have the same trap: calls are easier to count than work that pays. Split targets by job type because a drain clear and a full system replacement have different economics. Exclude brand calls, duplicates and cancellations within 48 hours from the paid count.
Call tracking and recording review sound tedious until you compare a $42 cost per call with a $310 cost per booked install. The first number flatters the manager. The second pays the trucks. If the job did not stay on the board, it did not count.
How do you write the target so it holds?
Vague targets fail in month two, when both sides remember the kickoff call differently. Put four lines in writing before spend moves:
- Baseline: the prior 30 to 90 days of the same metric, from the same source, stated as a number.
- Definition: the exact event or value being measured, in plain words.
- Exclusions: what does not count, including brand, duplicates or cancellations where relevant.
- Source: the CRM or books that settle the result, not Google Ads alone.
Performance pricing rewards generous attribution unless the measurement definition comes first. That lesson cost me two disputes. If it is not written, it will be renegotiated after the money is spent.
Use the clause that fits, then fill the brackets:
- Qualified CPA: Partner is measured on cost per [booked call completed with ICP fit, geo X] at or below [$Y] over trailing 30 days, measured in [HubSpot/Salesforce], excluding brand search, duplicates and no-shows.
- Contribution ROAS: Partner is measured on contribution ROAS at or above [target] on non-brand spend over trailing 30 days. Contribution is [price minus COGS, fees, shipping and returns], measured in [Shopify/books], excluding brand and existing-customer repeat orders.
- Pipeline: Partner is measured on cost per [sales-accepted opportunity] at or below [$Y], with at least [N] per month. SQL means [criteria]. [CRM] settles the monthly count; closed-won is reviewed after one full cycle.
Keep the 90-day schedule simple: weeks 1 to 2 for baseline and tracking fixes; weeks 3 to 12 for building and scaling; day 90 for a keep-kill-scale review. One target, one source, four lines.
What red flags should end the call?
I walk when I see two of these together. One alone may be survivable; two or more form a walk-away pattern. Each shifts risk to you while the partner keeps control of the scoreboard:
- Guaranteed ROAS or rankings: no one can guarantee an auction. Skip the promise.
- A price before a margin question: they cannot judge profitable growth without asking what you keep.
- Platform revenue presented as business revenue: insist on CRM or books as judge, Google as feed.
- Agency-owned accounts: you should not pay for history you cannot take with you.
- A 12-month lock-in with no performance exit: ask for a 90-day keep-kill-scale review.
Judge the proposal on CPA, ROAS, conversion rate and profit on ad spend, not clicks or CTR. If the deck leads with CTR, it is showing you the scoreboard it prefers. Two flags, and I end the call.
What five questions get you to the right metric?
Answer these in order. Do not jump straight to the metric you like.
- Can you calculate contribution per order or job after goods, fees and returns? If not, fix that math before signing a value-based target.
- Do ecommerce purchases arrive quickly enough to measure within the test? If yes, use contribution ROAS on non-brand, measured in your books.
- For local services, can you verify booked jobs and cancellations within 90 days? If yes, use cost per booked job net of cancellations, split by service line.
- For lead gen, does sales reliably log qualified stages in the CRM? If not, start with a defined SQL or completed booked call rather than claiming to measure opportunities you cannot verify.
- Can you count sales-accepted opportunities inside 90 days? If yes, use cost per accepted opportunity with a volume floor. If not, use the latest qualified stage you can count and review closed-won after a full cycle.
Then put one final condition to the partner: your CRM or books decide the result, with brand and duplicates excluded as agreed. If they will not accept the measurement source, walk. No target survives a scoreboard the partner controls.
Today, pull the last 90 days from your CRM or books, not just Google Ads. Calculate one number: allowable cost per SQL or opportunity, cost per booked job, or the contribution you need from each dollar spent. Send it before the next partner call and ask for a written target with the exclusions attached. That is the model I write from at groas: a flat monthly fee does not replace a clear performance target. If a partner will not put the number in writing, you just learned what they planned to optimize.

