On this page · 11 sections
- What changes on 31 August 2026
- Why Google is doing this
- The two ways to keep a campaign online-only
- Online versus local is a budget boundary, not a preference
- The feed prerequisites you cannot skip
- The 2026 Google retail change calendar
- A checklist to run before 31 August 2026
- India-specific considerations
- FAQ
- How eCorpIT can help
- References
Summary. From 31 August 2026, Google forces Campaign.ShoppingSetting.enable_local to true for every Shopping campaign, so Local Inventory Ads serve by default. Google Ads API v25.1 and later reject code that sets the field to false with a ContextError.OPERATION_NOT_PERMITTED_FOR_CONTEXT error; versions before v25.1 silently treat the value as true instead. The change was published on the Google Ads Developer Blog on 20 July 2026 by Dora Sun of the Google Ads API Team, and it applies only to Shopping campaigns, not Performance Max or Demand Gen. Online-only serving now takes a listing scope with product_channel set to ONLINE, or the inventory filter in campaign settings. It lands on top of two other 2026 retail changes: separate product IDs for online and in-store items, enforced from March 2026, and the Content API for Shopping sunset on 18 August 2026. For Indian retailers this sits inside a $1 trillion retail market that CII expects to nearly double to $2 trillion by 2030, and that already contributes over 10% of national GDP.
If you never touched enable_local, nothing visibly breaks. If you deliberately switched local serving off for specific campaigns, or if your bulk-editing tooling writes that field, you have work to do before the date.
What changes on 31 August 2026
Until now, serving products from a Local Inventory Ads feed required an explicit opt-in: someone had to set enable_local to true inside a campaign's ShoppingSetting. That gate is being removed. From 31 August 2026 the field carries no weight for Shopping campaigns, and the Google Ads API backend overrides the value to true regardless of what an advertiser or their tooling configured.
The scope is deliberately narrow. Other campaign types that support the field, including Performance Max and Demand Gen, keep the existing behaviour. The field itself is not deprecated; its effect is removed inside one campaign type.
The practical impact splits along API version lines, and that split is the part most teams miss:
| API version | Behaviour when your code sets enable_local to false |
Action required before 31 August 2026 |
|---|---|---|
| v25.1 and later | Returns ContextError.OPERATION_NOT_PERMITTED_FOR_CONTEXT |
Remove every false assignment to the field |
| Before v25.1 | Value is treated as true, no error raised | None immediately, but plan the removal before you migrate |
| Any version, Performance Max | Unchanged | None |
| Any version, Demand Gen | Unchanged | None |
| Any version, Shopping campaign read operations | Field returns true after the flip | Update any assertion or diff that expects false |
A migration to v25.1 or later therefore requires removing false assignments first, or campaign mutation calls start failing. Integrations still on an earlier version can defer the code change, but not the campaign restructuring.
Luis Rijo, who covers retail advertising for PPC Land, summarised the direction on the day of the announcement: "Google today set Shopping campaigns to serve Local Inventory Ads by default from August 31, 2026, stripping away a setting advertisers previously used to keep local offers out of specific campaigns."
Why Google is doing this
The move aligns Shopping campaigns with Performance Max for Retail, which already treats local product serving as standard behaviour. Local Inventory Ads show shoppers which nearby stores carry a product, whether it is in stock, and whether options such as in-store pickup are available, so the format sits between online search intent and physical store inventory.
Turning it on by default removes a setup step for merchants who want their store inventory discoverable. The cost falls on advertisers who had a reason to keep specific campaigns online-only: budget control, channel-specific measurement, or campaigns built to isolate online performance from in-store activity. For those teams the change is not neutral. It requires active reconfiguration to preserve a setup that one field used to handle.
This fits a pattern. Earlier in 2026 Google folded Local Services Ads into Google Ads as a Performance Max goal type, preserving pay-per-lead billing while cutting historical reporting. Optional settings keep becoming defaults, and advertisers keep being steered toward automated, feed-driven campaign types. Our note on Google Ads AI Max controls for D2C brands covers the same tension on the query-matching side.
The two ways to keep a campaign online-only
Removing the opt-out does not leave advertisers without options. It changes the mechanism from a boolean to a targeting decision.
Through the API. Use CampaignCriterionService to add a listing scope with product_channel set to ONLINE. That restricts the campaign to online inventory.
CampaignCriterion
campaign: customers/{customer_id}/campaigns/{campaign_id}
listing_scope:
dimensions:
- product_channel:
channel: ONLINE
Through the interface. The "Inventory filter" section in campaign settings lets you filter out local inventory and separate budgets by channel, keeping online and local spending in distinct silos.
| Requirement | Old mechanism | New mechanism from 31 August 2026 |
|---|---|---|
| Online-only serving | enable_local set to false |
Listing scope with product_channel = ONLINE, or inventory filter |
| Local-only serving | Separate campaign with local feed | Inventory filter set to Channel = Local |
| Split budgets by channel | Two campaigns, one with local off | Two campaigns, each with a channel-scoped inventory filter |
| Bulk change across accounts | Single boolean write | Criterion write per campaign, or UI filter per campaign |
| Verification that it worked | Read enable_local |
Read the campaign criteria, because the field always returns true |
That last row is the operational trap. Any monitoring, QA script or agency audit template that checks enable_local as proof of an online-only campaign now returns a value that means nothing. Rewrite the check against campaign criteria before the flip, not after someone notices local spend in a channel-restricted budget.
Online versus local is a budget boundary, not a preference
The inventory filter does more than exclude local products. It lets budgets be siloed by channel, which matters for any retailer measuring online and in-store performance against different targets.
Under the old model, enable_local set to false was a blunt guarantee that a campaign stayed online-only. Under the new model that guarantee comes from a listing scope or an inventory filter. The end state is the same. The way the advertiser expresses the boundary is different, and every automated system or bulk-editing tool built around the old toggle needs rebuilding around channel-level scoping.
Three things to settle before you restructure:
- Which campaigns genuinely need to stay online-only. Many teams set
enable_localto false years ago as a default, not a decision. If in-store pickup and local availability would help the product, letting local serving stay on is the cheaper path.
- Whether your conversion tracking separates store visits and in-store sales from online orders. If it does not, local serving will absorb budget you cannot attribute, and the campaign will look worse than it is.
- How your reporting rolls up. A single campaign now serving both channels changes what your weekly ROAS number means. Decide whether you split by campaign or by segment before the numbers move.
The feed prerequisites you cannot skip
The default applies to Shopping campaigns linked to Merchant Center accounts with the Local Inventory Ads add-on in place. Three earlier 2026 changes gate whether local serving actually works once it is switched on.
Separate product IDs for online and in-store items. Google announced this in January 2026 with enforcement beginning in March 2026. Merchants who need different prices or availability for the online and in-store versions of the same product must maintain two distinct identifiers. If your feed still reuses one ID across both, local serving will surface the wrong price or the wrong availability, which is worse than not serving at all.
The Merchant API and OmnichannelSettings. When the Merchant API arrived in Google Ads scripts, it introduced an OmnichannelSettings resource that manages account configuration for omnichannel serving, covering Free Local Listings and Local Inventory Ads. Account-level configuration is moving to structured objects, in the same direction as the enable_local change.
The Content API for Shopping sunset on 18 August 2026. That deadline lands 13 days before the Local Inventory Ads flip, and any team still finishing that migration will be doing both at once. We covered the sequencing in the Content API to Merchant API migration guide, and eCorpIT runs it as a fixed-scope engagement through our Merchant API migration service.
Local availability data also has to be current. A local feed that reports stock a store does not have generates in-store trips that end badly, and that is a customer-experience cost no bidding change recovers.
The 2026 Google retail change calendar
| Date | Change | Who it affects |
|---|---|---|
| 6 January 2026 | Google announces separate product IDs for online versus in-store items | Any merchant running Local Inventory Ads |
| March 2026 | Product ID split enforcement begins | Merchant Center feed owners |
| 25 March 2026 | Loyalty program features expand to 14 countries, including local inventory ads | Retailers with loyalty programmes |
| 22 April 2026 | Google Ads API v24 adds retail filter targeting for Shopping campaigns | API integrators |
| 15 June 2026 | Google Ads API expands product reporting to all campaign types | Reporting and BI teams |
| 20 July 2026 | Local Inventory Ads default announced on the Ads Developer Blog | Shopping advertisers and developers |
| 18 August 2026 | Content API for Shopping shuts down | Anyone still on the legacy API |
| 31 August 2026 | Local Inventory Ads become the default for all Shopping campaigns | Every Shopping advertiser with the LIA add-on |
Google has been on a monthly API release cadence since v23 in January 2026, so the version your integration targets moves faster than it used to. Pin the version, read the release notes, and budget a recurring slot for this rather than treating each change as an incident.
A checklist to run before 31 August 2026
- Inventory every Shopping campaign where `enable_local` is currently false. That list is your work queue. Everything else is unaffected.
- Decide, campaign by campaign, whether online-only is still the right answer. Do not port a setting nobody remembers choosing.
- For campaigns that must stay online-only, add a listing scope with `product_channel` = ONLINE, or set the inventory filter to Channel = Online. Do this before the date so you can verify serving behaviour while the old field still exists as a reference.
- Grep your codebase and scripts for `enable_local`. Remove every false assignment. If you are on a version before v25.1, you can defer, but the assignment is now dead code either way.
- Rewrite QA and audit checks that treat
enable_localas evidence of online-only serving. Point them at campaign criteria.
- Confirm the product ID split is live in your feed for every item sold in both channels.
- Check that store-level availability updates at a cadence your stores can actually honour. Daily is a floor for fast-moving categories.
- Set a reporting baseline the week before the flip. Impression share, CPC, ROAS and conversion mix by campaign. Without it you cannot separate the effect of this change from ordinary September seasonality.
- Brief finance and store operations. Local serving sends footfall to stores that may not be staffed for it.
The bulk of the risk here is not the setting. It is measurement drift in the two weeks after the flip, when a campaign that used to mean one thing quietly starts meaning another.
India-specific considerations
Three things make this land differently for Indian retailers and D2C brands.
First, the physical footprint is the whole point. CII put India's retail market at $1 trillion in 2024, forecast to nearly double to $2 trillion by 2030, with retail contributing over 10% of national GDP and employing nearly 8% of the workforce. D2C brands in fashion, jewellery and wellness have been opening physical stores, and traditional retailers have been building digital capability. Local Inventory Ads sit exactly on that seam, so the default is closer to an opportunity than a tax for brands that have stores and have not yet fed them into Google.
Second, feed hygiene is the constraint, not ad strategy. Many Indian retailers run store inventory in a POS that is not connected to the ecommerce catalogue in real time. CII lists exactly this as a sector-level problem: inventory, CRM, POS and ecommerce platforms operating in silos, with low real-time visibility across warehouses and stores. Switching local serving on without a reliable availability feed advertises stock you may not have.
Third, the buying journey is already multi-surface. Smartphone usage exceeds 75% and UPI accounts for over 80% of digital payments by volume, and ONDC has recorded more than 150 million transactions and over 7 lakh sellers and service providers in three years. A shopper who checks local availability on Google, reserves on WhatsApp and pays by UPI in store is normal, not an edge case. If you are building for that pattern, the ONDC playbook for D2C brands and sellers covers the marketplace side, and our Google Ads ROI work for Gurugram advertisers covers the paid side.
FAQ
How eCorpIT can help
eCorpIT is a CMMI Level 5 and ISO 27001:2022 certified technology organisation in Gurugram, and our performance marketing and engineering teams work on the same account: feed pipelines, Merchant Center configuration and campaign structure together, rather than a media team filing tickets at a developer team. For this change that means auditing which Shopping campaigns depend on enable_local, rebuilding online-only serving as channel scoping, and getting store availability into the feed at a cadence your operations can hold. Start with our digital marketing work for Indian businesses or talk to a senior specialist through /contact-us/.
References
- Dora Sun, Enabling Local Inventory Ads by Default for Shopping Campaigns starting on August 31, 2026, Google Ads Developer Blog, 20 July 2026.
- Luis Rijo, Google forces local inventory ads on all Shopping campaigns August 31, PPC Land, 20 July 2026.
- CII Team, Growth of Omnichannel Retail in India, Confederation of Indian Industry, November 2025.
- IBEF, Retail industry in India.
- Google Merchant Center Help, Merchant Center announcements change log.
- Google Ads Help, New features and announcements.
- Common Thread Collective, Google Shopping campaigns are getting Local Inventory Ads by default.
Last updated: 5 August 2026.