XML feeds: getting your products into Google, Meta and comparison sites
Updated July 30, 2026
Comparison sites and ad platforms know nothing about your products until you give them a feed. In Behio you do not build one or maintain it: you pick the platform, copy the address and paste it on the other side. This page walks through the whole thing, including what to do when nothing shows up or the prices look wrong.
What an XML feed actually is
An XML feed is a machine readable list of everything you sell. Each item carries the name, price, availability, a link to the product page, an image, its category and, where you have them, the brand and the barcode. That is exactly what Google or a comparison site needs to list your offer.
One thing explains almost everything else about feeds: a feed is not a file you upload once. It is an address. The platform visits that address on its own schedule and pulls the current state of your catalogue.
That is why a price change does not appear on the comparison site the second you make it. It appears the next time the platform asks. It is also why you never have to export anything by hand.
Where you can send your products
Every target has its own format, and we build it for you. You pick the destination and that is the whole job.
| Destination | Market |
|---|---|
| Google Shopping (Merchant Center) | Worldwide |
| Meta catalogue (Facebook and Instagram) | Worldwide |
| TikTok | Worldwide |
| Worldwide | |
| Snapchat | Worldwide |
| Bing Shopping (Microsoft) | Worldwide |
| Klarna | Europe |
| PriceRunner | Nordics and UK |
| Heureka.cz, Zbozi.cz | Czechia |
| Heureka.sk | Slovakia |
| Glami | Fashion and home, CZ, SK and beyond |
| Favi, Biano | Furniture and home |
| Arukereso, Compari | Hungary |
| Pazaruvaj | Bulgaria |
| Jeftinije | Croatia |
| Skroutz | Greece |
| Ceneo, Allegro | Poland |
| Cimri, Akakce | Turkey |
| Yandex Market | Eastern Europe |
| Custom XML | For tools that shape the format themselves |
Where to get the feed address in Behio
- 1In the admin, open your shop and click Settings and then Product feeds in the left menu.
- 2Click New feed in the top right and pick the platform you want to send to.
- 3Name the feed so you recognise it later (Heureka CZ works fine), choose the currency and the language, then click Create.
- 4On the finished feed click Copy URL. The address is on your clipboard, ready to paste on the other side.
The address works straight away, before anything is scheduled. Open it in a browser and an XML file downloads.
How many feeds to create
As many as you need. One feed per platform is the usual setup. If you sell in more than one currency or language, create one feed per combination: Heureka CZ in koruna and Czech, Heureka SK in euro and Slovak.
Currency and language are chosen when you create the feed and one feed always carries a single combination. The feed type cannot be changed afterwards, so if you pick the wrong platform, delete the feed and create a new one.
How often the feed refreshes
You never trigger anything. As soon as you change something in the shop that the feed cares about, the feed rewrites itself. It usually takes under ten minutes, a little longer on very large catalogues.
The feed notices when you:
- change a price or a discount,
- sell out or restock an item,
- edit a name, description, image or product URL,
- publish, hide, delete or recategorise a product,
- import or bulk edit a whole batch of products.
The other half is on the platform and you do not control it. Each one downloads on its own schedule: Heureka roughly every two to four hours depending on the account, Glami hourly, while Google and Zbozi.cz let you set the interval yourself.
Where to paste the address on each platform
The job is the same everywhere: find the field for an XML feed address and paste the one from Behio. Only the names of the screens differ.
Google Merchant Center
- 1Sign in to Merchant Center and open Settings and then Data sources.
- 2On the Primary sources tab click Add product source and choose to add products from a file.
- 3Pick scheduled fetch and paste the address from Behio.
- 4Name the source, set the country of sale and the language, and choose how often Google should fetch. Daily is fine, more often if your prices move a lot.
Google also wants your domain verified and claimed in Merchant Center, and it expects an identifier on each product, meaning a barcode or at least a product code. Without those the source uploads fine but the items get disapproved.
Heureka.cz and Heureka.sk
Sign in to your Heureka merchant account, open your shop settings and paste the address into the XML feed field. Heureka fetches and checks the feed after you save, and emails you anything it finds missing.
Slovakia is a separate catalogue and a separate currency. You need an account on Heureka.sk and a second feed in Behio of the Heureka.sk type, in euro and in Slovak. Do not point the Czech feed at the Slovak site.
Heureka reads availability as days until dispatch. In stock goes out as zero, which it shows as available now, and sold out goes out as a longer lead time.
Zbozi.cz
In the Zbozi.cz admin open the shop location the feed belongs to and paste the address into the XML feed field. For the download interval pick the most frequent option offered.
One feed address can only be used by one location. If you run two, create two feeds in Behio and give each location its own address.
Glami
In the Glami admin open your shop settings and paste the address into the XML feed URL field. Glami downloads hourly and writes to you after the first fetch if anything is missing from the data.
Favi and Biano
You give the feed address when you register the shop, and you can change it later in the shop settings. Both platforms review your catalogue after connecting and get in touch if something is missing or if their category mapping needs a hand.
Meta: Facebook and Instagram
- 1Open Commerce Manager and pick the catalogue you want to fill.
- 2Go to Data sources and choose to add items from a data feed.
- 3Pick a scheduled feed, paste the address from Behio and set the fetch interval.
One catalogue then serves the Facebook shop, Instagram shopping tags and dynamic ads.
TikTok
In TikTok Ads Manager open Tools and then Catalog, create a catalogue and add a scheduled feed under its data sources. Paste the address and set the interval.
In your Pinterest business account open Catalogs, add a data source, paste the feed address and pick the country and currency you sell in.
Every other platform
Bing Shopping, Klarna, PriceRunner, Skroutz, Ceneo, Allegro, Yandex Market, Arukereso, Compari, Pazaruvaj, Jeftinije, Cimri and Akakce all work the same way: register the shop, find the XML feed address field in its settings and paste the address from Behio. Only the label on the field changes.
Which products end up in the feed
- Products that are published and visible in the shop. Hidden ones are left out.
- Products you have in stock. Sold out items are skipped by default, because platforms dislike listings nobody can buy. If you do want them included, switch on Include out of stock on the feed.
- For products with variants, the individual variants rather than the parent. That is deliberate: the parent cannot be bought on its own, so the link would land on a page with no add to cart button. Variants go out linked together so the platform sees them as one product.
- Only prices in the feed currency and text in the feed language. A product without a price in that currency, or without a translation into that language, will not appear.
If the shop is set to always available or made to order, stock is ignored and every published product goes out.
Categories go out the way you have them in your shop. Platforms map them onto their own trees, and any fine tuning happens in their admin rather than in Behio.
When something is off
The feed shows zero products
Start on the feed card in Behio. Each feed shows a product count, and a red zero means the feed really is empty, so the problem is on our side of the fence. Work through these in order:
- Are the products published and visible in the shop?
- Are they in stock? Without Include out of stock, a shop sitting at zero stock produces an empty feed.
- Do the products have a price in the currency the feed uses? A euro feed will not find items priced only in koruna.
- Do they have text in the feed language? A feed in another language needs the products translated.
If the count in Behio looks right and the zero only appears on the platform, the feed did not reach it or it was rejected. Carry on with the download section below.
Prices or availability look wrong out there
Nine times out of ten it is a delay. Check the Last generated timestamp on the feed, then check in the platform admin when it last downloaded. If it fetched before we rewrote the feed, it is still showing the old version and you only need to wait or force a fetch.
If it is still wrong after a fresh download, look at these:
- Is an old feed from your previous platform still connected? Two feeds with the same products overwrite each other and whichever arrived last wins.
- Is the feed set to a different currency than the one you meant to advertise in?
- Does the price on the product page match the price in the feed? Google and Heureka compare both and reject the offer when they differ. The usual culprit is a discount that only applies in the cart.
The platform says it cannot download the feed
- Is the whole address there, including https:// and the .xml ending? Safest is to use Copy URL and never edit or retype the address.
- Is the feed set to Active? A deactivated or deleted feed returns an error and nothing will read it.
- Did you rotate the address? The old one stops working immediately and the new one has to go everywhere.
- Open the address in a browser. If an XML file downloads, the feed is fine and the fault is in the setup on the other side, usually a typo in the address.
Google is disapproving products
Disapprovals are usually about Google's rules rather than the feed itself, and the reason is always written next to the item in Merchant Center. The common ones are an unverified domain, missing terms or contact details on the shop, a missing barcode on goods that should have one, or the price mismatch mentioned above.
When you need a new feed address
Every feed has a Rotate URL button. It swaps the address for a brand new one that nobody can guess or derive from the old one.
There is one reason to use it: you suspect the old address reached someone it should not have. Perhaps it was posted in a public thread, or someone who no longer works with you had access to the admin.
Rotating is not a way to refresh the data. Behio keeps the contents current on its own and a new address does not help with that.
Common questions
Do I have to upload or generate the feed by hand?
No. The feed is an address the platform visits on its own. You paste it in once on the other side and Behio keeps the contents up to date.
How many feeds can I create?
As many as you need, we do not cap the number. One feed per platform is normal, plus one per currency and language combination on multilingual shops.
Can I have two feeds for the same platform?
You can, and it often makes sense, typically when you sell in two currencies. Each feed has its own address, so they go into two separate accounts.
I am moving from another platform. Can I keep my old feed address?
No, the address is always issued by the platform the shop runs on. After moving to Behio, paste the new address into every comparison site and switch off the old feed on your previous platform so the same products are not listed twice.
Why has my price change not shown up yet?
Because it takes two steps. The feed in Behio is usually rewritten within ten minutes, but the new price only appears once the platform downloads the feed again. It controls that interval itself, and on Heureka it is roughly two to four hours.
Do I have to map products into the platform's categories?
Not in Behio. We send your shop categories as they are and the platform maps them onto its own tree. If it wants something different, you adjust it in its admin.
Why is my sold out stock missing from the feed?
Sold out items are left out by default so platforms do not advertise things nobody can buy. Switch on Include out of stock on the feed if you want them sent anyway.
Write to us and we will go through it with you. We look straight into your shop so the problem gets fixed rather than described.