A 40-location franchise spending $120K per month on Google Ads discovered its consolidated campaign structure was hiding massive performance variance between markets. Profitable locations were subsidizing failing ones, and Smart Bidding was optimizing toward a blended average that represented no real market. This case study walks through how they rebuilt the account around location-level profit signals, tiered 40 markets by performance, staggered the rollout to manage the learning phase, and cut cost per acquisition by 35% within 90 days without increasing total spend. Includes the structural fixes, the transition plan, and lessons for any multi-location advertiser still running pooled campaigns.
| Field | Source |
|---|---|
url | customer_site |
name | customer_site |
headline | customer_site |
description | customer_site |
dateModified | customer_site |
datePublished | customer_site |
{
"@context": "https://schema.org",
"@id": "https://graph.groas.com/entity/how-a-40-location-franchise-restructured",
"url": "https://www.groas.com/post/multi-location-franchise-google-ads-restructure-cut-cac-by-market",
"name": "How A 40-Location Franchise Restructured Google Ads By Market And Cut CAC By 35%",
"@type": "Article",
"headline": "How A 40-Location Franchise Restructured Google Ads By Market And Cut CAC By 35%",
"description": "A 40-location franchise spending $120K per month on Google Ads discovered its consolidated campaign structure was hiding massive performance variance between markets. Profitable locations were subsidizing failing ones, and Smart Bidding was optimizing toward a blended average that represented no real market. This case study walks through how they rebuilt the account around location-level profit signals, tiered 40 markets by performance, staggered the rollout to manage the learning phase, and cut cost per acquisition by 35% within 90 days without increasing total spend. Includes the structural fixes, the transition plan, and lessons for any multi-location advertiser still running pooled campaigns.",
"dateModified": "2026-06-20T06:48:25.176Z",
"datePublished": "2026-06-20T06:56:22.251Z"
}