Product identifiers (GTIN, MPN, SKU) for AI shopping agents
Usually fixed by: E-commerce platform admin
A barcode number tells an AI shopping agent exactly which product you sell, so it can match your listing to the same item at other stores, to its reviews and to the shopper's request. This guide explains GTINs, MPNs, brands and SKUs in plain terms, where each one goes in your product data, where to get them, and what to do when a product has none.
What product identifiers are
Product names are messy. One store sells the "Ridgeline Rain Jacket, Blue, M". Another sells the "Men's Ridgeline Packable Shell (Medium, Navy)". A person can tell they're the same jacket. An AI agent comparing dozens of listings can't be sure from the name alone. Identifiers solve that: they're codes that mean one product, wherever it's sold.
There are four you'll hear about:
| Identifier | What it is | Who assigns it | Unique across stores? |
|---|---|---|---|
| GTIN (Global Trade Item Number) | The number behind the barcode. UPC in North America (12 digits), EAN in Europe (13 digits), JAN in Japan, ISBN for books, ITF-14 for multipacks | The brand owner, through GS1 | Yes |
| MPN (Manufacturer Part Number) | The model or part number the manufacturer uses, such as "WH1234" | The manufacturer | Yes, together with the brand |
| Brand | The name of the brand that makes the product | The manufacturer | No, but it gives the MPN its meaning |
| SKU (Stock Keeping Unit) | Your own internal code for a product or variant | You | No, only within your store |
The SKU is useful to you and to agents working inside your store, for example when reordering. The GTIN, and the brand plus MPN, are what connect your product to the rest of the web.
Four identifiers, four jobs
- GTIN One product, worldwide, from the barcode
- Brand + MPN The maker's own model number
- Brand Gives the MPN its meaning
- SKU Your code, only meaningful in your store
Why AI agents care about identifiers
When someone asks an assistant "where can I get the Ridgeline jacket in medium for the best price?", the assistant has to decide which listings are the same product. Identifiers make that a lookup instead of a guess. They help in three ways:
- Matching across stores. Two pages with the same GTIN are the same item. That's how a price or stock comparison can include your store with confidence. Google's merchant listing documentation, which covers results such as its shopping knowledge panel, asks you to include every global identifier that applies.
- Matching to reviews and facts. Reviews, specs and safety information published elsewhere are often tied to the model number or barcode. An identifier lets an agent connect them to your listing.
- Matching the shopper's request. People ask for exact things: "a replacement filter, part number WH1234". If your page carries that MPN, the agent can confirm the fit instead of hoping.
Google Merchant Center puts it bluntly in its GTIN guidance: "Accurate matching to products can't be assured when GTIN is missing." We can't tell you how each AI assistant matches products internally, and it varies. But an identifier is the most exact signal you can give any of them, and it costs little to add.
- Shopper asks "Ridgeline jacket, medium, best price"
- Agent finds listings Different names at different stores
- Same GTIN Confirmed as the same product
- Compares offers Price, stock and delivery side by side
Where identifiers go in your product data
Put identifiers in two places: in your Product structured data, and in plain text on the page. Schema.org, the shared vocabulary for structured data, has a property for each one: gtin (and the more specific gtin8, gtin12, gtin13, gtin14), isbn for books, mpn, sku and brand.
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Ridgeline Packable Rain Jacket, Men's, Blue, M",
"brand": { "@type": "Brand", "name": "Ridgeline" },
"gtin13": "3234567890126",
"mpn": "RL-PJ-220",
"sku": "NW-RJ-M-BLU",
"offers": {
"@type": "Offer",
"price": "189.00",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock"
}
}
A few rules from the people who define and read this data:
- Digits only, and valid. Schema.org says a GTIN should be 8, 12, 13 or 14 digits with a valid GS1 check digit (or a GS1 Digital Link URL built from one). Google asks for the numeric form, not the URL form, and recommends the most specific property (
gtin13for a 13-digit EAN, for example). - Keep leading zeros. Store identifiers as text, not numbers, or a spreadsheet will quietly drop the zeros at the start and break the code.
- One per variant. Each color and size usually has its own GTIN. Put each variant's identifier on that variant, not one code for the whole product. See variant pickers AI agents can use for how variants should appear on the page.
- Books. Google's guidance is to use ISBN-13 and to type the item as both
ProductandBooksoisbnis valid. - Show it on the page too. A line in your specs ("Model number: RL-PJ-220") is readable by agents that don't parse structured data, and by shoppers checking compatibility.
For the rest of the Product markup, including offers, variants, shipping and returns, see product data that AI shopping agents can read.
Ridgeline Packable Rain Jacket Add to cart
Brand: Ridgeline Brand in text
Model number: RL-PJ-220 MPN in text
Barcode (EAN): 3234567890126 Matches the structured data
Where GTINs come from
A GTIN isn't something you make up. Who provides it depends on your role:
- You resell other brands' products. Use the manufacturer's GTIN. It's the number under the barcode on the packaging, and most suppliers include it in their product data or price lists. Ask for it if it's missing.
- You make your own products. You're the brand owner, so the GTINs come from you, licensed through GS1, the standards body that runs the barcode system. GS1 US, for example, licenses single GTINs for companies with a few products and GS1 Company Prefixes for larger ranges, and it notes that each variation of each product needs its own barcode. Other countries have their own GS1 member organization.
- You sell a store brand made for you. Check your supplier agreement. Sometimes the manufacturer assigns GTINs under your brand; sometimes nobody has.
Never guess. Google's guidance for both GTIN and MPN is the same: only provide one if you're sure it's correct, and don't guess or make up a value. A wrong identifier is worse than none, because it matches your listing to someone else's product, with their reviews and their specs.
Custom, handmade and store-brand products
Plenty of products have no GTIN, and that's fine. Google Merchant Center says that if you're the only seller of a product, or it's a store brand, it generally won't have a GTIN and you don't need to submit one. Its MPN guidance treats custom-made products (art, custom t-shirts, novelty and handmade products) as having no MPN requirement either.
What you can do instead:
- Give the brand. Your own shop name is a brand. "Brand: Fernwood Pottery" tells an agent who made the mug.
- Give a stable SKU. It won't match across stores, but it lets agents and shoppers refer to the exact item when they contact you or reorder.
- Describe the product precisely. Without an identifier, the facts on the page do the matching: size, material, capacity, color, in text with units. See product descriptions AI agents can compare.
- Tell your feeds. Merchant Center has an
identifier_existsattribute you set to "no" only when you're certain a product has no assigned identifiers. Its own example is a customized dress. More on feeds in product feeds and merchant listings for AI shopping.
Personalized versions of branded products are a special case. If you engrave a manufacturer's water bottle, Google's guidance is to keep the manufacturer's GTIN and say in the title and description that the product is customized. Bundles have their own rule: if the manufacturer created the bundle, use its identifiers; if you created it, use the main product's.
Don't
- Invent a 13-digit number to fill the field
- Reuse one GTIN for every size
- Put your SKU in the GTIN field
Do
- Leave GTIN empty when none exists
- Give brand and a stable SKU
- Describe the product in measurable facts
What AgentScore checks
AgentScore's Readability check "Product pages give price and stock in a form agents can read" (3 points) covers the groundwork this guide builds on. It opens one product page and reads its schema.org Product JSON-LD:
- Pass when the page has Product data in its HTML with an offer that gives a price, a currency and availability.
- Warn when the Product data is there but one of those three is missing, when the page only has microdata, or when the Product data is only added by JavaScript.
- Fail when the product page has no structured product data at all.
It doesn't look at GTINs, MPNs or SKUs, so a pass doesn't mean your identifiers are present or correct. Use Google's Rich Results Test or your platform's product export to check those. What the check does confirm is that your Product data exists in the HTML where agents read it, which is where your identifiers need to live. Run a free scan to see where you stand.
Where to start
A one-hour identifier audit:
- Export your catalog from your platform and look at the barcode (GTIN), MPN and brand columns. Count how many products have them filled in.
- For resold brands with empty GTINs, ask your suppliers for their product data file. The numbers usually exist; they just never got imported.
- Check a few GTINs against the packaging. Look for lost leading zeros and SKUs pasted into the wrong column.
- View the source of one product page and search for "gtin" and "mpn". If they're missing from the JSON-LD, ask your developer or theme app to output them.
- For your own products, decide whether you need GTINs. If you sell through marketplaces or retailers, you likely do; start with GS1 in your country.
Identifiers are one part of how assistants decide what to recommend; see how AI assistants choose products and stores for the rest.