Google Makes Local Inventory Ads Default for All Shopping Campaigns Aug. 31
From August 31, Google automatically enables Local Inventory Ads on all Shopping campaigns. Here is what changes, what breaks, and what to do before the deadline.

Google confirmed on the Google Ads Developer Blog that Local Inventory Ads will be switched on by default for every Shopping campaign starting August 31. Until now, advertisers had to explicitly set the enable_local field to true in a campaign's ShoppingSetting to serve local products. After August 31, that field will be ignored entirely and treated as true, meaning any workflow built around keeping local and online inventory separate needs to be updated before the deadline.
What happened
| Detail | Fact |
|---|---|
| Effective date | August 31 |
| Affected campaign type | Shopping campaigns only |
| Field being deprecated | Campaign.ShoppingSetting.enable_local |
| API version that returns an error | Google Ads API v25.1 or later |
| Error returned (v25.1+) | ContextError.OPERATION_NOT_PERMITTED_FOR_CONTEXT |
| API versions below v25.1 | Code keeps working, but disable attempts are silently ignored |
Google announced the change on the Google Ads Developer Blog after notifying advertisers the previous week. Starting August 31, the “Local products” setting in every Shopping campaign will be permanently on. The enable_local flag that advertisers previously set to true or false will stop having any effect, and Google will treat it as true no matter what value is submitted.
The move brings Shopping campaigns in line with Performance Max for Retail, where Local Inventory Ads are already on by default. Performance Max, Demand Gen, and other campaign types that use the enable_local field are not affected by this change.
What breaks for developers
If your integration targets Google Ads API v25.1 or later and you are still sending enable_local = false, you will start receiving a ContextError.OPERATION_NOT_PERMITTED_FOR_CONTEXT error. Stop sending that parameter now, before August 31.
For earlier API versions, the code will not throw an error. Google will simply ignore the disable instruction and serve local inventory anyway. That silent failure is arguably more dangerous because nothing in your logs will flag the change.
How do you keep local and online inventory separate after August 31?
Google is not removing control entirely. It is moving that control to inventory filtering. Two options are available:
- Create a listing scope using
CampaignCriterionServicewithproduct_channelset toONLINE. This restricts the campaign to online products only. - Use the Inventory filter inside Google Ads campaign settings to exclude local inventory, and set separate budgets for online and local products.
Neither option is a direct one-to-one replacement for the old field. Both require deliberate setup work, and if you manage multiple Shopping campaigns, you will need to apply the filter or listing scope to each one individually before the deadline.
Why it matters
Retailers who run Shopping campaigns without physical store locations, or who deliberately budget separately for in-store and online sales, are most exposed here. If you do nothing, local inventory will start appearing in campaigns where it was previously excluded, which can affect your cost-per-click, your conversion data, and your budget pacing.
The alignment with Performance Max for Retail also signals where Google is heading: a unified, always-on local inventory experience across its ad formats. Giving advertisers a simple off switch runs counter to that direction, so this change is unlikely to be reversed.
If you run Google Ads campaigns for clients with both physical and online presence, this is worth auditing now. A campaign that quietly starts serving local products can skew your attribution reporting just as much as it affects spend.
Our take
This is a quiet but meaningful forced migration. Google is framing it as alignment and simplification, but for any advertiser who was intentionally separating local and online inventory, it is a breaking change with a firm deadline. The fact that pre-v25.1 API versions will fail silently is the detail most likely to cause real damage: campaigns will behave differently with no error to catch.
The replacement options, listing scopes and inventory filters, do work, but they require more setup than flipping a single field. If you have a workflow automation that manages campaign settings programmatically, test it against the new behavior before August 31, not after.
Our honest advice: pull a list of every Shopping campaign that currently has enable_local set to false, decide whether each one should serve local products, and apply the appropriate inventory filter or listing scope this week. Do not wait until late August.
What to do about it
- Audit all Shopping campaigns and identify any that have
enable_localset to false today. - Decide, per campaign, whether local inventory should serve or be excluded.
- For campaigns that should remain online-only, add a listing scope via
CampaignCriterionServicewithproduct_channel = ONLINE, or apply the Inventory filter in Google Ads settings. - Update any API integration running on v25.1 or later to stop sending
enable_local = falsebefore August 31. - For integrations on earlier API versions, add a note or alert to your monitoring: the field will be silently ignored, so do not rely on it for campaign logic.
- Verify budget splits between local and online campaigns reflect the new serving behavior after the change takes effect.
Get your Shopping campaigns audited and your inventory filters in place before August 31 or expect local products to appear where you did not intend them.
Frequently asked questions
When will Google automatically enable Local Inventory Ads on Shopping campaigns?
Google will automatically enable Local Inventory Ads on all Shopping campaigns starting August 31. After that date, the enable_local field in ShoppingSetting will be ignored and treated as true regardless of the value set.
How do I stop local products from serving in my Shopping campaigns after August 31?
You have two options: create a listing scope using CampaignCriterionService with product_channel set to ONLINE, or use the Inventory filter in Google Ads campaign settings to exclude local inventory.
What error will I get if I set enable_local to false using API v25.1 or later?
Google Ads API v25.1 or later will return a ContextError.OPERATION_NOT_PERMITTED_FOR_CONTEXT error if you attempt to set enable_local to false after August 31.
Does this change affect Performance Max or Demand Gen campaigns?
No. The change applies only to Shopping campaigns. The enable_local field continues to function normally for Performance Max, Demand Gen, and other supported campaign types.

