Affiliate Product Feeds: Formats, Fields and Uses

Product feeds are the most useful and most misused thing an affiliate network gives you. Here is what is in them, how often they change, how to process them, and where the line is between a useful product page and scaled content.

By the AffiFeed teamPublished 6 min read

A product feed is a file, published by an affiliate network on behalf of a shop, that lists the shop's products with their prices, images and tracked links. Instead of copying a price into an article and hoping it stays right, you read it from the feed. That makes feeds the backbone of comparison tables, product boxes, price widgets and deal pages.

They are also the easiest way to build a site Google does not want. This guide covers both sides: what is in the feeds from the networks Nordic publishers use, and how to use them in a way that adds something.

Formats: mostly XML, sometimes CSV

There is no single standard for affiliate feeds; each network has its own. In practice:

NetworkFormatHow you get it
Partner-AdsXMLPer-advertiser feed URL, or full feed download, under Produktfeeds
AdtractionXMLCopy feed URL per approved brand under Products → Feeds, or API v3
AwinCSV download or URLCreate-a-Feed tool: choose advertisers, categories, brands and columns
TradedoublerXML or JSON via APIProducts API; the "unlimited" service returns a whole feed for your own database
How the main networks deliver product feeds to publishers

For comparison, Google Merchant Center, which is the closest thing e-commerce has to a common product-data format, accepts tab-delimited text (.txt or .tsv) and XML (RSS 2.0 or Atom 1.0) files up to 4 GB. Many shops generate their affiliate feed from the same product data they send to Google, which is why field names often look familiar.

What fields a feed contains

Field names differ, but the content is broadly the same. This table maps the fields you will use most across Partner-Ads, Adtraction and Google's product data specification:

DataPartner-AdsAdtractionGoogle Merchant Center
Product nameproduktnavnproductNametitle
Current pricenyprisproductPriceprice
Previous / sale priceglpris (previous)oldPrice (previous)sale_price (the reduced price)
Product linkvareurlproductUrllink
ImagebilledurlimageUrlimage_link
BarcodeEAN (where provided)eangtin
Stockvaries by shopinStockavailability
Brandvaries by shopmanufacturerbrand
Shippingvaries by shopshippingshipping
Common product feed fields compared

In Google's specification, id, title, description, link, price and availability are required for products to serve at all. Affiliate feeds are less strict: a shop may leave out stock, brand or shipping. Before you design a layout, open a real feed from each shop you plan to use and check which fields are actually filled.

How often feeds update, and how often you should

  • Adtraction says its feeds are typically updated once a day, with some brands more often and some less. The feed list shows a Last updated time for each.
  • Partner-Ads asks affiliates who display prices alongside ads to update them continuously, and at least weekly, so they match the advertiser's prices.
  • Awin offers a feed list download that includes each feed's last update time, so you only download feeds that changed.
  • Tradedoubler limits downloads of the same unchanged file to three times per 24 hours and responds with HTTP 429 if you exceed it.

A sensible default is to refresh once a day and to check the last-updated information before downloading, which keeps you inside network limits and saves bandwidth. For big-ticket categories where prices move quickly, more often is worth it. Weekly is the floor Partner-Ads sets, not a target.

A processing pipeline that holds up

  1. Fetch. Download the feed on a schedule. Store the raw file with a timestamp so you can debug price complaints later.
  2. Parse. Use a streaming or tolerant XML parser. Feeds contain broken characters, empty tags and HTML inside descriptions.
  3. Normalise. Convert prices to numbers with an explicit currency, map stock values to a small set (in stock / out of stock / unknown), and trim names.
  4. Match. Use EAN/GTIN to recognise the same product across shops. This is what makes price comparison possible.
  5. Filter. Keep only the products you would actually recommend or compare. A feed of 40,000 products is raw material, not content.
  6. Cache. Serve product data from your own cache, not live from the network on each page view.
  7. Render. Show the price with its currency, a date or "price checked" note, the shop name, and an advertising label next to the link.
  8. Retire. When a product disappears from the feed or goes out of stock, hide it or mark it, rather than leaving a dead link.
Simplified illustration of one product in a Partner-Ads-style feed
<produkt>
  <produktnavn>Example Brand Trail Shoe 2</produktnavn>
  <nypris>899.00</nypris>
  <glpris>1099.00</glpris>
  <billedurl>https://shop.example/images/trail-shoe-2.jpg</billedurl>
  <vareurl>(tracked product link generated by the network)</vareurl>
</produkt>

The example is simplified and the values are made up; real feeds contain more fields and the link format is generated by the network. Note that nypris is lower than glpris here, which by Partner-Ads' definition means the product is on sale.

Images: hotlink, do not copy

Partner-Ads' guidance says product images should be read from the advertiser's image URL, because some brands only allow their images to be hosted by the shop. That is a reasonable default for every network: it avoids copyright problems, and the image updates automatically when the shop changes it. Set explicit width and height on the image element so it does not shift your layout while loading.

Where feed-driven sites go wrong

Google's spam policies describe thin affiliation as publishing content with affiliate links where product descriptions and reviews are copied directly from the merchant without original content or added value. Its scaled content abuse policy specifically lists scraping feeds to generate many pages where little value is provided to users. Both describe the classic feed site: one page per product, the shop's description pasted in, a buy button.

Google is equally clear that taking part in an affiliate programme is not the problem. Its examples of affiliate pages that add value include extra information about price, original product reviews, rigorous testing and ratings, navigation of products or categories, and product comparisons. A feed is a good way to power exactly those things:

  • a comparison table of the eight products you shortlisted, with current prices from several shops,
  • a price history or "lowest price across shops" note under your own review,
  • a category page where you explain what matters when choosing, then show matching in-stock products.

The rule of thumb: the feed supplies facts that change (price, stock, link); you supply the judgement that does not. More on this in affiliate links and SEO.

Structured data for feed-driven pages

Google distinguishes between merchant listings, which are only for pages where the shopper can buy the product, and product snippets, which are for product reviews and aggregator pages. An affiliate page that links out to shops is not eligible for merchant listings. If you add Product markup, follow the product snippet requirements, and if the same product is sold by several shops, AggregateOffer is the type Google describes for offers from multiple merchants.

  • In Denmark, product boxes and comparison tables with affiliate links are advertising and must be marked as such where the reader sees them. See the disclosure guide.
  • Showing an outdated price as current is misleading to the reader. Refreshing prices is not only good practice; Partner-Ads requires it.
  • Do not call a feed-built list a "test". The Danish Consumer Ombudsman has treated "test", "best" and "guide" wording on pages compiled from external sources as misleading.

Doing it without writing the pipeline yourself

Building the pipeline above is a few days of work for a developer and ongoing maintenance after that. AffiFeed does the fetch, parse, normalise, cache and render steps for Partner-Ads and Adtraction feeds: you connect your accounts, filter to the products you want, and embed the result with a script tag. The filtering and the writing around it stay your job, which is the part Google cares about. See the feature overview, or read on about WordPress product boxes for the other options.

Sources

Everything factual in this article comes from the pages below, checked in September 2026. Terms and numbers change; check the source before relying on them.

  1. Guide til affiliates brug af hele produktfeeds (Partner-Ads)
  2. Brugerbetingelser for affiliate partnere (Partner-Ads affiliate terms)
  3. Product feeds via Adtraction (Adtraction Help Center)
  4. Adtraction API documentation
  5. Downloading feeds using Create-a-Feed (Awin developer docs)
  6. Product feed list download (Awin)
  7. Products API for publishers (Tradedoubler)
  8. Product data specification (Google Merchant Center Help)
  9. GTIN [gtin] (Google Merchant Center Help)
  10. Create a product file for Merchant Center (Google Merchant Center Help)
  11. Spam policies for Google web search (Google Search Central)
  12. Intro to Product structured data (Google Search Central)
  13. Product snippet structured data (Google Search Central)
  14. Mediehus overtrådte forbuddet mod skjulte kommercielle hensigter og vildledning (Forbrugerombudsmanden)