Why your Google Ads account structure caps your ROAS
Creative decides how well you perform inside the limits. Structure decides where the limits are.
Google Ads account structure is how campaigns, ad groups, budgets and conversion actions map onto the business: locations, service lines, margin tiers. Structure decides what budget can respond to, which puts a hard ceiling on return on ad spend. Optimising creative under a bad structure produces small, repeating gains; correcting the structure produces a step change and then stops, which is the shape you want.
What account structure actually means
Account structure is the arrangement of campaigns, ad groups, budgets and conversion actions relative to how the business actually makes money. A twenty-location storage operator has twenty sets of unit economics. If the account cannot tell them apart, budget cannot move toward the profitable ones.
This is different from account settings. Match types, bid strategies and negative keyword lists are configuration. Structure is architecture: the shape that decides which configurations are even possible. Google's own description of account organisation puts the budget at the campaign level and the targeting at the ad group level, which is the constraint the whole argument rests on.
The practical test: can you increase spend on your best-performing location tomorrow without also increasing spend on your worst? If the answer is no, that is a structural limit, and no amount of headline testing changes it.
Why structure sets a ceiling
Google's bidding algorithms optimise within the boundaries you give them. A campaign is a budget boundary. If two locations share one campaign, they share one budget, and the algorithm allocates between them on signals it can see, which does not include your margin per location, your capacity, or which sites are already full.
So the ceiling is arithmetic rather than mysterious. Spend that cannot move to a better outcome is spend earning the average rather than the best available return.
What the algorithm optimises toward
It is also worth being precise about what the algorithm is optimising toward. Smart Bidding sets bids against the conversion action you marked primary, using signals available at auction time. It is extremely good at hitting the target you gave it. If the target is the wrong count, better bidding makes the problem arrive faster.
Structural fixes stop, surface fixes repeat
That is why structural corrections behave differently from surface ones. Surface optimisations return a few percent, repeatedly, forever. Structural corrections produce a step change and then stop: you fix it once, and the account stops leaking.
Where the money actually leaks
| Structural fault | What it prevents | Typical cost |
|---|---|---|
| One campaign, many locations | Budget following per-location performance | Continuous, invisible |
| Conversion actions not deduplicated | Any trustworthy CPA figure | Every downstream decision |
| Service lines mixed in one ad group | Bidding to different margins | Overspend on low-margin work |
| No location parameter on conversions | Comparing locations at all | Budget decisions made on gut feel |
| Brand and non-brand in one campaign | Seeing true acquisition cost | Flattering, useless reporting |
The first two rows are worth separating. A budget-boundary fault costs money slowly and predictably. A conversion-tracking fault corrupts the numbers you use to judge everything else, which is worse: you are not just losing money, you are losing the ability to tell.
Brand and non-brand sharing a campaign is the most common flattering error. Brand searches convert cheaply because those people were already coming. Blended together, the account looks healthy while acquisition quietly underperforms.
Row two has a specific and unglamorous cause more often than duplicate tags. Google gives every conversion action a counting setting, and the default differs by action type: "Every" for website actions and imports, "One" for calls and Analytics goals. A lead form left on Every counts a repeat visitor three times, and bidding then buys more repeat visitors. Nobody changed anything; the default did the damage.
There is a third boundary that leaks while looking like coverage. A radius drawn from an address reaches as far as the map says, not as far as the business can actually serve, and where a service area has been growing quickly the two diverge faster than anyone re-checks. Forecasting is no help either, because a planner extrapolates from search history and a street built three years ago has none. Both problems arrive together in Stittsville and Kanata West.
What a sound structure looks like
Budget boundaries should follow accountability boundaries. If a franchisee owns a P&L, that location gets its own campaign and its own budget. If two service lines carry different margins, they do not share an ad group.
Conversion actions should be verified rather than assumed. Every action traced from the user event through the tag manager to the platform, checked for duplication, and marked primary only if someone can defend it as a real business outcome.
Naming should be mechanical. A convention that encodes location, service line and match type means cross-account reporting can be automated instead of rebuilt by hand each quarter: the point of Google Ads MCC management when the account count grows.
None of this is exotic. It is unglamorous, and it is why an architecture-level Google Ads audit looks at structure and tracking integrity before it looks at ad copy.
The counter-argument: structure has a floor
Splitting an account is not free, and the cost is data. Every campaign needs enough conversion volume for bidding to learn something, and a split divides a fixed number of conversions across more boundaries. Past a certain point you have twelve campaigns that each know nothing instead of one that knew a little.
This is the honest limit on the argument above, and it is why "one campaign per location" is right for a franchise with a P&L per site and wrong for a business with six locations and a central budget. Accountability justifies a split. Tidiness does not.
The test is whether anyone will actually make a different decision with the separated number. If nobody is authorised to move budget between two locations, splitting them produces reporting nobody acts on and bidding data nobody has enough of. Keep them together and use labels or reporting segments instead, which cost nothing in learning.
When restructuring is worth it
Restructuring costs learning. Google states that a bid strategy re-enters a learning period not only when it is created, but when its settings change or campaigns, ad groups or keywords are added to or removed from it, and calibration can take up to three weeks or one to two conversion cycles. That is the real bill for a restructure, and it should be planned for rather than discovered.
Two consequences follow. First, do the restructure in one deliberate move rather than as a series of tidying edits, because each edit can restart the clock. Second, if your conversion cycle is long, say a considered purchase that closes in six weeks, your recovery period is longer than three weeks and the decision needs a longer runway than a monthly reporting cadence gives you.
When it is worth paying
It is worth paying when the structural fault is permanent and the leak is continuous. A self-storage operator running more than twenty Florida facilities against a corporate CPA target had exactly that shape: budget could not follow performance, and tracking defects made location CPA incomparable anyway. Restructuring so budget was allocated and measurable per facility, plus correcting the tracking, drove cost per acquisition to roughly half the corporate target.
When to leave it alone
It is not worth paying when the account is small, the budget is genuinely central, and the fault is cosmetic. Under about five locations with one shared budget, consolidation is often the right answer and a rebuild is churn.
What to check this week
Three checks, in order of how much they tell you. First, open your conversion actions and count how many fire on the same user event, then look at the Count column on each one. More than one action on the same event is duplication, and an "Every" setting on a lead action is inflation. Your conversion count is wrong by an unknown factor in both cases.
Second, try to produce cost per acquisition for your best and worst location for last month. If you cannot, location is missing as a parameter on the conversion event: the attribution gap that makes per-location performance unmeasurable.
Third, split brand from non-brand in your reporting, even temporarily. If blended CPA and non-brand CPA differ by a multiple, your reporting has been flattering you.
Do them in that order, because each one invalidates the next if it fails. There is no point comparing locations on a conversion count that is double-counting, and no point restructuring around a comparison you cannot trust.
If those three checks disagree with each other, the problem is upstream of bidding. That is a conversion attribution audit rather than an optimisation task, and doing it in the other order wastes the optimisation.