Skip to content
GetProfit

EAN vs GTIN vs SKU: How Comparison Sites Match Your Product

See which code Google, Heureka, Zboží, idealo and Rozetka use to recognise your product, and how one ID per product keeps offers on the right card.

An EAN is a GTIN. GTIN is the global family of manufacturer barcode numbers with 8, 12, 13 or 14 digits, and the 13-digit EAN is its European form. A SKU is your internal code, the natural value for each channel’s offer ID. To recognise the product itself, Google, Zboží and idealo lean on the GTIN, backed by brand and manufacturer code. Heureka pairs offers in its ordinary categories mostly by an exact product name. Rozetka requires a barcode only for appliances but says one helps it group products correctly.

These codes decide whether your offer joins a shared product card next to other shops or stays a separate listing. On Heureka, the product name often does the same job. Our guide to comparison shopping engines in Europe and Ukraine covers which comparison sites matter in each market and how they charge. This article stays with the codes.

EAN vs GTIN: is there a difference?

A GTIN, or Global Trade Item Number, is the GS1 number a company uses to identify each of its trade items. GS1 (Global Trade Item Number (GTIN)) defines trade items as products or services that are priced, ordered or invoiced at any point in the supply chain. The number comes in four lengths. Each is printed as a barcode, and you will still see the barcode names in feeds:

GTIN formatDigitsBarcode or name you will see
GTIN-88EAN-8; JAN in Japan
GTIN-1212UPC-A and UPC-E, in the USA and Canada
GTIN-1313EAN-13 in Europe; JAN in Japan; ISBN-13 for books
GTIN-1414ITF-14, for multipacks

So an EAN is a GTIN. idealo’s feed documentation says it plainly: until 2009 the GTIN was known as the EAN, and the two mean the same thing. Zboží’s specification puts it the other way round: the GTIN is often wrongly called an EAN.

For your feeds, the number is the same in every channel. What differs is the field name and what each channel accepts in it:

ChannelField nameWhat it accepts
Google Merchant Centergtin8, 12, 13 or 14 digits; up to 10 values
HeurekaEANEAN-13, the only format its specification names
Zboží.czEAN8, 12, 13 or 14 digits
idealoeansone EAN per offer
RozetkaEAN parameter8 to 14 characters

Every GTIN carries a check digit, and Google asks you to make sure it is present and correct.

SKU vs GTIN: which codes are yours and which are the manufacturer’s?

A SKU, or stock keeping unit, is a code you create for your own stock. Google treats every size and colour as a separate product with its own ID, so a shirt in three sizes needs three SKUs.

An MPN, or manufacturer part number, is the manufacturer code that identifies a product among one manufacturer’s products. Google’s help (MPN [mpn]) makes it required for products without a manufacturer-assigned GTIN. The offer ID is the field each channel uses to tell your offers apart. Google’s help (ID [id]) recommends your SKU as its value.

CodeWho assigns itSame at other shops?What it is for
GTIN / EANthe manufacturer, under the GS1 standardyesrecognising the product across shops
MPNthe manufactureryes, together with the brandrecognising the product when there is no GTIN
SKUyounoyour stock, and the offer ID in every feed
Offer ID (id, ITEM_ID, sku, offer id)you, usually your SKUnotracking your offer and its history

The rule that follows: fields that belong to the manufacturer carry only the manufacturer’s values. Google’s help (About unique product identifiers) explains that the same product sold by another retailer carries identical identifiers.

The same help tells you to keep internal SKUs and other store-specific values out of the GTIN, MPN and brand fields. It also warns that incorrect identifiers can get products disapproved. Heureka’s XML specification (Specifikace základního XML souboru) says the same about its EAN tag: official product codes, not internal numbers.

If you make the product yourself and it has no official brand, Google suggests your store name as the brand and an MPN of your choice. For products that truly have no GTIN, MPN or brand, such as custom, handmade or vintage goods, you set identifier_exists to no. Google’s help (Identifier exists [identifier_exists]) asks you to do this only when you are certain. If there is evidence that an identifier exists, the product gets a warning.

Which identifier does each channel use to match your product?

Product matching is how a channel decides that your offer and another shop’s offer are the same product. That lets it show both offers on one card and compare prices. Heureka and Zboží call this pairing. Each of the five channels does it differently.

ChannelYour offer IDIs the barcode required?What the match relies on
Google Merchant Centerid, 1–50 characters, requiredstrongly recommended when the product has oneGTIN, with brand and MPN
HeurekaITEM_ID, up to 36 characters, requiredonly in nine categories of books, films and musican exact name in most ordinary categories; the EAN in those nine; manual pairing for unique names and size categories
Zboží.czITEM_ID, recommendedrecommendedname, EAN, manufacturer and manufacturer code
idealosku, requiredrecommendedthe EAN; brand and manufacturer code for creating a product
Rozetkaoffer id, requiredonly for four appliance categoriesRozetka says a barcode helps it group products correctly

Google

Google’s help (GTIN [gtin]) calls the GTIN strongly recommended for every product that has one. Without it, Google says it can’t assure accurate matching to products. A missing or incorrect GTIN may limit the product’s visibility. Products without any unique identifiers are hard to classify and may not be eligible for all Shopping programs or features.

The GTIN works alongside your id: Google uses the ID, with country and language, to keep the product’s performance history. Our article on GTIN in Google Shopping covers what the “missing identifiers” warning costs in practice.

Heureka

Heureka’s help on pairing in categories (Princip párování v kategoriích) splits its catalogue into three kinds of categories and pairs offers differently in each:

Kind of categoryWhich categoriesHow Heureka pairs an offer
Ordinarythe largest groupin most of them, automatically, when the offer’s name matches an offer or product already in that category letter for letter; offers with a unique name by hand
With a mandatory parameter: size, volume or lengthmost often clothing, shoes and accessories, sport and outdoor, and workshop, building and gardenby hand only; an offer without the parameter can’t continue in pairing
With a mandatory EANaudiobooks, e-books, films, music, books, foreign-language books, comics and manga, maps and guides, and textbookswithout the EAN tag, Heureka can’t pair the offer

Outside the nine EAN categories, the EAN still helps. Heureka’s help on pairing times (Doba párovacího procesu) says a filled-in EAN, combined with a good name, category, manufacturer and parameters, can speed up pairing considerably. For products Heureka doesn’t have yet, standard pairing takes 4–7 days in ordinary categories, 14–21 days in EAN categories and about a month in fashion. So far, ITEM_ID plays no part in pairing, but Heureka’s XML specification asks that it stay unique forever.

Zboží.cz

Zboží’s help on pairing offers (Párování nabídek Inzerce Nákupy) names four main pairing factors: the product name, the EAN, the manufacturer and the manufacturer code. In Zboží’s feed, that code goes into PRODUCTNO, the field for the MPN. If an offer lands on the wrong card, you can re-pair it in the pairing tool. Zboží guarantees to process the request within 48 hours.

The feed specification (Specifikace feedu (XML feed Zboží.cz)) asks you to keep ITEM_ID the same when the name or URL changes. When the offer turns into a different product, even another colour or size, you change ITEM_ID so the offer unpairs from the wrong card.

idealo

idealo’s own feed documentation (CSV Feed Import) marks sku as required and eans as recommended. It says the EAN lets idealo assign an offer to a product automatically and significantly increases its visibility. It asks for one EAN per offer, plus the manufacturer code, hans, together with the brand.

Mergado, a feed tool vendor, goes further in its guide (How to Sell Successfully on idealo, 3 February 2026). In its view, a product without an EAN/GTIN won’t be properly matched to the catalogue. It ends up in the “free catalog”, where visibility is much lower. That is the vendor’s description, not idealo’s wording.

Rozetka

Rozetka is a marketplace rather than a comparison site. Its seller help on barcodes (Штрихкод товару) makes the barcode optional except in four categories: large household appliances, small household appliances, built-in appliances and climate equipment. The barcode goes into an EAN parameter of 8 to 14 characters, and Rozetka hides an item with a wrong barcode from the site.

Rozetka’s help on article codes (Артикул товару) puts the product’s article code into the <article> tag, which is optional except for car parts. When buyers search by the manufacturer code, Rozetka recommends also putting that code in the product name. It warns against copying the code of a similar product from Rozetka’s own site.

In Google, a missing GTIN rarely shows up as an error

In GetProfit data collected in August 2026, 3,211,061 of 5,744,507 catalogue products, or 55.9%, carried at least one Merchant Center flag. Yet among the 142 stores with at least 100 products in the catalogue, the median store had 0.0% of its catalogue flagged. Of the 142, 109 had less than 1% of their catalogue flagged. The flags sat in a few very large catalogues.

In a sample of 400,000 flagged products, the two most common flags were “not eligible in any campaign” on 263,483 products and “out of stock” on 209,328. Both reflect decisions about campaigns and stock rather than errors in the data. The flag for a missing required attribute appeared on 785 products in that sample. None of the 15 most common flags names an identifier.

That matches Google’s rules. A product without a GTIN can still appear in ads. Google’s help names limited visibility as the cost of a missing GTIN. It keeps disapproval for incorrect identifiers and for products sent without any identifier when one exists.

On the channels that match by barcode, the same gap matters more. In Heureka’s EAN categories, an offer without an EAN can’t be paired at all. On idealo, the EAN is what assigns an offer to a product automatically.

These flag counts show what Google labels, not how much visibility a product lost. It is an observation, not an experiment.

ID mistakes that break matching and product history

Changing an ID

Google’s help on the id attribute is blunt: if you change the ID, you overwrite the product and its history. Heureka’s specification asks for an ITEM_ID that stays unique forever and warns that changing product URLs, names or categories in the XML unpairs the products. Re-pairing can take about 4 working days. Rozetka’s XML requirements (Вимоги до XML-файлу) forbid changing an offer id once the product is on the site.

Reusing one ID or one SKU

Google asks for a unique ID for each product and each variant. It tells you not to recycle an ID for a new product, even after the old one has sold out. Heureka wants every variant as a separate item: a T-shirt in 5 sizes and 10 colours is 50 items in the XML. Rozetka asks for a separate offer id for every variant.

For barcodes, Google’s GTIN rules say not to submit several products with the same GTIN and the same variant attributes for the same country and language.

IDs that differ only by letter case

Product IDs in Merchant Center are case-sensitive. Even so, Google’s ID help warns that two IDs that differ only by case, such as abc123 and ABC123, may be confused. That can happen in Google Ads filtering or when matching a supplemental feed to the primary one.

We see a related trap in our own data pipeline. The product performance report in the Google Ads API returns product IDs in lower case, while Merchant Center keeps the original case. A list of IDs copied from that report into a supplemental feed then fails to match. Our article on the supplemental feed ID case trap shows the fix.

Which ID format does every channel accept?

Each channel publishes its own limits for the offer ID:

ChannelLengthAllowed characters
Google1–50letters, digits, underscores, dashes; ASCII recommended
Heurekaup to 36Latin letters without diacritics, digits, underscores, dashes
Zbožínot statedLatin letters without diacritics, digits, underscores, dashes
idealonot statedany unique ID you choose
Rozetkanot statedLatin letters and digits; no Cyrillic, no spaces

An ID of up to 36 characters made of Latin letters and digits fits the published rules of all five. Google, Heureka and Zboží also accept dashes and underscores, but Rozetka’s specification lists only letters and digits.

Example: how much of a catalogue can be matched by barcode

Example store, not client data.

A tableware shop has 3,000 products. 2,100 are branded goods with a manufacturer EAN on the box. 600 are plates under the shop’s own brand, with no GTIN. 300 are gift sets the shop puts together itself.

GroupProductsGoogleHeureka, Zboží, idealo
Branded, with EAN2,100EAN in gtin, plus brand and MPNEAN in the barcode field; in Heureka’s ordinary categories the name still has to match exactly
Own brand, no GTIN600own brand in brand, own code in mpn, no gtinno other shop sells them; Heureka pairs unique names by hand
Own gift sets300GTIN, MPN and brand of the main product in the setunique offers with no competitor on the card

So the channels can match 2,100 of 3,000 products, or 70% of the catalogue, to other shops’ offers by barcode. For the other 900, the work is a clear brand, an MPN and a precise name, not a search for codes that don’t exist.

What to do: one identity per product across channels

  1. Build one table of identifiers. One row per variant: SKU, GTIN, MPN, brand. Keep it in your master catalogue and feed every channel from it, as our guide to multichannel feed syndication describes. Check afterwards that every size and colour has its own row and its own GTIN.
  2. Take GTINs only from the manufacturer or the packaging. Verify the check digit with the GS1 check digit calculator and look up doubtful codes in Verified by GS1. Google asks you not to submit codes starting with 02, 04 or 2, which are restricted, or with 05, 98 or 99, which are coupon ranges. Never borrow a code from a similar product: Google can disapprove the product, and Rozetka hides it.
  3. Make the SKU your offer ID everywhere. Use up to 36 Latin letters and digits, and avoid IDs that differ only by case. Never change the ID and never give it to another product.
  4. Put the same codes into each channel’s fields. GTIN: gtin in Google, EAN in Heureka and Zboží, eans in idealo, the EAN parameter in Rozetka. Manufacturer code: mpn in Google, PRODUCTNO in Zboží, hans in idealo, <article> in Rozetka.
  5. Mark products that have no identifiers. For your own brand, send the brand plus your own MPN. For custom or handmade goods with no GTIN, MPN or brand, set identifier_exists to no in Google, but only when you are sure.
  6. Write names that comparison sites can pair. In most ordinary categories, Heureka pairs offers by an exact name. Zboží’s naming template is manufacturer, series, product designation, product code, colour. On Heureka, rename products, change URLs or move categories only when you have a reason: each such change unpairs the products.
  7. Check the pairing reports after each import. Heureka lists missing mandatory parameters in its pairing overview, Přehled spárovanosti, as its help on mandatory parameters describes. In Zboží’s pairing tool you can re-pair an offer that sits on the wrong card.

How the portal finds products without a GTIN

On the Google side, GetProfit’s portal reads your Merchant Center feed, counts how many products have an empty GTIN field and gives you the list. In its feed score, the GTIN carries 16 of 100 points, the second-largest weight after approval, which carries 22.

When a code exists, the feed analysis says where to get it and which feed field it goes into. When it doesn’t, the portal suggests setting identifier_exists to no instead. The portal can’t collect barcodes for you.

The product is in the catalogue, but Google doesn’t have it. The portal goes through your feed and shows which fields are empty, on how many products, and what that does to impressions. The portal changes nothing without your consent.

Check your feed →

Sources

  • GTIN [gtin] (Google Merchant Center Help) — GTIN types and lengths, up to 10 values; strongly recommended for products that have one; limited visibility and no assured matching without it; check digit, restricted and coupon ranges; one GTIN per variant; no duplicate GTINs with the same variant attributes; bundles and store brands. Checked 2 October 2026 against the archived copy of 10 May 2026.
  • About unique product identifiers (Google Merchant Center Help) — identifiers are assigned by the manufacturer and identical across retailers; no internal SKUs in GTIN, MPN or brand; incorrect identifiers can lead to disapproval; store name as brand plus own MPN; a product sent without an identifier that exists may be disapproved. Checked 2 October 2026 against the archived copy of 16 May 2026.
  • Identifier exists [identifier_exists] (Google Merchant Center Help) — when to set the value to no; a warning when an identifier exists. Checked 2 October 2026 against the archived copy of 7 September 2026.
  • MPN [mpn] (Google Merchant Center Help) — MPN identifies a product among one manufacturer’s products; required for products without a manufacturer-assigned GTIN. Checked 2 October 2026 against the archived copy of 3 August 2026.
  • ID [id] (Google Merchant Center Help) — SKU recommended as the ID; 1–50 characters; each variant needs its own ID; changing the ID overwrites the product and its history; no reuse or recycling; case-only differences can be confused. Checked 2 October 2026 against the archived copy of 7 June 2026.
  • Global Trade Item Number (GTIN) (GS1) — definition of the GTIN and of a trade item. Checked 2 October 2026.
  • Check digit calculator and Verified by GS1 (GS1) — tools to check a check digit and look up a GTIN. Checked 2 October 2026.
  • Princip párování v kategoriích (Heureka help) — three kinds of categories; exact name matching; manual pairing; the nine categories with a mandatory EAN. Checked 2 October 2026.
  • Specifikace základního XML souboru (Heureka help) — ITEM_ID up to 36 characters, unique forever, not used for pairing; EAN-13 format, official codes only; variants as separate items; unpairing after changes to URLs, names or categories. Checked 2 October 2026.
  • Doba párovacího procesu (Heureka help) — the EAN speeds up pairing; standard pairing times. Checked 2 October 2026.
  • Povinné parametry pro párování (Heureka help) — missing mandatory parameters shown in the pairing overview. Checked 2 October 2026.
  • Specifikace feedu (XML feed Zboží.cz) (Sklik help) — ITEM_ID rules; EAN of 8, 12, 13 or 14 digits; GTIN often called EAN; GTIN-8, -12, -13 and -14 and their barcodes (EAN-8, UPC-A and UPC-E, EAN-13, ITF-14); PRODUCTNO as the MPN; naming template. Checked 2 October 2026.
  • Párování nabídek Inzerce Nákupy (Sklik help) — four main pairing factors; re-pair requests processed within 48 hours. Checked 2 October 2026.
  • CSV Feed Import (idealo import documentation) — sku required; eans recommended, one per offer; EAN enables automatic assignment; GTIN and EAN mean the same; hans with brand. Checked 2 October 2026.
  • How to Sell Successfully on idealo (Mergado, a feed tool vendor, 3 February 2026) — a vendor’s view that products without EAN/GTIN end up in the “free catalog”. Checked 2 October 2026.
  • Штрихкод товару (ROZETKA seller help) — barcode optional except four appliance categories; EAN parameter of 8–14 characters; a barcode helps group products correctly; wrong barcode hides the item. Checked 2 October 2026.
  • Артикул товару (ROZETKA seller help) — <article> optional except car parts; manufacturer’s code recommended in the product name; don’t use the code of a similar product from the site. Checked 2 October 2026.
  • Вимоги до XML-файлу (ROZETKA seller help) — unique offer id of Latin letters and digits; no change once the product is on the site; a separate ID for every variation. Checked 2 October 2026.
  • GetProfit data, collected in August 2026: 5,744,507 catalogue products; 142 stores with at least 100 products; sample of 400,000 products with Merchant Center flags — share of flagged products and the most common flags.
  • GetProfit portal methodology — weights of the feed score.