Developers

ads.txt, app-ads.txt
and sellers.json

Three small public files tell buyers who may sell your ad space. Zurla, a frontier model built for advertising, writes your line, lists you as a direct seller and keeps every file in order.

Ask Zurla Live

We’re Pellbrook Media. Can buyers confirm you may sell our ad space?

Yes, from both ends. Your ads.txt names me as a direct seller, and my sellers.json names you as the publisher, with the same account ID.

  • Your ads.txt: zurla.com, ZRL-000000, DIRECT
  • My sellers.json: ZRL-000000 is Pellbrook Media

Confirmed both endsDirect seller

Ask Zurla about ads.txt

Illustrative data · IDs are placeholders

In plain words

Who may sell your space,
in public.

Buyers want to know that the company offering your ad space may sell it. So the answer sits in plain public files at fixed addresses, and buyers’ systems read them before they bid.

You list who may sell your space. Zurla lists who it sells for. When both lists name the same account, buyers bid with confidence.

ads.txtWebsites

On your website

The list of companies that may sell your website’s ad space. You add one line for Zurla, marked DIRECT.

pellbrook.example/ads.txt

Published by
You
Zurla’s part
Writes your line and checks it every day

app-ads.txtApps

On your developer website

The same list for apps, on the website named in your App Store and Google Play listings. Same line, same format.

sorrelby.example/app-ads.txt

Published by
You
Zurla’s part
Writes your line and checks it every day

sellers.jsonZurla’s list

On Zurla’s website

Zurla’s public list of the sellers it works with. It names you as the publisher, by the same account ID as your line.

zurla.com/sellers.json

Published by
Zurla
Zurla’s part
Lists you and keeps the file current

The same account ID travels in every bid request too, in its supply chain. See what buyers receive

For publishers and app developers

One line.
Zurla writes it.

Ask Zurla for your line and paste it into ads.txt on your website, or app-ads.txt on the website in your app’s store listing. Buyers’ systems pick up the new line within a few days, and Zurla checks it every day after that.

Ask Zurla

Write our ads.txt line for pellbrook.example.

Here it is: one line, marked DIRECT. Paste it into the ads.txt file at the root of your site.

  • Wrote your line with your account ID
  • Marked it DIRECT: you work with me directly
  • Listed you as the seller in my sellers.json

Line ready1 line in ads.txt

Ask Zurla for your line

Illustrative data

Written by Zurla
# https://pellbrook.example/ads.txt
# Paste the line from your Zurla account.
# The ID below is illustrative.
zurla.com, ZRL-000000, DIRECT
# https://sorrelby.example/app-ads.txt
# On the website in your store listings.
# Paste the line from your Zurla account.
# The ID below is illustrative.
zurla.com, ZRL-000000, DIRECT

The line, field by field

zurla.comZurla’s domain

ZRL-000000Your account ID

DIRECTA direct relationship

Post it at the root of your website. Buyers’ systems pick it up within a few days.Post it on the website in your store listing. Buyers’ systems pick it up within a few days.

Zurla’s linePlain text · 4 linesWritten by Zurla

Snippets are illustrative. Your real account ID comes with your account.

  1. 01

    Ask Zurla for your line

    Zurla writes it with your account ID, marked DIRECT, and lists you as the seller in its sellers.json at the same time.

  2. 02

    Declare and publish

    Paste it into ads.txt at the root of your website. For an app, add it to app-ads.txt on the developer website listed on your App Store and Google Play pages.

  3. 03

    Buyers pick it up

    Buyers’ systems read these public files on their own schedule and pick up a new line within a few days.

  4. 04

    Zurla checks it every day

    Zurla’s line marks a direct relationship, so buyers bid with confidence. Zurla checks that it’s in place every day and keeps your sellers.json entry current.

In every bid request

The whole path.
Short and direct.

Every request Zurla sends carries its supply chain: a record of each company that handles it on the way to buyers. With Zurla it holds one node, Zurla itself, naming you by the same account ID as your line.

The supply chain

What buyers receive

Premium buyers and the deals you set up through Zurla compete for each request. Every request carries its full supply path, showing a short, direct route to your site or app, which is what buyers look for.

OpenRTB 2.6
With Native 1.2: the formats buyers already use
ads.txt and app-ads.txt
Your line for Zurla marks a direct relationship
sellers.json
Zurla lists you as the seller, by the same account ID
Supply chain
Each request carries it, complete back to you
bid-request.json · sourceOpenRTB 2.6
{
  "source": {
    "schain": {
      "ver": "1.0",
      "complete": 1,
      "nodes": [{
        "asi": "zurla.com",
        "sid": "ZRL-000000",
        "hp": 1
      }]
    }
  }
}
The supply chain every buyer receives

asizurla.comthe domain in your line

sidZRL-000000your account ID, as in sellers.json

complete1the path runs all the way back to you

Illustrative data · IDs are placeholders

OpenRTB 2.6Every field Zurla sends and expectsThe supply chain is one object in the bid request. The rest of the request, field by field, is on the OpenRTB 2.6 page.

For RTB platforms

Your seller files,
kept in order.

Run your exchange or SSP on Zurla under your own brand, and your sellers.json (your public list of sellers) lives on your domain. Zurla keeps it current with every seller on your platform, checks that each direct publisher’s ads.txt or app-ads.txt line names you, and puts your domain in every request’s supply chain.

The code window shows Orrinth Exchange’s sellers.json, which lists Thistlecomb Media and Gildersby Games by seller ID. Its other tab shows Gildersby Games’ app-ads.txt line, which lists Orrinth Exchange as a direct seller.

orrinth.example/sellers.jsonyour sellers gildersby.example/app-ads.txta publisher’s line
{
  "version": "1.0",
  "contact_email": "sellers@orrinth.example",
  "contact_address": "<Orrinth Exchange business address>",
  "sellers": [
    {
      "seller_id": "10482",
      "name": "Thistlecomb Media",
      "domain": "thistlecomb.example",
      "seller_type": "PUBLISHER"
    },
    {
      "seller_id": "20917",
      "name": "Gildersby Games",
      "domain": "gildersby.example",
      "seller_type": "PUBLISHER"
    }
  ]
}
# https://gildersby.example/app-ads.txt (websites use ads.txt, same line)
# Covers every app that lists gildersby.example as its developer website.
# Your domain, the seller's ID with you, and the relationship. Illustrative.
orrinth.example, 20917, DIRECT
Seller ID 20917 · DIRECTPlain text · 4 lines Two sellers, by seller IDJSON · 19 lines

the publisher’s line names your domain, its seller ID with you and DIRECT

two of your sellers shown; the file lists every seller on your platform · illustrative

Illustrative data · domains and IDs are placeholders

Zurla · Orrinth Exchange

Are our seller files in order?

Yes. I check them every Monday, and every line is in order this week.

  • Direct publishers’ ads.txt and app-ads.txt lines: all DIRECT
  • sellers.json current: every seller, by seller ID

Files in orderDirect lines checked

Ask Zurla about your seller files

Spec

sellers.json
On orrinth.example, under your own brand: every seller on your platform by seller ID (the account number you give each seller), kept current by Zurla
The match
Each publisher’s line, your sellers.json entry and the request’s supply chain all carry the same seller ID
Checks
Every direct publisher’s ads.txt and app-ads.txt line, every Monday, against your sellers.json
New sellers
A new site or app is live the same day; bids grow as buyers’ systems pick it up

Reference

Field by field.

Every field in Zurla’s line, in your entry in Zurla’s sellers.json and in the supply chain each request carries. The IDs are placeholders: your real account ID comes with your account.

FieldIn Zurla’s lineWhat it means
1 · Domainzurla.comThe company that may sell your space: Zurla, by the same domain as its sellers.json.
2 · Account IDZRL-000000Your account with Zurla. It is also your seller ID in Zurla’s sellers.json and the seller in each request’s supply chain.
3 · RelationshipDIRECTYou work with Zurla directly. Zurla’s line is always DIRECT.
Where it goes/ads.txt
/app-ads.txt
At the root of your website, or of the developer website listed on your App Store and Google Play pages. Plain text, one line per seller.
FieldYour entryWhat it means
seller_id"ZRL-000000"Your account ID, the same as the second field of your line.
name"Pellbrook Media"Your business name, as buyers see it.
domain"pellbrook.example"Your own domain.
seller_type"PUBLISHER"You own the site or app and sell its space through Zurla.
Where it iszurla.com/sellers.jsonPublished and kept current by Zurla. An RTB platform on Zurla publishes its own, on its own domain.
FieldIn each requestWhat it means
source.schain{ … }The supply chain object, in every OpenRTB 2.6 bid request.
ver"1.0"The version of the supply chain object.
complete1The chain runs all the way back to you.
nodes[].asi"zurla.com"The company that handled the request: the domain in your line.
nodes[].sid"ZRL-000000"Your account ID there: the seller ID in Zurla’s sellers.json.
nodes[].hp1Zurla takes part in the payment for this space.

Illustrative data · IDs are placeholders

Questions

Good to know.

The short answers on ads.txt, app-ads.txt and sellers.json with Zurla.

What do I add to ads.txt?

Zurla’s line from your account, marked DIRECT. ads.txt is the public file buyers check to see who may sell your ad space, and their systems pick up a new line within a few days. Zurla also lists you as the seller in its public sellers.json file, so buyers can confirm both ends and bid with confidence.

Where does app-ads.txt go?

At the root of the developer website listed on your App Store and Google Play pages, like sorrelby.example/app-ads.txt. One file covers every app that lists that website, so a new app needs no new line.

Do I need both files?

You need the file for what you run: ads.txt for a website, app-ads.txt for apps. A publisher with both adds the same Zurla line to each.

How soon do buyers see my line?

Buyers’ systems read these files on their own schedule and pick up a new line within a few days. From then on, Zurla checks that your line is in place every day.

Do I edit Zurla’s sellers.json?

No. Zurla publishes it at zurla.com/sellers.json and keeps it current. It lists you as the publisher, by the same account ID as your line, so all you add on your side is that one line.

We run an exchange on Zurla. Whose sellers.json is it?

Yours, on your domain, under your own brand. Zurla keeps it current with every seller on your platform, checks your direct publishers’ ads.txt and app-ads.txt lines every Monday, and puts your domain in every request’s supply chain. More on Zurla for RTB platforms.

Your line in place.
Buyers bid with confidence.

Book a demo, and we’ll show you Zurla, a frontier model built for advertising, writing your line, listing you as a direct seller and checking your files on your setup.

Zurla
Ask Zurla