Key details

  1. The change takes effect August 31, 2026.
  2. Local Inventory Ads become enabled by default for applicable Shopping campaigns.
  3. For Shopping campaigns, `ShoppingSetting.enable_local` no longer controls whether local inventory can serve.
  4. Google Ads API v25.1+ returns `ContextError.OPERATION_NOT_PERMITTED_FOR_CONTEXT` if code tries to set `enable_local=false` on a Shopping campaign.
  5. Older API versions silently treat the false value as true.
  6. Online-only Shopping campaigns should use a listing scope with `product_channel=ONLINE` or the UI Inventory filter.
  7. The `enable_local` field continues to work for other supported campaign types such as Performance Max and Demand Gen.

What builders should take away

  1. Search campaign-management code for mutations of `ShoppingSetting.enable_local`, especially explicit false values.
  2. If you use Google Ads API v25.1 or later, handle or eliminate the new context error before automated campaign changes fail.
  3. Replace the old Shopping opt-out with a `product_channel=ONLINE` listing scope when an online-only campaign is intentional.
  4. Audit campaign inventory, spend and conversion reporting after August 31 to confirm local offers are not sharing budgets unexpectedly.
  5. Do not remove `enable_local` indiscriminately from multi-campaign automation; Google says it still applies to supported non-Shopping campaign types.
  6. Document channel-separation intent explicitly so a future API default cannot silently change campaign scope.

What changed

On August 31, 2026, Google changes Standard Shopping campaigns so Local Inventory Ads are enabled by default wherever the campaign is eligible to use local inventory. The Google Ads API backend now treats `Campaign.ShoppingSetting.enable_local` as true for Shopping campaigns regardless of the supplied value. In Google Ads API v25.1 and later, attempting to set `enable_local` to false returns `ContextError.OPERATION_NOT_PERMITTED_FOR_CONTEXT`; in older API versions the false value is silently treated as true. Advertisers that need an online-only campaign must instead use a listing scope with `product_channel=ONLINE` or the inventory filter in the Google Ads UI. Google says the field continues to work normally for other supported campaign types such as Performance Max and Demand Gen.

Why it matters

A campaign-management integration can change behavior without changing its own configuration: code that used `enable_local=false` as a safety boundary can now either fail or silently stop enforcing that boundary. For retailers and agencies, that can mix local and online inventory into a campaign unless a replacement filter is applied. The operational fix is therefore not just upgrading a client library; teams need to encode channel separation in the supported campaign criterion or UI inventory-filter model and verify reporting and budgets after the transition.

Local inventory is now the Shopping default

Google is aligning Standard Shopping more closely with its newer retail campaign behavior by turning on the local-products setting automatically. The practical scope is narrower than 'all Google Ads': the change targets Shopping campaigns that can use Local Inventory Ads, not every campaign type.

The old false switch is no longer a control

For Shopping campaigns, the backend now overrides `ShoppingSetting.enable_local` to true. With API v25.1 and later, code that explicitly mutates the field to false receives `ContextError.OPERATION_NOT_PERMITTED_FOR_CONTEXT`. Older API versions do not preserve the old behavior either; they accept the request but treat the setting as true.

Online-only campaigns need an explicit listing scope

Google’s recommended API replacement is a campaign listing scope whose `product_channel` is `ONLINE`. Advertisers managing campaigns in the UI can use the Inventory filter to select online or local inventory. Teams that deliberately silo local and ecommerce budgets should migrate that distinction before relying on post-August campaign behavior.

Performance Max and Demand Gen are not part of this API break

Google says `enable_local` continues to function for other campaign types that support it, including Performance Max and Demand Gen. Shared automation should therefore branch by campaign type rather than deleting the field globally.

What to watch next

  • Whether Google later removes or deprecates the `enable_local` field entirely for Shopping in a new API version.
  • Advertiser reports of unexpected local inventory serving or budget mixing after the default change.
  • Any reporting changes that make local-versus-online performance easier or harder to separate.
  • Whether the same inventory-filter model expands to other retail campaign types.

Still unclear

  • The change affects campaigns that are eligible to serve local inventory; actual serving still depends on Merchant Center/local-inventory setup and auction conditions.
  • Google’s API announcement defines the control change, but the real spend impact will vary by retailer inventory, geography, bids and campaign structure.

Sources

Direct reading behind this dossier.

2 sources

Discussion

Discussion is reader-contributed. Comments are not part of the BTN dossier or its editorial evidence.

0 visible comments

Join the discussion

Keep comments useful and relevant. Reader contributions may be moderated and are not BTN editorial evidence.

Sign in to comment