
Adcell feed for Shopify
Adcell is the affiliate network of Firstlead GmbH in Berlin: publishers pick up your products and promote them for a commission, and the whole product supply is one CSV file described in a public spec PDF. Feedflock turns your Shopify catalog into exactly that file (semicolon-separated, double-quoted, UTF-8, with every mandatory column mapped) and keeps it current on a stable URL, regenerated as often as every hour.

A strike price that is mandatory, and still often empty.
Adcell's spec stars price_strike as mandatory even though it is a reference price. The honest reading: fill it from your compare-at price when a product is on sale, and leave it empty when it is not. An always-filled strike price invents a permanent discount. Feedflock maps exactly that, so price_gross always carries the price you actually charge.
Catch feed issues before Adcell does.
Before every generation Feedflock checks that every field the channel requires is filled, and, on templates verified against the channel's own spec, that the values fit its rules. Most problems are fixed with one click, without editing products in Shopify.
Setup
Live in five steps
From a bare Shopify store to a listed offer: the whole setup fits into one coffee break.
Join Adcell as an advertiser
Register your partner program with Adcell (Firstlead GmbH). The program (and its commissions) is what publishers sign up to; the product CSV becomes one of your advertising materials.
Install Feedflock
Add Feedflock from the Shopify App Store. It reads your products, variants, stock and images directly through the Shopify API.
Pick the Adcell template
Create a new feed and choose Adcell. deeplink, title, description, price_gross, currency, image, category, availability and the identifier trio are mapped from the start: one row per variant, prices as bare dot-decimal numbers.
Fill what only you can decide
The general shipping column and the delivery time are mandatory but yours to promise: set a flat 4.95 and a "2-4 working days", for example. Selling by weight or volume? The Grundpreisverordnung fields content, base_price and base_price_unit are ready in the template.
Register the feed URL as a CSV material
In your Adcell account: My campaigns → Advertising material → Create new → CSV. The file carries full product URLs, so the Link field gets the @0@ placeholder and Adcell wraps its tracking around it. Paste the hosted feed URL. The re-fetch cadence is not public (second-hand sources say ~24 h), so confirm it with the CSV contact the PDF names.
https://feedflock.appfleece.com/f/demo-adcell/adcell.csv
The feed
What the channel receives
deeplink;title;description;price_gross;price_strike;currency;ean;manufacturer;image;category;shipping;availability;delivery_time "https://shop.example/products/linen-shirt-sand?variant=46012345678901";"Linen shirt Sand M";"Breathable linen shirt with a relaxed regular fit.";"49.00";"";"EUR";"8594000123453";"Nordlin";"https://cdn.shop.example/img/linen-shirt-sand.jpg";"Men's shirts";"4.95";"1";"2-4 working days"

Nordlin
Linen shirt Sand
49 €
Feed fields
deeplink
https://shop.example/products/linen-shirt-sand?variant=46012345678901
title
Linen shirt Sand M
description
Breathable linen shirt with a relaxed regular fit.
price_gross
49.00
currency
EUR
ean
8594000123453
manufacturer
Nordlin
category
Men's shirts
shipping
4.95
availability
1
delivery_time
2-4 working days
The channel
Publishers sell for you
Adcell is an affiliate network: content sites, bloggers and deal portals pick up your product data and send you traffic for a commission. The CSV is how your catalog reaches them: it becomes an advertising material of your partner program.
Tracking that never breaks your links
The deeplink column stays plain: no UTM parameters, no tracking glue. You register the file with the @0@ placeholder in the Link field and Adcell wraps its tracking around every product URL itself.
A spec that is actually public
Adcell publishes its CSV specification as a PDF anyone can read: the exact technical structure, the mandatory columns and the price formats it parses. Feedflock's template is written straight against it.
The feed
- The exact technical structure the spec PDF quotes: semicolon separators, double-quoted text, UTF-8, a header row, one row per variant
- All 23 columns in the PDF's order, including the regulation-gated content, base_price, base_price_unit and energy_efficiency_class for products under the German Basic Price Regulation
- Prices as bare dot-decimal numbers with the ISO currency in its own column, one currency per row. EUR is assumed only if the column is empty, and the template sends it anyway
- The identifier rule checked at generation: every product needs at least one of EAN, AAN or HAN, from the barcode or SKU
- Deeplinks stay plain and variant-pinned, ready for the @0@ placeholder, with no tracking parameters to maintain
- Availability defaults to 1/0, with a worded variant one mapping away if Adcell's mapper asks for it
- Titles pair product and variant by default, so per-variant rows never collide and variants stay told apart
- Fetch tracking shows when the feed was last downloaded and alerts you if the fetches stop
Deep dive
A CSV, exactly as the PDF describes it
UTF-8 orISO-8859-15, semicolon column separator, double-quote text separator, \n line separator, header row first- Column names are free: Adcell evaluates the columns and standardises the data on import
- Columns beyond the spec's list are appended as info columns for publishers
- One row per variant; Feedflock hosts the file on a stable
URLand regenerates it every hour
Technical details
Adcell's spec PDF quotes the technical structure in one breath: encoding UTF-8 or ISO-8859-15, column separator semicolon, text separator double apostrophe, line separator a line break, first line the column labels. With a semicolon as the separator, any text containing one must be quoted. The exporter quotes when needed, so a stray semicolon in a description never breaks a row.
The column names themselves are free: Adcell evaluates the columns of your file and standardises the data, and anything beyond the spec's list is appended as an info column publishers can read. The template's snake_case headers in the PDF's own order are a clean starting point, not a required spelling. Feedflock renders the file on a stable public URL and regenerates it as often as every hour.
Registration and the @0@ deeplink
- My campaigns → Advertising material → Create new →
CSV: the registration path thePDFdocuments - A
CSVcarrying full product URLs is registered with Link = @0@ - Adcell wraps its tracking around the deeplink: your column carries no
UTMparameters - The re-fetch cadence is not public; second-hand sources say ~24 h. Confirm with the
CSVcontact thePDFnames
Technical details
The spec PDF documents the registration itself: in your Adcell account, under My campaigns → Advertising material → Create new → CSV. A CSV that carries full product URLs is registered with the @0@ placeholder in the Link field, and Adcell wraps its tracking around the deeplink. Extra parameters are appended to the placeholder. That is why the deeplink column stays plain: no utm, no tracking, nothing to maintain when campaigns change.
What the PDF does not say is whether Adcell re-fetches the file on a schedule. Second-hand documentation has the merchant pasting the feed URL into the Adcell account and Adcell updating the file about every 24 hours. The PDF names a dedicated CSV contact: the cadence is one question to them, and Feedflock's hourly regeneration means every fetch reads current prices and stock either way.
Prices, strike prices and identifiers
- Gross price incl.
VATas a bare number: thePDFrecognises 123.45, 123,45, 1.000,99 and 123,- - One currency per row; the currency column carries the
ISOcode,EURis assumed when empty - price_strike is starred mandatory even as a reference price. Empty means not on sale
- The identifier trio is a combination rule:
EANand/orAANand/orHAN, at least one per product
Technical details
The gross price goes out as a bare number with the currency in its own column. The PDF recognises dot and comma decimals, thousands grouping and even the 123,- form, and the template emits the simplest one: 123.45. One currency per row is the rule: if you sell in several currencies, each gets its own data row. EUR is assumed when the currency column is empty; the template sends the code anyway.
Two details deserve care. price_strike is starred mandatory in the PDF even though it is a reference price. The template maps it from your compare-at price and leaves it empty when the product is not on sale, because an always-filled strike price invents a permanent discount. And identification is a trio, not a field: EAN and/or AAN and/or HAN, at least one per product. The template fills EAN from the Shopify barcode and AAN from the SKU, and checks the rule at generation.
Availability, delivery and the regulation fields
- availability and delivery_time are mandatory with no stated vocabulary: the defaults are 1/0 and free text
- General shipping costs are a mandatory bare number; per-payment-method columns are optional extras
- content, base_price and base_price_unit are mandatory for products under the Grundpreisverordnung: integer, space, unit (750 ml, 50 kg)
- energy_efficiency_class applies under the Energy Efficiency Classes Regulation
Technical details
Two mandatory columns come with no vocabulary at all: availability and delivery_time. The template's defaults are honest ones: availability as 1 or 0 derived from Shopify's stock (a worded variant is one mapping away if Adcell's mapper asks), and delivery time as free text like "2-4 working days" that you set, because an invented lead time is a promise only you can make. Shipping is a mandatory bare number in the feed's currency, deliberately unmapped by default: writing 0 would tell every publisher the catalog ships free.
Four more columns are gated on German regulations, marked with a double star in the PDF. Products under the Basic Price Regulation (Grundpreisverordnung) must carry content, base_price and base_price_unit: the content as an integer and a unit with a space between them, "750 ml" or "50 kg", because without the space the data cannot be processed. Products under the Energy Efficiency Classes Regulation carry energy_efficiency_class. All four are in the template, ready when your assortment needs them.
The takeaway
One URL, an hourly refresh and a CSV that follows Adcell's public spec column for column: plain deeplinks ready for the @0@ placeholder, the identifier trio checked, prices in the form the PDF parses. Your Shopify catalog stays the single source of truth for every publisher in the network.
Claude · ChatGPT
Or set up your Adcell feed in chat
Connect Feedflock to Claude or ChatGPT and ask. It creates the feed as a draft, maps your categories to Adcell's own tree and tells you what is still missing. You approve every change.
Create a Adcell feed for my store and map my categories.
I'll create it as a draft and show you each change before I make it.
FAQ
Get on every marketplace that matters this afternoon.
Install free, connect your first feed in minutes, and let Feedflock keep it fresh and validated.