Google Local Inventory Ads: Setup, Feeds and What Changed in 2026

Ishant

Ishant

Published : September 14, 2026 at 3:25 pm

Updated : September 14, 2026 at 3:25 pm

If you run Shopping campaigns and your Merchant Center account has the local inventory ads add-on enabled, Google switched local ads on for you on 31 August 2026. You did not have to agree to it. The setting that used to turn it off no longer does anything.

That happened two weeks ago. I read the eighteen guides ranking for local inventory ads on 14 September 2026 and none of them mentioned it, including several updated after the announcement went out.

There is a second date coming. On 30 September 2026, two attributes become required for in-store pickup products across the UK and Europe, and Google’s own documentation disagrees with itself about which countries are covered and never states the deadline on the two pages a merchant would actually read.

This guide covers both, then everything else: the feed architecture, every attribute with its real required status, the error messages and what each one actually means, and how to turn the whole thing off cleanly if you do not have a shop.

Short answer: Google local inventory ads show what is in stock in your physical shops to shoppers nearby. They need two things joined together: your normal product data source, and a local inventory data source that carries store codes and per-store availability. The store code links to your Business Profile, the product id links to your primary feed, and most setup failures are one of those two joins breaking. Free local listings are the unpaid version, available in fewer countries. Since 31 August 2026 local ads run by default in Shopping campaigns, and you now separate local from online using the inventory filter rather than the old local products setting.

What changed on 31 August 2026, and why your Shopping campaigns may already be running local ads

Google announced this on 20 July 2026 on the Google Ads Developer Blog. The wording is direct: Google is aligning Shopping campaigns with Performance Max for Retail campaigns by enabling Local Inventory Ads by default.

What Google actually changed

Before 31 August 2026From 31 August 2026
Local products was a setting you opted into per Shopping campaignLocal is on by default and the old setting is overridden to true
The API field controlled itThe field no longer has any effect on Shopping campaigns
You separated budgets with the local products settingYou separate budgets with the inventory filter, set to Local stores or Online
Applied to whoever turned it onApplies to every Shopping campaign in an account with the local add-on enabled

Three details worth holding on to.

First, this is Shopping campaigns only. Google is explicit that the field continues to behave normally for other campaign types including Performance Max and Demand Gen.

Second, if you manage campaigns through the API or a third-party tool: from v25.1, setting the old field to false on a Shopping campaign returns an operation-not-permitted error. On versions before v25.1 the write is silently treated as true, which is the quieter problem, because nothing tells you your setting stopped applying.

Third, Google’s own Help Center still says to review your campaigns before August 2026, while the developer blog gives the effective date as 31 August 2026. The developer blog is the precise source. The Help Center wording was written before the date firmed up and has not been corrected.

How do I check whether local is on in my Shopping campaigns?

  1. Open the Shopping campaign and go to campaign settings.
  2. Look for the Inventory filter section rather than the old local products toggle.
  3. If no channel filter is set, the campaign is eligible to serve both online and local.
  4. Cross-check in your reporting: segment by channel and look for local traffic appearing in campaigns that never had it before.

How do I separate local and online budgets again?

Set an inventory filter with Channel set to Local stores on one campaign and Online on the other. A second dimension, Channel exclusivity, lets you restrict further to single-channel or multi-channel products. In the API, use the campaign’s listing scope to restrict it to the online channel. That is now the supported way to keep the two apart.

This matters more than it sounds. Local traffic and online traffic convert differently, carry different margins and often belong to different teams’ budgets. If you were relying on the old setting to keep them separate, that separation has quietly gone.

What are Google local inventory ads?

Google local inventory ads show a shopper that a product is in stock in one of your physical shops near them. Google describes them as helping you boost online and in-store sales by reaching customers from more places across Google.

Practically, the shopper sees the product, the price, and that it is available at a named shop with a distance. Depending on how you have set things up, they may also see a pickup option.

One caution, because several guides state this confidently and Google does not. Google’s own overview article does not enumerate which surfaces local inventory ads appear on. The Help Center FAQ confirms Maps and Shopping results. Anything beyond that is an assumption, so treat lists of four or five surfaces as unverified.

Local inventory ads vs free local listings: what is the difference?

Local inventory adsFree local listings
CostPaid, runs through Google AdsFree
Country availabilityRoughly 90 countriesRoughly 47 countries
Pickup supportAll supported LIA countriesA named subset only, and not most of the EEA
Feed requirementSame two data sourcesSame two data sources
AcceptanceProduct Expert guidance says acceptance is not automatic. Google does not document thisSame
Campaign typesShopping, Performance Max, Demand Gen with product feedsNot a campaign, organic placement

Note the last row on acceptance. A Product Expert put it plainly in a Merchant Center thread: a merchant must be accepted into whichever local programme they select, free or paid, and not all merchants are accepted. Google does not state this in the Help Center, so treat it as practitioner guidance rather than documented policy. It would explain a number of stuck setups.

Google also uses two names for the free programme, free local listings and free local product listings, interchangeably across different pages. They are the same thing.

If you are weighing the unpaid route more broadly, our guide to free listings in Merchant Center covers the online side of the same question.

Why run local inventory ads at all?

The standard answer is that they drive footfall. That is true but it is not the useful part, because footfall is the hardest thing on this list to measure.

ReasonWhat it actually gets youHow measurable is it
You capture near-me intentA shopper searching for a product nearby sees that you have it today, which online-only listings cannot answerImpressions and clicks, directly
You compete on availability, not priceAgainst a cheaper online seller with a three-day delivery, in stock today is a different offerIndirect, visible in conversion rate
You show stock you are not otherwise advertisingShop-only lines, clearance and slow-moving stock get a channelDirect, by filtering to those products
You get pickup as a conversion pathBuy online collect in store, which suits high-consideration and bulky itemsDirect, as an online conversion
Store visitsThe footfall argumentModelled, not counted. Treat it as directional

An honest caveat most guides skip: store visits are a modelled metric, not a count of people walking through your door. If the business case for local rests entirely on a store visit number, it rests on a model. Build the case on the first four rows instead, where you can see the data.

There is also a reason not to bother. If you have one shop, a small catalogue and no pickup offer, the feed work and the ongoing availability accuracy will likely cost more than the traffic is worth. Local rewards multi-location retailers with stock that actually moves.

How are local inventory ads different from standard Shopping ads?

Standard Shopping adLocal inventory ad
What it advertisesA product you will shipA product in stock in a named shop
Data neededPrimary product data onlyPrimary product data plus local inventory data
Extra joinsNoneStore code to Business Profile, id to primary feed
Where the click goesYour product pageYour product page, or a store-specific page, or a Google-hosted local page
GeographyWherever you targetNear the shop that holds the stock
CampaignShopping, Performance Max, Demand GenThe same campaigns, with local enabled
Since 31 August 2026Runs by defaultAlso runs by default in Shopping campaigns

The last row is the one that matters now. Before 31 August these were two things you chose between. In Shopping campaigns they are now one thing by default, which is precisely why the inventory filter has become the control that matters.

Which countries support local inventory ads and free local listings?

Few competing guides carry a current country list. The numbers on the pages I read run from five countries to twenty, against a real list of several dozen, and one guide aimed at the US market omits the United States entirely.

Three separate lists matter here, and they are not the same list.

ListRoughly how manyWhat it governs
Local inventory ads availabilityAbout 90 countriesWhether you can run paid local ads at all
Free local listings availabilityAbout 47 countriesWhether the unpaid version exists for you
Pickup support for free local listingsA named 30-country exclusion listWhere pickup cannot show on unpaid listings
The local inventory appUK, Ireland, US, Canada onlyWhether Google can add in-store products automatically

Check the live list in Google’s overview article rather than any blog, including this one, because these lists move.

Why pickup availability is narrower than you think

Google’s pickup documentation states that pickup is not supported for free local listings in Austria, Belgium, Bulgaria, Croatia, Cyprus, Czech Republic, Denmark, Estonia, Finland, France, Germany, Greece, Hungary, Iceland, Ireland, Italy, Latvia, Liechtenstein, Lithuania, Luxembourg, Malta, Netherlands, Norway, Poland, Portugal, Romania, Slovakia, Slovenia, Spain and Sweden.

That is most of the EEA. It has a direct consequence for the September deadline below: the new pickup requirements land hardest on paid local inventory ads in those countries, because pickup largely cannot show on the free listings there in the first place.

What do you need before you can run local inventory ads?

RequirementDetail
Physical shopsReal locations selling the products, in a supported country
A Business ProfileVerified locations, each carrying a store code
Merchant Center accountWith the local inventory ads or free local listings add-on enabled
Primary product data sourceYour normal product data, meeting the product data specification
Local inventory data sourcePer-store availability keyed on store code and product id
Google Ads accountLinked, for the paid version only
Product page experienceOne of three options, chosen deliberately, see below
ImpressumGermany, Austria and Switzerland only

The Impressum requirement is in Google’s own ten-step implementation article and is easy to miss.

Your primary data source still has to satisfy the ordinary rules. If it does not, fix that first, because local sits on top of it. Our guide to the Google product data specification covers every attribute, and Merchant Center requirements covers the policy side.

How does the feed architecture actually work?

This is where most setups fail, and where the competing guides disagree with each other. Some say two feeds, some say four. The answer is two data sources, joined by two different keys.

Data sourceWhat it carriesWhat it joins to
Primary product data sourceTitle, description, link, image, price, the usual product attributesNothing. This is the base
Local inventory data sourceStore code, product id, availability, and the optional per-store fieldsid joins to the primary source. store_code joins to your Business Profile

Google’s local inventory data specification requires that the store code matches the store codes you submit in your Business Profile, and that the id attribute in your local inventory feed matches the id in your primary product data source. Two joins, two failure modes.

One useful simplification: you do not necessarily need a separate local product feed alongside your normal one. You need the local inventory data on top of the product data you already send.

Why does my feed say “offer does not exist”?

Because the id join is failing, and on hosted platforms it is almost always a prefix.

PlatformWhat it does to your ids
ShopifyThe app assigns its own ids, and a shopify_ZZ_ style prefix appears where a country code should be
WooCommerceThe Google plugin prepends gla_ to product ids
Feed tools generallyThe primary and local feeds are built from different id rules inside the same tool

The fix is to read the exact id value Google holds rather than the one you think you sent. Open the product under All products, look at Technical details for the primary feed and the final attributes, and copy the id from there.

A Google support answer relayed into the Community adds a counterintuitive instruction that some merchants report working: strip the local inventory feed back so it carries only the id and one other attribute while you debug, because that minimises the ways the join can break. Add the rest back once it matches.

Expect a delay even when it is right. Merchants commonly report around a day before products match across the two sources. Google does not publish a figure.

If you are on Shopify and seeing duplicates or products reappearing, the cause is usually more than one data source running at once. Our guide to Shopify Merchant Center data sources covers that specific failure.

What goes in the local inventory data source?

Here is the full local inventory data specification. The Required column is the part that matters, because several popular guides state it wrongly, and tend to omit the one attribute Google marks required beyond the obvious three.

AttributeStatusFormat and limits
[id]RequiredMax 50 characters. Must match the id in your primary data source
[store_code]RequiredMax 64 characters, case sensitive, must match Business Profile
[availability]Requiredin_stock, limited_availability, on_display_to_order, out_of_stock
[pickup_sla]Required where you offer store pickupsame day, next day, 2-day through 6-day, multi-week
[price]It dependsNumeric plus ISO 4217, for example 15.00 USD
[sale_price]OptionalNumeric plus ISO 4217
[sale_price_effective_date]OptionalISO 8601, max 51 characters
[quantity]OptionalNumeric
[pickup_method]Optionalbuy, reserve, ship to store, not supported
[pickup_cost]Conditional, see the September 2026 sectionSub-attributes for flat rate and free threshold
[loyalty_program]OptionalSub-attributes for label, tier, price, dates, shipping label
[local_shipping_label]OptionalMax 100 characters, drives same-day delivery costs

Which attributes are actually required?

Id, store code and availability. That is the base set.

Several popular guides list price and quantity as required. Google’s specification marks quantity Optional and price It depends, not required. Those same guides tend to omit pickup SLA, which Google describes as required store-specific pickup information. It is worth checking your own feed against the specification, because a feed built from one of those guides will carry fields it does not need and miss one it does.

What values do pickup_method and pickup_SLA take?

AttributeAccepted valuesMeaning
pickup_methodbuyThe full transaction happens online, collection in store
reserveReserved online, paid in store
ship to storeOrdered online, shipped to the shop for collection
not supportedNo pickup for this item
pickup_slasame day, next day, 2-day to 6-day, multi-weekWhen the order will be ready, relative to order time

One more inconsistency: Google’s dedicated pickup SLA page renders the same values with underscores rather than spaces. Follow the local inventory data specification.

Two details that trip people up. The values ship to store and not supported contain spaces, not underscores, unlike almost every other Google feed value. And pickup method is now optional, so guides telling you to populate it as a hard requirement are out of date.

What is changing on 30 September 2026?

Two attributes become required for in-store products enabled for pickup. Google announced it in its Merchant Center announcements changelog on 28 April 2026.

AttributeRequired whenSub-attributes
[pickup_cost]You charge a pickup cost on your website for in-store pickuppickup_cost_flat_rate, optional pickup_cost_free_threshold
[minimum_order_value]Your website requires a minimum spend to buy or reserve for in-store pickupcountry, price required; service, surface optional

Both are conditional. If you do not charge for pickup and do not set a minimum spend, nothing changes for you. Several trade write-ups have framed this as a blanket requirement. It is not.

Which countries does the 30 September deadline cover?

Google says it two different ways on four different pages.

Google pageWording used
Merchant Center announcement, 28 April 2026United Kingdom, Switzerland and all EEA countries
Local inventory data specificationUnited Kingdom and EU and EFTA countries
Pickup cost attribute pageUnited Kingdom and EU and EFTA countries
Minimum order value attribute pageUnited Kingdom and EU and EFTA countries

A third naming inconsistency sits alongside this one: Google’s pickup article calls the free threshold [free_pickup_threshold] while the attribute page calls it [pickup_cost_free_threshold].

The two phrasings resolve to nearly the same set. The EEA is the EU plus Iceland, Liechtenstein and Norway. EFTA is those three plus Switzerland. So the practical footprint is identical, but only the announcement names Switzerland explicitly and only the attribute pages name EFTA. If you are writing this into a client brief, use both phrasings so nobody argues about Switzerland.

Why you will not find the deadline on the pages you would naturally read

This is the part worth knowing. The two dedicated attribute pages, the ones a merchant lands on when they search for pickup cost or minimum order value, carry no date at all. They state the requirement as though it were already in force.

The 30 September 2026 date appears only in the specification page and in the announcement changelog. If your developer reads the attribute documentation and concludes the rule is already live, that is Google’s documentation doing that, not carelessness on their part.

The gap Google has not documented

Here is a problem Google has not addressed in its documentation.

The Merchant API local inventory resource has no dedicated field for either pickup_cost or minimum_order_value. Minimum order value is not in the local inventory data specification either; it lives in the product data specification as a shipping attribute.

So a merchant who submits local inventory through the Merchant API has no documented local-inventory path to supply either attribute. They have to go through product data instead. The Content API for Shopping was switched off on 18 August 2026, six weeks before this requirement bites, so anyone still on it had to migrate first and then work out this gap on their own.

If you are API-based and in scope, budget time for this rather than assuming there is a field waiting for you.

What happens if you miss the deadline?

Google’s announcement does not state the consequence. Trade coverage says affected products may be disapproved. Since Google has not published it, treat disapproval as the likely outcome and the safe planning assumption, not as a documented fact.

How do you set up local inventory ads step by step?

Google’s own implementation article runs to ten steps. Here they are with the parts that actually cause trouble flagged.

StepWhat to doWhere it goes wrong
1Add the local inventory ads or free local listings add-on in Merchant CenterTurning it on with no shops is what creates most false error reports
2Select your country of saleCheck it is on the right list, the two programmes differ
3Add your shops and link your Business ProfileAdd locations in bulk, not one at a time, see below
4Provide in-store product availabilityThe local inventory data source
5Configure the product page experienceThree options with very different obligations
6Set pickup and display optionsPickup SLA is the required one. Pickup method is optional, but Google asks for both for buy online, collect in store
7Add your inventoryExpect roughly a day for the two sources to join
8Add an ImpressumGermany, Austria and Switzerland only
9Verify inventoryConditional, not always required, see below
10Link your Google Ads accountPaid version only

On step 3, one specific piece of advice from a resolved Community thread is worth knowing, though it is not in the documentation. A merchant who had completed every step still got invalid store code errors, and the fix was not in the feed. They were told to add the store information in bulk rather than using the Add another business option, then wait 24 hours and reprocess the Merchant Center account. That resolved it for them.

Which product page experience should you choose?

Google retired the old merchant hosted local storefront naming in the Help Center. Its current article on the product page experience gives three options, and the choice determines whether you get inspected.

OptionWhat your product page must showInventory verification
Product pages with in-store availabilityWhether the item is in stock in storeNot required
Store-specific product pages with availability and pricePer-store availability and price, using a link template with a store code parameterNot required
Product pages without in-store availabilityNothing local. Google hosts the local experienceYou may be asked to verify, and pickup today and pickup later features will not display

The second option is rarely explained. It needs a link_template attribute carrying a {store_code} parameter, so Google can send the shopper to the right shop’s version of the page.

Worth knowing if you work through the API: the old merchant hosted local storefront naming is retired in the Help Center but still live in the Merchant API, which exposes basic and full variants alongside the Google-hosted option. The two layers use different vocabulary for the same choice.

When is inventory verification actually required?

Several popular guides present inventory verification as a mandatory step for everyone. It is not. Google requires it only where your product pages do not show what is in stock at your shops, which is the third option in the table above.

If you take either of the first two options, you are not verified.

What does inventory verification involve?

ElementDetail
What it checksThat product information in your shops matches the inventory data you submit
Sample size100 products pulled from your data sources
Time per shopAbout two hours
DeadlineMust be completed within the same business day
Request buttonActivates within 48 hours
ReviewUp to seven business days
StatusesVerified, Under review, Ineligible

Google publishes no accuracy threshold, so there is no documented pass mark. Anyone quoting one is guessing.

Set expectations on timing carefully. Google’s article gives up to seven business days for review. A Product Expert answering a merchant who had already waited two weeks put the real end-to-end figure at around a month. Plan for longer than the documented window.

Google’s own description is an in-store process taking about two hours per shop that must be finished the same business day, not a form you fill in from a desk.

How do you optimise local inventory ads once they are running?

Most guides give the same four tips: bid higher near your shops, bid higher during opening hours, turn on pickup, and keep the feed fresh. Those are correct and worth doing, so here they are with the detail that is usually missing, followed by the ones nobody lists.

The four everyone recommends

TacticThe detail usually left out
Bid up close to your shopsRadius targeting around each shop only works if you actually have separate campaigns or location adjustments per region. On Smart Bidding you are giving a signal, not setting a bid
Bid up during opening hoursPointless on its own if your pickup SLA says next day. Align the schedule with what your SLA actually promises
Offer pickupPickup SLA is the attribute Google marks required for pickup items. Setting pickup method alone does not enable it
Keep the feed freshAvailability accuracy is the thing being judged, not upload frequency. A feed that updates hourly and is wrong is worse than a daily one that is right

The ones worth more

  1. Split local and online into separate campaigns on purpose. Since 31 August this is the single highest-value change available, because otherwise one budget and one target now covers two channels with different margins and different conversion behaviour. Use the inventory filter, Channel set to Local stores on one and Online on the other.
  2. Segment by store performance, not just by product. A product that sells in three shops and sits in twelve is not one performance line. Store code is in your data, so use it.
  3. Use custom labels for stock depth. Label thin stock differently from deep stock and treat them differently. Advertising hard against two remaining units is how you generate a wasted click and an unhappy visit.
  4. Fix availability accuracy before you touch bids. Every other lever is downstream of whether your in-stock flag is true. This is also what an inventory verification check would examine if you are ever asked for one.
  5. Choose the product page experience deliberately. Store-specific pages with availability and price are more work but avoid verification entirely, and they give the shopper the answer on your site rather than Google’s.
  6. Check the pickup SLA you advertise is one the shop can meet. Same day is a strong offer and a bad one to miss. This is an operations question more than a marketing one.
  7. Watch clearance and shop-only lines. These are usually absent from the online feed entirely, and local is the only channel that can sell them.

One thing deliberately not on this list: chasing impression share on local. Local impressions are constrained by how many people are physically near your shops searching for what you stock. Unlike online, you cannot buy your way past that ceiling, so a low local impression share is often a fact about your catchment rather than a problem with your account.

Why are my local inventory ads not showing?

The errors below are the ones merchants post most often, in the wording Merchant Center uses.

ErrorWhat it really meansFix
Missing inventory dataA product in your primary source has no matching row in your local inventory dataEither supply the local row, or turn local off entirely if you have no shops
Offer does not existThe id in your local inventory data does not match any id in the primary sourceRead the exact id from Technical details and match it, prefixes included
Invalid store codeThe store code does not match a verified Business Profile locationCheck case first. Then re-add locations in bulk and wait 24 hours
Store not under linked Business ProfileThe location exists but is not under the linked profileFix the profile link, not the feed
No physical stores found in countries of saleCountry of sale and shop locations disagreeAlign the country setting with where the shops are
Unverified inventoryYou chose the Google-hosted page option and have not completed verificationEither verify, or switch to a product page option that shows in-store availability
Available soon on products that are clearly in stockThe local data source has silently broken while the primary is fineRebuild the local source. Check the platform app first

Why am I getting “missing inventory data” when I do not even have a shop?

This is the single most common local inventory complaint, and for most people it is not a local problem at all. It is what happens when the local add-on gets switched on by accident, usually by a feed app.

A Google Diamond Product Expert has answered this repeatedly across the Shopify and Merchant Center communities, and the substance is always the same: missing inventory data has nothing to do with product identifiers, it refers to local inventory data, meaning local advertising. If you have no physical shop, disable it in your feed app and remove the data source in Merchant Center.

Note that carefully, because it is the opposite of what the error sounds like. Merchants spend days checking GTINs and stock levels over an error that means “you told Google you have shops and then did not describe them”.

One merchant reported it affecting 90 percent of their catalogue. Another found that toggling local on and off had left orphan store records attached to every product, with no data source assigned, which could not be deleted manually.

How do you turn local inventory off properly?

If you do not sell in physical shops, this is the section you want. Doing it partially is what leaves the errors behind.

  1. In your ecommerce platform’s Google app, disable the local inventory or physical store option.
  2. In Merchant Center, go to settings and remove the free local listings and local inventory ads add-ons.
  3. In the primary data source setup, disable the setting that says the data is for physical stores.
  4. Remove the local inventory data source itself.

All four, in that order. Practitioners report the errors and warnings clear within about 24 hours once all four are done. Doing only the first or only the second is why the errors come back.

If your products are showing as active but still getting no traffic after this, the problem is elsewhere. Our guide to products showing Active but getting no free listing impressions works through that separately.

How do local inventory ads work in Performance Max?

Performance Max for Retail has had local enabled by default for some time. The August 2026 change was Google bringing Shopping campaigns into line with it, not the other way around.

Three campaign types support local inventory: Shopping, Performance Max, and Demand Gen with product feeds.

One thing to be clear about, because it produces a lot of confused searching: there is no local inventory ads campaign type. Local is a property of the products and the campaign settings, not a campaign you create. Google’s documentation only ever describes it as running inside Shopping, Performance Max and Demand Gen campaigns. Similarly, local store visits and promotions is an advertising objective, not a campaign type.

If you are running Performance Max on a retail feed, our guide to Performance Max and feed optimisation covers how feed quality drives that campaign type.

What replaced the Content API for local inventory?

The Content API for Shopping was switched off on 18 August 2026. If any part of your local setup still points at it, it is not working.

Old, Content APINew, Merchant API
localinventoryLocalInventory, in the inventories sub-API
liasettingsReplaced by omnichannel settings, with LFP providers and Business Profile account handled separately
Single settings resourceOmnichannel settings now carry region, storefront type, in-stock, pickup, on display to order and verification state

The restructuring of the old settings resource is the part that catches teams out on migration, because it is not a rename. Our Content API shutdown checklist covers the wider migration.

Does Google add in-store products automatically?

Yes, in four countries, and it is rarely mentioned.

Google’s local inventory ads and free local listings overview describes a local inventory app that checks your online shop and adds in-store inventory automatically where it finds in-store availability. It is available in the United Kingdom, Ireland, the United States and Canada.

For a small retailer in one of those four countries, that is a route into local listings without building a feed at all. It is worth trying before commissioning feed work.

What does your platform actually support?

PlatformLocal inventory supportKnown issue
ShopifyYes, through the Google and YouTube channelId prefixes break the join. Local feeds have been reported silently corrupting while the primary stays healthy
WooCommerceNot supported by the official Google for WooCommerce pluginWoo support confirmed this in September 2025. You need a third-party tool
Third-party feed toolsYesPrimary and local feeds can be built with different id rules inside the same tool
Manual file uploadYesMulti-location feeds get large fast, one row per product per shop

The WooCommerce answer surprises people, so to be precise: Woo’s own support team stated in September 2025 that Google for WooCommerce does not support the local inventory feed. If you are on Woo and need local, you need a separate tool.

If you are choosing a feed tool, our comparison of shopping feed apps covers which ones handle multiple data sources properly.

Frequently asked questions

What are Google local inventory ads?

Google local inventory ads are paid ads that show a product is in stock at one of your physical shops near the shopper. They run on your Merchant Center product data plus a local inventory data source that carries per-store availability.

What is the difference between local inventory ads and free local listings?

Local inventory ads are paid and run through Google Ads. Free local listings are unpaid. They use the same feed setup, but free local listings are available in roughly half as many countries, and pickup is not supported for free local listings across most of the EEA.

Do I need two feeds for local inventory ads?

You need two data sources: your primary product data and a local inventory data source. You usually do not need a separate local product feed on top of your normal one. You need the local inventory data alongside it.

What is a store code and where do I find it?

A store code is the unique identifier of one of your shops, up to 64 characters, and it must match the store code in your Business Profile exactly. It is case sensitive. You set it in Business Profile, not in Merchant Center.

Why do I keep getting an invalid store code error?

Check case first, because the match is case sensitive and that alone explains many failures. If the case is right, one fix reported in a resolved Community thread is to add store information in bulk in Business Profile rather than one location at a time, then wait 24 hours and reprocess the Merchant Center account.

Why am I getting “missing inventory data” when I have no physical store?

Because the local programme is switched on somewhere in your setup, usually by a feed app. The error is about local inventory data, not product identifiers. Turn local off in the app, remove the add-ons in Merchant Center, disable the physical stores setting on your primary data source, and remove the local data source.

What does “offer does not exist” mean?

The product id in your local inventory data does not match any id in your primary product data. On Shopify and WooCommerce this is usually a platform prefix on the id. Read the exact id from the product’s technical details in Merchant Center and match that.

Which attributes are required in the local inventory feed?

Id, store code and availability. Pickup SLA is required where you offer store pickup. Price and quantity are optional, despite several popular guides listing them as required.

Is quantity required for local inventory ads?

No. Google’s local inventory data specification marks quantity as optional. Several popular guides list it as required, which is where the confusion comes from.

Is pickup_method still required?

No, it is optional. Pickup SLA is the one Google marks as required store-specific pickup information. That said, Google’s pickup SLA page asks you to provide both attributes if you want customers to buy online and collect in store, so optional is not the same as unnecessary.

When do pickup cost and minimum order value become required?

30 September 2026, for in-store products enabled for pickup in the United Kingdom, Switzerland and the EEA, which Google also describes as the United Kingdom plus EU and EFTA countries. Both are conditional: pickup cost only if you charge for pickup, minimum order value only if your site sets a minimum spend for in-store pickup.

Does the 30 September change affect me if I do not charge for pickup?

No. The requirement only applies where you actually charge a pickup cost or require a minimum spend on your website. If neither is true, nothing changes.

Are local inventory ads now on by default?

In Shopping campaigns, yes, since 31 August 2026, for accounts with the local inventory ads add-on enabled. The old local products setting no longer controls it. Use the inventory filter with Channel set to Local stores or Online to separate the two. Performance Max and Demand Gen are unaffected.

How do I stop local ads running in my Shopping campaigns?

Set an inventory filter on the campaign with Channel set to Online. Through the API, use the campaign’s listing scope to restrict it to the online channel. The old setting will not do it any more.

Is there a local inventory ads campaign type?

No. Local inventory runs inside Shopping campaigns, Performance Max, or Demand Gen with product feeds. Google’s documentation never describes it as a campaign type, and there is nothing to create called a local inventory ads campaign.

Do I need inventory verification?

Only if your product pages do not show in-store availability. If you use product pages with in-store availability, or store-specific pages with availability and price, verification is not required. Many guides present it as mandatory for everyone, which is wrong.

How long does inventory verification take?

Google says the request button activates within 48 hours, the in-store survey takes about two hours per shop and must be finished the same business day, and review takes up to seven business days. A Product Expert answering a stuck merchant put the real end-to-end figure at around a month, so plan for longer than the documented window.

How long does it take for products to match across both feeds?

Merchants commonly report around a day. Google does not publish a figure. Treat it as normal rather than a fault, and do not start changing ids on day one.

Does WooCommerce support local inventory ads?

The official Google for WooCommerce plugin does not support the local inventory feed. Woo’s own support team confirmed this in September 2025. You need a third-party feed tool instead.

Can Google add my in-store products automatically?

In the United Kingdom, Ireland, the United States and Canada, yes. Google’s local inventory app checks your online shop and adds in-store inventory where it finds in-store availability, with no feed build required.

What does “on display to order” mean?

It is one of the four accepted availability values, for products displayed in your shop that are not available for immediate purchase. The specification lists the value without defining it; the definition sits on a separate page. Using it requires you to enable on display in store per country and submit a URL for a page detailing your delivery cost and delivery policy.

Do local inventory ads work on Bing?

Microsoft runs its own local product listings, separate from Google’s, with its own setup. Our guide to the Bing shopping feed covers the Microsoft side, and our feed attribute mapper maps Google attributes to their Microsoft equivalents.

Changelog

DateChange
14 September 2026First published. Written against Google documentation checked on this date, including the 31 August 2026 default-on change and the 30 September 2026 pickup attribute requirement

Google renumbers Merchant Center help articles regularly and announced a consolidation of the Shopping ads and free listings policies for September 2026, so some of the articles linked here may move. Where a link and this page disagree, Google is right.

Next steps

Two things are worth doing this week, in this order.

First, open your Shopping campaigns and check the inventory filter. If you did not deliberately want local traffic in them, it is in them now, and it has been since 31 August.

Second, if you sell in the UK or Europe and you charge for in-store pickup or set a minimum spend, get pickup cost and minimum order value into your data before 30 September. If you submit through the Merchant API, start earlier, because the local inventory resource has no field for either and you will be routing them through product data instead.

If you would like the feed, store codes and campaign structure behind all of this audited properly, that is work we do for retail clients every week. See our Google Shopping ads agency page, or start with our Merchant Center audit template.

Related reading: how to rank in Google Shopping, the Google product data specification, supplemental feeds in Google Shopping, the Google shopping score, Merchant Center suspension recovery, and GTINs and product identifiers.

Ishant

Ishant Sharma is the Founder and CEO of Hustle Marketers, a Google Partner digital marketing agency. With 12+ years of experience in Google Ads, Meta Ads, SEO, and e-commerce PPC, he has helped 2500+ brands generate $780M+ in trackable revenue. Upwork Top Rated Plus with 99% Job Success Score. Ishant Sharma is the digital marketing specialist, not the Indian cricketer of the same name.

I hope you enjoy reading this blog post. If you want my team to just do your marketing for you, click here.
Scroll to Top