Sellers.json is an IAB initiative aimed at bringing even greater transparency to each advertising opportunity. It allows buyers to map publisher/seller IDs to the human readable name of the seller making inventory available during the course of an auction. It is the counterpart to Ads.txt.
Even prior to the announcement of this initiative, there were bid request fields meant to reveal this information about the final seller of an impression, but they were inconsistently used by various ad systems.

Moving this data out of the bid request allows for smaller bid requests, and still allows buyers to perform on demand analysis of the entities in their supply chain. To fully analyze the path a certain opportunity travels requires the SupplyChain object, which will be the covered in a subsequent blog.

According to the official spec:Every advertising system listed in an ads.txt file and any advertising system that is referenced from a SupplyChain object node should publish a Sellers.json file at the following location: http://{advertising_system_domain}/sellers.json”

What Does a Sellers.json File Look Like?

In order to understand the schema for the file, lets look at an example file obtained from rubiconproject.com/sellers.json today:

sellers json excerpt from rubiconproject.com

Generally speaking, at the top of the returned object you will find contact information for that seller such as their corporate e-mail and physical address. The sellers.json object is not required to have contact information, but it often does.

Additionally, if there is a relevant certification authority ID in an ads.txt entry which names a seller, you will find that in the “identifiers” object array. In the above example you see that there is a TAG ID of “0bfd66d529a55807.”

Following this optional information is the all-important “sellers” object array. Per the spec, this contains “the list of all Seller objects that are represented by the advertising system. All sellers must be included even if they are confidential.”

Each object in the “sellers” array contains information on one particular seller id. Some important fields in the “Seller” object, and their definitions from the official spec, are as follows:

  1. seller_id (REQUIRED): This is the same ID that appears in an ads.txt file and in the SupplyChain.nodes array sid property.”
  2. is_confidential (OPTIONAL): Indicates whether the identity of the seller is confidential, where 0 = is not confidential and 1 = is confidential.”
  3. seller_type (REQUIRED): “An enumeration of the type of account, either PUBLISHER, INTERMEDIARY, or BOTH. A value of ‘PUBLISHER’ indicates that the inventory sold through this account is on a site, app, or other medium owned by the named entity and the advertising system pays them directly. A value of “INTERMEDIARY” indicates that the inventory sold through this account is not owned by the named entity or the advertising system does not pay them directly. ‘BOTH’ indicates that both types of inventory are transacted by this seller”
  4. is_passthrough (OPTIONAL): A value of 1 indicates that “This seller has an account control relationship with the downstream/consuming advertising system.” Basically, this means that if you don’t have a contractual understanding in place with this seller, and it is the one offering the opportunity, you can’t transact. You would need an account with that ad system to bid.
  5. name (REQUIRED IF is_confidential=0): The name of the company (the legal entity) that is paid for inventory that is transacted under the given seller_id”
  6. domain (REQUIRED IF SELLER HAS A WEB PRESENCE AND is_confidential=0): The business domain name of the company (the legal entity) that is paid for inventory that is transacted under the given seller_id. When the seller_type property is set to INTERMEDIARY or BOTH, this should be the root domain name of the seller’s Sellers.json file.”

Putting a Name to a Publisher ID Using Sellers.json

In the following example we’ll use ads.txt information pulled from cnn.com, combined with a seller.json file, to identify one of the DIRECT sellers.

Selection of the ads.txt file from cnn.com

The highlighted row of the ads.txt file reads as follows:

  • Ad System: rubiconproject.com
  • Publisher Account ID: 11078
  • Account Type: DIRECT
  • Certification Authority ID: 0bfd66d529a55807

To discover the identity of that publisher ID we go to rubiconproject.com/sellers.json, and search for “11078”

Seller id 11078

We can see that seller_id “11078” refers to “Turnier Digital Ad Sal” which has a domain of “turner.com.” We can probably assume this means “Turner Digital Ad Sales,” and whatever the actual corporate domain for Turner Broadcasting Corporation (CNN’s parent company) is.

Nobody ever said it was going to be easy managing thousands of seller IDs, but you get the idea.

Sellers.json Statistics

All the charts & data are based off DeepSee’s analysis of over 20 million subdomains, and use a date range of -90 days from August 15th 2020.

% of Adsystems Hosting Seller.json Files by Ad System Reach

We can see a pretty linear pattern here: the more publishers in an ad system’s network, the more likely they are to host a Sellers.json file. 90% of Ad Systems with over 100k domains reach host a sellers.json file.

 

What is Sellers.json? Is it the best move forward?

This chart takes a look at just how many Ads.txt entries can be matched to a corresponding sellers.json file.

We found that Google’s file heavily biased this data, since their sellers.json file is very small (just a few thousand items), while we have recorded over 600,000 publisher Ids of theirs on Ads.txt files across the web.

If you ignore the Google data, we get a much more reasonable figure: about 40% of ads.txt entries can be mapped to a corresponding entry on a sellers.json file.

Top ads.txt adsystems compared to their Sellers.json files

This table shows the top 25 ad systems in terms of how many unique root domains host ads.txt files where they appear.

Most of these ad systems host a sellers.json file, but not all. Google is a special case, as demonstrated by the chart preceding this one; they barely have any listings confirmed in their sellers.json file.

Given the scale they have compared to nearly everyone else, they do not face an easy task.

According to their sellers.json documentation: “We have currently listed premium publishers using Google Ad Manager – specifically prioritizing the resellers who have drawn the interest from buyers in this effort. AdMob and Adsense are being added at a later date.”