Google switched local inventory ads on by default across every Shopping campaign in Google Ads on August 31, 2026, removing an opt-in that has governed how retailers separated online demand from in-store demand for the better part of a decade. The change was flagged to advertisers by email in July and reported through the paid-search trade press from July 20 onward. It landed at the start of the week that opens the US holiday planning quarter.
The mechanics are narrow but the consequences are not. A single campaign setting, enable_local, stops functioning for Shopping campaigns. Every campaign that has local inventory data available behind it now serves that inventory from the same budget that was funding online sales yesterday.
For pure-play sellers with no stores, the switch is close to meaningless. For any retailer running both a website and a store estate, it changes what a Shopping budget buys, what a return-on-ad-spend number means, and how two campaigns that were deliberately kept apart now compete for the same query.
In short
- Local inventory ads are now on by default for all Google Shopping campaigns as of August 31, 2026, with no account-level way to turn the default off.
- The
enable_localfield is dead for Shopping campaigns: on Google Ads API v25.1 and later, setting it to false returns a hard error, and on earlier versions the false value is silently treated as true. - Opting out moved to inventory filters, applied per campaign through the Google Ads interface or through a listing scope on the API, not through a single switch.
- Retailers with stores face budget dilution, because campaigns tuned for online conversions can now spend against in-store pickup and local availability queries.
- Merchants with no local feed are largely unaffected, since the setting has nothing to serve, but the flag still flips on their campaigns.
What changed on August 31
Until this week, serving local inventory through a standard Shopping campaign required a deliberate act. An advertiser set Campaign.ShoppingSetting.enable_local to true, or ticked the equivalent box in the interface, and the campaign became eligible to show products held in nearby stores alongside products shipped from a warehouse. Leaving it alone meant online only.
That default has been inverted. According to PPC Land, which first reported the change in detail on July 20, the Google Ads API backend now overrides the value to true for every Shopping campaign regardless of what the advertiser submits. Digital Applied, covering the same documentation update, described the field as ignored rather than removed: it still exists in the schema, it simply no longer decides anything for this campaign type.
The behavior splits by API version, and that split matters for anyone running campaigns through a management platform. On version 25.1 and later, an attempt to set enable_local to false returns ContextError.OPERATION_NOT_PERMITTED_FOR_CONTEXT, a hard error that surfaces immediately in the calling system. On versions before 25.1, the same call succeeds quietly and the false value is treated as true anyway.
The second case is the dangerous one. A bid management tool or in-house script running an older API version will continue reporting that local serving is disabled while the campaign serves local inventory in production. The tool believes one thing, the auction does another, and nothing in the log flags the divergence.
Google’s own note to advertisers, quoted in trade coverage of the change, framed it as a housekeeping task rather than a strategy reset: “If you’d like to separate your online and local budgets, review your Shopping campaigns before 08/31/2026 and update your ‘Inventory’ filter settings using Channel = Local or Online.” The wording puts the burden of preserving the old separation entirely on the advertiser.
The notification cycle itself is worth recording, because it shaped how much of the market was ready. Advertisers received the email notice in July, roughly six weeks before the effective date, and specialist paid-search publications began breaking down the API implications from July 20. Coverage aimed at ecommerce operators rather than search specialists followed later in the month.
| Date | Event | What it meant for advertisers |
|---|---|---|
| July 2026 | Google emails advertisers about the pending default | First direct notice, with an instruction to review inventory filters |
| July 20, 2026 | Paid-search trade press details the API behavior | Version split and error code become public |
| July 28, 2026 | Ecommerce-side coverage assesses merchant impact | Pure-play merchants confirmed as largely unaffected |
| August 19, 2026 | Google Ads API v25.1 release | Version boundary for the hard error takes effect |
| August 31, 2026 | Default local serving goes live | Opt-out via enable_local stops working |
Six weeks is enough notice for an in-house team with a dedicated paid-search function. It is thin for a mid-market retailer whose Shopping campaigns are managed by an agency on a quarterly review cycle, and thinner still for one whose bid platform vendor sets its own API upgrade schedule.
Why Google made local serving the default
Google has not published a detailed rationale beyond the advertiser notification, so the reasoning has to be read from the shape of the product. Three threads run through it, and none of them are new.
The omnichannel argument
The commercial case for defaulting to local is that the distinction between an online sale and a store sale has been eroding on the demand side for years. A shopper searching for a product on a phone is not declaring a fulfillment preference. Serving only the shipped version of an item, when the same item sits on a shelf two miles away, throws away the faster option.
Retailers have made the same argument themselves when justifying investment in store-based fulfillment. Pickup and ship-from-store convert a store estate from a fixed cost into a distribution asset. Our coverage of how agentic commerce is shifting toward groceries and local pickup traced the same pull from a different direction: the closer the buying agent gets to a same-day promise, the more local availability data it needs.
Defaulting local serving on makes that data mandatory rather than optional in the auction. It also means Google no longer depends on advertiser initiative to surface it.
There is also a data argument that Google has not needed to make explicitly. Merchant Center already holds local availability data for a large share of the retailers that matter in the Shopping auction, submitted for programs those retailers opted into years ago. Leaving that data out of standard Shopping campaigns meant a substantial inventory signal sat idle in the majority of auctions.
The Performance Max precedent
Performance Max for Retail already served local inventory by default. An advertiser running that campaign type with a local feed connected has been competing on local availability without a separate decision for some time. Standard Shopping campaigns were the holdout.
Aligning the two removes an inconsistency that produced odd results in mixed accounts. A retailer running Performance Max and standard Shopping side by side had one campaign type eligible for local placements and the other not, on the same product catalog. The change closes that gap, and it does so in the direction that increases eligible inventory rather than reducing it.
It is worth noting what did not change. According to Digital Applied’s account of the documentation, Performance Max, Demand Gen and other campaign types retain the existing enable_local behavior. This is a Shopping-campaign-specific override, not a platform-wide deprecation of the field.
Who is actually affected
The practical impact depends almost entirely on what sits in Merchant Center. Local inventory ads require a local product inventory feed and verified store locations connected through a Business Profile. Without both, there is nothing for the flipped setting to serve.
Common Thread Collective, writing on July 28, put the pure-play case bluntly: a brand with no local product feed and no verified store locations sees no practical impact from the change. The setting turns on, finds no local inventory, and the campaign continues to behave as it did in August.
The population that needs to act is narrower than the headline suggests, but it is also the population that spends the most. National chains, regional grocers, specialty retailers with 20 or more doors, and franchise networks all tend to have exactly the configuration that makes the default consequential.
| Merchant profile | Local feed in Merchant Center | Practical impact on August 31 | Action required |
|---|---|---|---|
| Pure-play online seller, no stores | No | None: setting flips, nothing serves | None |
| DTC brand with 1–3 flagship stores | Sometimes | Low: limited local coverage, minor spend shift | Audit feed status |
| Regional chain, 20–200 stores | Usually | High: online-only campaigns begin serving local | Apply inventory filters |
| National retailer with paired campaigns | Yes | Highest: both campaigns now serve both channels | Rebuild campaign scoping |
| Marketplace seller without own stores | No | None | None |
| Franchise network with shared feed | Yes | High: attribution across franchisees blurs | Filter and re-baseline |
One category deserves particular attention: retailers that built a local feed for a Performance Max test, never scaled it, and forgot about it. That dormant feed is now live inventory for every Shopping campaign in the account.
How opting out works now
The old switch is gone but the capability to serve online only is not. It has moved from a campaign setting to an inventory scoping decision, applied per campaign. There are two sanctioned routes and no shortcut that covers an entire account at once.
The interface route
In the Google Ads interface, the control sits in the inventory filter section of campaign settings. An advertiser sets the channel dimension to Online to restrict a campaign to shipped inventory, or to Local to restrict it to store inventory. This is the route Google itself pointed advertisers toward in the notification email.
The filter is a campaign-level object, which means it has to be applied campaign by campaign. An account with 40 Shopping campaigns needs 40 edits, or a bulk sheet that performs the equivalent. There is no toggle at account or manager level that reinstates the previous default.
The API route
Programmatic accounts achieve the same result through CampaignCriterionService, creating a listing scope with product_channel set to ONLINE. This is a criterion rather than a setting, which is the substantive difference: the campaign is not being told to disable a feature, it is being told which slice of the catalog it is allowed to bid on.
That distinction has consequences for anyone whose deployment pipeline treats campaign settings and campaign criteria as separate objects with separate change controls. A team that could previously flip local serving in a settings update now needs a criterion write, and criteria carry their own validation and reporting behavior.
What no longer works
Three habits stop producing the intended result this week. Writing enable_local = false is the obvious one, and on newer API versions it now fails loudly rather than silently. Assuming that a campaign created without local serving enabled is online only is the second, because creation defaults have changed along with everything else.
The third is the most subtle. Any account audit, template, or naming convention that used the local flag as a proxy for campaign intent is now reading a field that always says the same thing. Campaigns named for online-only serving may no longer be online only, and the setting will not contradict the name.
What it does to budgets, bidding and blended returns
The first-order effect is that a fixed budget now covers a wider surface. A campaign that was pacing against online demand alone is now also eligible for local availability queries, which in most categories are a distinct and often cheaper pool of impressions with different conversion behavior.
Cheaper impressions are not automatically good news for a smart bidding strategy. Target ROAS and target CPA strategies optimize against the conversion data they receive, and store-influenced conversions arrive on a different lag and with different values than online orders. A strategy that was stable in August can wander in September simply because the input distribution moved.
Average order value is the second variable to watch. Pickup and local availability orders skew differently from shipped orders in most categories, often smaller basket but higher margin because the shipping cost disappears. Campaigns that suddenly include local inventory may show conversion rate and order value shifts that have nothing to do with creative, bids or seasonality.
Retailers already recalibrating their Q4 promotional economics have another moving part to absorb. The same planning cycle that is reweighing free-shipping thresholds ahead of Black Friday now has to account for a channel mix inside paid search that changed without a media decision behind it.
The paired-campaign problem
The sharpest case is the retailer that ran two campaigns on purpose: one online, one local, with separate budgets, separate targets and separate owners. That structure was the standard way to prevent store demand from cannibalizing an ecommerce target, or the reverse.
As of August 31, both campaigns serve both channels unless filters or listing scopes were applied first. The two campaigns are now bidding against each other on the full overlap of their catalogs, and both budgets are exposed to demand that neither was sized for. Budget pacing calculated for single-channel serving will not hold.
Unwinding this is not a same-day fix. Applying the filters is quick; re-establishing a defensible baseline for each campaign after the auction dynamics have changed takes weeks of data, and the calendar for that data collection now runs directly into the holiday peak.
What the Merchant Center side has to be right
Local serving is only as good as the feed behind it, and the feed requirements did not soften because the default changed. A retailer whose local data was adequate for a small test is now exposing that data at full campaign volume.
The prerequisites for local inventory ads to serve are consistent across the coverage: an active local product inventory feed in Merchant Center, verified store locations linked through the Business Profile, and current data on store hours, stock levels, pickup options and addresses.
Stock accuracy carries the most operational risk. A local inventory ad that promises availability at a store where the item has sold out produces a wasted trip, a complaint, and in aggregate a degraded local ads program. The economics of an inaccurate local feed are worse than not running local ads at all.
- Feed freshness: stale quantity data on a fast-moving SKU turns a promise into a liability.
- Store hours: a location shown as open on a holiday it is closed produces the same failure at higher emotional cost.
- Pickup attributes: curbside, in-store and locker options need to reflect what the store can actually execute this quarter.
- Address verification: unverified or duplicated Business Profile entries fragment the local signal.
- Catalog matching: items present online but absent from the local feed create inconsistent coverage across the same campaign.
Retailers that have been treating the local feed as a marketing artifact rather than an inventory system are the ones most likely to discover a data quality problem at scale in September.
How this complicates measurement in Q4
The measurement problem is the one most likely to be underestimated, because the campaigns keep running and the dashboards keep populating. Nothing breaks visibly. The numbers simply stop meaning what they meant in August.
Any year-on-year or month-on-month comparison that spans August 31 now compares a single-channel campaign to a dual-channel one. Cost per acquisition, ROAS, conversion rate and average order value all move for structural reasons before any operational change is measured. Attributing a September lift or drop to a bid change, a creative test or a promotion becomes guesswork unless the channel split is separated first.
This is the second platform cutover in a week to land the same way, on the reporting layer rather than the transaction layer. Our analysis of why the August 26 Shopify cutover was likely to break measurement rather than checkout made the same point about a different vendor: the operational risk in a forced platform migration usually sits downstream of the thing being migrated.
Incrementality is the harder question underneath the reporting one. A local inventory ad that wins a click from a shopper who was already driving to the store converts a visit that would have happened anyway into an attributed paid conversion. That inflates measured performance without adding a sale, and it does so most in exactly the categories where store density is highest.
Retailers with mature store-visit measurement will see this in their own data within a few weeks. Those without it are dependent on the platform’s own conversion modeling to distinguish an incremental local sale from a redirected one, which is not a distinction the platform has any incentive to draw conservatively.
The practical mitigation is unglamorous. Annotate August 31 in every reporting system that touches paid search, segment local and online performance separately before judging either, and treat the first two weeks of September as a re-baselining period rather than a performance read.
What it means for competition between retailers
Defaulting local serving on does not create new demand. It redistributes eligibility for existing demand toward advertisers who hold local inventory data, and away from advertisers who do not.
For a national chain competing against a pure-play marketplace seller on the same query, that is an advantage the chain did not have to bid for. For a small independent retailer with a store but no Merchant Center local feed, it is an advantage sitting unclaimed. The gap between those two positions is a data project, not a budget one.
The change also sharpens a longer-running dynamic in retail advertising, where inventory data has become the scarce asset rather than audience data. That shift runs through the same logic as the broader move covered in our reporting on who gets to run retail media networks: the party holding real-time product and availability data sets the terms.
Smaller independents face the sharpest version of the trade-off. Building a compliant local feed requires a point-of-sale system that can export accurate per-store quantities on a reliable schedule, which is a genuine systems investment rather than a marketing configuration. Retailers still running inventory on a system that reports at chain level cannot participate at all.
The likely medium-term result is a widening spread between retailers whose store data is machine-readable and those whose is not, on queries where both used to compete on bid alone. That is a familiar pattern in retail technology: a platform default converts an optional capability into a cost of entry, and the retailers who invested early collect the difference.
| Campaign type | Local serving before Aug 31 | Local serving after Aug 31 | Control still available |
|---|---|---|---|
| Standard Shopping | Opt-in via enable_local |
On by default, field ignored | Inventory filter or listing scope |
| Performance Max for Retail | On by default | On by default (unchanged) | Existing PMax controls |
| Demand Gen | enable_local functional |
enable_local functional |
Campaign setting |
| Search campaigns | Not applicable | Not applicable | Not applicable |
| Legacy paired online/local pairs | Separated by setting | Both serve both channels | Manual filters per campaign |
The middle rows matter for account architecture. Because the override is specific to Shopping campaigns, a mixed account now has two different rules governing the same underlying catalog, and the difference is not visible in the campaign settings screen.
What retailers should do this week
The remediation sequence is short and the deadline has already passed, which makes triage the operative discipline. The goal for the first week of September is not optimization, it is knowing which campaigns changed behavior and by how much.
- Inventory the exposure. Confirm whether Merchant Center holds an active local product feed and whether Business Profile store locations are verified. If neither exists, the change is a no-op and no further action is needed.
- List every Shopping campaign. Identify which ones were online only by intent, including any that carry that intent in the name rather than in a setting.
- Apply inventory filters where separation is required. Set the channel dimension to Online or Local at campaign level, or write the equivalent listing scope through the API.
- Check the API version in every connected tool. Anything running below v25.1 will report a successful opt-out that is not in effect.
- Annotate August 31 across reporting. Mark the date in Google Ads, in the analytics stack and in any board-level dashboard that reports paid search efficiency.
- Audit local feed accuracy before scaling. Stock levels, store hours and pickup attributes need to be right before the volume arrives, not after.
- Reset budget pacing expectations. Campaigns now covering two channels on one budget will pace differently, and smart bidding needs a fresh learning window.
Retailers that have been arguing internally for more investment in store-level data now have a concrete deadline attached to that argument. The case for treating physical locations as demand infrastructure, made at length in our look at what brick-and-mortar retail actually looks like in 2026, is no longer a strategic preference. It is a prerequisite for competing in a Shopping auction that assumes local data exists.
What to watch next
Three things will indicate whether this change is a one-off alignment or the first step in a larger consolidation of Shopping campaign controls.
The first is whether Google extends the same treatment to other campaign settings that currently allow channel separation. The pattern of removing an opt-in, aligning with Performance Max behavior and pushing control into criteria has been applied elsewhere in the product and could be applied again.
The second is the September performance data itself. If retailers with strong local feeds show a visible efficiency gain against pure-play competitors on the same queries, the change will be read as a structural advantage for store-holding retailers and will accelerate local feed investment across the mid-market.
The third is whether the pre-v25.1 silent-failure behavior produces a wave of misreported accounts. Bid management platforms move at their own pace on API upgrades, and a platform that has not upgraded is currently telling its customers something that is not true about their campaigns.
None of these resolve before the holiday quarter is underway. The immediate task for retail advertisers is narrower: establish what changed in their own accounts, restore the separations that matter, and avoid reading September numbers as if August 31 never happened.
Frequently asked questions
What exactly changed on August 31, 2026?
Google made local inventory ads the default for every Shopping campaign in Google Ads. The Campaign.ShoppingSetting.enable_local field, which previously controlled whether a Shopping campaign could serve in-store inventory, is now ignored for that campaign type and treated as true.
Can I turn the default off at account level?
No. According to the trade coverage of the change, there is no account-level bypass. Separation has to be applied per campaign, either through the inventory filter in the Google Ads interface with the channel set to Online or Local, or through a listing scope on the API with product_channel set to ONLINE.
Does this affect me if I have no physical stores?
Effectively no. Local inventory ads require an active local product inventory feed in Merchant Center and verified store locations linked through a Business Profile. Without those, the setting has nothing to serve and campaigns continue to behave as before, though the flag itself still flips.
What happens if my tools still send enable_local as false?
It depends on the API version. On Google Ads API v25.1 and later, the call returns ContextError.OPERATION_NOT_PERMITTED_FOR_CONTEXT, a hard error. On earlier versions the call succeeds and the value is silently treated as true, which means the tool reports an opt-out that is not actually in effect.
Does this change Performance Max campaigns?
No. Performance Max for Retail already served local inventory by default, and according to Digital Applied’s account of the documentation, Performance Max, Demand Gen and other campaign types retain the existing enable_local behavior. The override is specific to standard Shopping campaigns.
Will my ROAS or CPA move because of this?
Very likely, if you have local inventory data. A campaign that now covers both online and local demand on one budget draws from a different impression pool with different conversion timing and different average order values. Any comparison that spans August 31 mixes a single-channel period with a dual-channel one.
I ran separate online and local campaigns. What happened to them?
Unless you applied inventory filters or listing scopes before August 31, both campaigns now serve both channels. They are competing on the overlap of their catalogs, and each budget is exposed to demand it was not sized for. Applying filters restores the separation, but the pacing baselines will need to be rebuilt.
What is the fastest way to check my exposure?
Open Merchant Center and confirm whether an active local product inventory feed exists and whether Business Profile store locations are verified. If both are present, list every Shopping campaign that was online only by intent and apply an inventory filter to each. If neither is present, no action is required.
Why did Google make this change?
Google has not published a detailed rationale beyond its advertiser notification. The change aligns standard Shopping campaigns with Performance Max for Retail, which already defaulted to local serving, and it increases the share of the auction in which store availability data participates without depending on advertisers to opt in.