Skip to content
Adcell
Ad platforms

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.

01 · ShopifyProduct in the catalog
Linen shirt SandNordlin · Men's shirtsSKU-2048 · S–XL
Price
49 €
In stock
0 pcs
When out of stock
02 · adcell.csvUpdated just now
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";"0";"2-4 working days"
−20% off compare-at
Productprice_​strikeprice_​gross
Linen shirt Sand49.00 €39.20 €
Mug Fjord 350 ml15.00 €12.00 €
Backpack Ridge 28 l89.00 €71.20 €
Soy candle Les19.00 €15.20 €
Wool scarf Fjell39.00 €31.20 €
42.20 €saved across these products
5 / 5products with a strike price
Sale prices

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.

Feed health

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.

Feed quality · adcell.csv
76 / 100
To review: 4
No identifier on 9 productsAdcell's spec makes the trio mandatory: "EAN and/or AAN and/or HAN", at least one per product. These have neither a barcode nor a SKU mapped.
Empty shipping columnGeneral shipping costs are starred mandatory in the PDF, and the template leaves them unmapped on purpose: 0 would tell every publisher the products ship free.
Empty delivery_timeDelivery time is mandatory too, as free text like "2-4 working days". The template invents no lead time. It is your promise to make.
Empty description on 6 productsdescription is mandatory and publishers show it verbatim. These products have no description in Shopify.

Setup

Live in five steps

From a bare Shopify store to a listed offer: the whole setup fits into one coffee break.

  1. 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.

  2. Install Feedflock

    Add Feedflock from the Shopify App Store. It reads your products, variants, stock and images directly through the Shopify API.

  3. 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.

  4. 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.

  5. 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

adcell.csv
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"
Live preview
Linen shirt Sand

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

01

A CSV, exactly as the PDF describes it

  • UTF-8 or ISO-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 URL and 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.

02

Registration and the @0@ deeplink

  • My campaigns → Advertising material → Create new → CSV: the registration path the PDF documents
  • A CSV carrying full product URLs is registered with Link = @0@
  • Adcell wraps its tracking around the deeplink: your column carries no UTM parameters
  • The re-fetch cadence is not public; second-hand sources say ~24 h. Confirm with the CSV contact the PDF names
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.

03

Prices, strike prices and identifiers

  • Gross price incl. VAT as a bare number: the PDF recognises 123.45, 123,45, 1.000,99 and 123,-
  • One currency per row; the currency column carries the ISO code, EUR is 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: EAN and/or AAN and/or HAN, 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.

04

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.

feedflock · mcp

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

No. The spec PDF says Adcell evaluates the columns of your file and standardises the data, so the names are free. Feedflock uses clean snake_case headers in the PDF's own order. Columns beyond the spec's list are not an error either: Adcell appends them as info columns for publishers.
Adcell does not publish a re-fetch cadence. Second-hand documentation describes pasting the feed URL into the Adcell account with updates about every 24 hours. The spec PDF names a dedicated CSV contact. Confirm the cadence with them. Feedflock regenerates the file every hour, so any fetch reads current data.
Because tracking is Adcell's job. A CSV carrying full product URLs is registered with the @0@ placeholder in the advertising material's Link field, and Adcell wraps its tracking around each deeplink. Adding your own UTM parameters would only be something to maintain when campaigns change.
The PDF stars price_strike as mandatory, which is unusual for a reference price, but an always-filled strike price invents a permanent discount. The honest reading, and the template's default: the compare-at price goes in when the product is on sale, and the column stays empty when it is not.
At least one of the trio: EAN and/or AAN (supplier article number) and/or HAN (manufacturer article number). Feedflock fills EAN from the Shopify barcode and AAN from the SKU by default and checks the combination rule at generation, so a product with none of the three is reported before the feed ships.
Four columns are mandatory only under named German regulations: content, base_price and base_price_unit for products under the Basic Price Regulation (the Grundpreisverordnung: the unit price per kg or l), and energy_efficiency_class under the Energy Efficiency Classes Regulation. The content value needs a space between the integer and the unit: 750 ml, 50 kg.
Yes. Filter by collection, tag, vendor, price or stock level, or leave out individual variants. The CSV is one row per variant, so excluding a size or colour removes exactly that row.

Get on every marketplace that matters this afternoon.

Install free, connect your first feed in minutes, and let Feedflock keep it fresh and validated.

.myshopify.com