Adding a demand partner is one of the most common ways publishers try to raise ad revenue. Sometimes it works. Often the new partner's dashboard shows healthy earnings while the total barely moves, because much of what it earns would have been earned by someone else anyway. This guide covers the checks before go-live, the costs, and how to test whether a partner adds to your total.
What a demand partner is
A demand partner is any company that brings advertisers' bids to your ad slots. The most common kind is an SSP (supply-side platform): a company that sells publishers' ad space to many buyers through automated auctions. Ad exchanges, ad networks and some specialist video or native sellers also count. Each partner has its own buyers, so a new one can add competition for your slots.
The number that matters: incremental revenue
Incremental revenue is the revenue you have because the partner is there that you would not have had without it. It is not the same as the revenue the partner reports.
When a new partner wins an impression, one of two things has happened. Either it beat a bid that would otherwise have left the slot empty or sold it cheaply, which is a real gain, or it narrowly beat a bid from one of your existing partners, which mostly moves revenue from one report to another. The second effect is called cannibalization. The new partner's report counts every impression it wins; it cannot show you what the other partners lost.
So the measure to use is the change in total net revenue across all partners, per 1,000 page views (or per 1,000 sessions, if that is how you track traffic). Net means after every partner's fees, in the amount actually paid to you.
A hypothetical example with round numbers: before the test, your existing partners earn $10.00 per 1,000 page views. After adding a new partner, its report shows $1.50 per 1,000 page views, which looks like a 15% gain. But your existing partners now earn $9.00 between them. The total is $10.50, so the real gain is $0.50, a third of what the new partner's report suggests.
Read the transcript
A new ad partner's report can make it look like pure extra revenue. What matters is what happens to your total. Here is a made-up example. Before the test, your existing partners earn ten dollars for every thousand page views. After adding a new partner, its own report shows a dollar fifty. But it wins some ads your other partners used to win, so they now earn nine dollars. The total is ten fifty. That's a real gain of fifty cents, not a dollar fifty. So test a new partner on part of your traffic, judge it on total revenue per thousand page views, and check page speed and payments too.
The gain can also be larger than the partner's report suggests. If more competition pushes up the prices your existing partners pay, their revenue can rise too. Either way, only the total tells you.
The cost side
A partner has costs beyond its fee.
- More requests. In a header bidding set-up, each extra bidder adds requests from the reader's browser, plus more script work. On slower phones and networks this can slow every other bidder too.
- Timeouts. A slow partner either times out, adding work for no bids, or tempts you to lengthen the timeout, which delays every ad. Our guide to header bidding timeouts explains how to measure this.
- Page speed. Extra scripts and later-rendering ads can slow the page, and slots may still be empty when readers scroll past.
- Your time. Every partner adds a report to reconcile and an invoice to chase.
A partner that adds a little revenue but slows the page may not be worth keeping. Measure both.
Before you go live
Work through these checks in order, and do not start the test until each is done.
1. Contract and payment terms
- Net or gross. Ask whether the partner's dashboard shows revenue before or after its fee. Your other partners may report differently, and you need to compare the same thing.
- Payment terms. When they pay (for example, how many days after the end of the month), any minimum payment threshold, and how they handle deductions for invalid traffic.
- Currency. Which currency you are paid in, and what exchange rate is used if it differs from the one you report in.
- Who pays you. This depends on the integration. For example, Google's documentation says Open Bidding payments are facilitated by Google and made net of Google's revenue share, while a partner you integrate directly pays you itself.
2. ads.txt and sellers.json
Add the lines the partner gives you to your ads.txt file. Each line names the partner's advertising system domain, your account ID on that system, and the relationship: DIRECT if you control the account, RESELLER if you have authorized another company to control it. Check the account ID digit by digit.
Then look up that ID in the partner's sellers.json file, published at the root of its domain. The seller_id should match your ads.txt line, and the seller_type should fit the relationship: PUBLISHER (or BOTH) for a DIRECT account in your name, INTERMEDIARY (or BOTH) for a reseller. If they disagree, ask the partner before going live. Our ads.txt and sellers.json checklist covers this in detail.
3. Consent
If you have readers in regions where you collect consent using the IAB Europe Transparency and Consent Framework (TCF), check that the partner is a registered vendor on the Global Vendor List and that your consent tool includes it. If it is missing, it may receive no consent signal and bid little or not at all for those readers. See our guide on consent and ad revenue.
4. Technical integration
There are three common routes. Ask the partner which it supports.
- A Prebid adapter. If you use Prebid, check the partner's page in the Prebid bidder documentation. It lists the bidder code, whether there is a Prebid.js or Prebid Server adapter, the parameters it needs, and its IAB GVL ID (its Global Vendor List number) where it has one.
- Open Bidding in Google Ad Manager. Ad Manager connects to the partner server to server, and the partner competes in the same auction through a yield group. Google's documentation says you must have a contract with the partner first; Google is not involved in that contract.
- The partner's own tag. Some partners supply their own script or ad tag. Check what it loads, when it runs and whether it runs its own separate auction.
Whichever route you use, confirm on a small share of traffic that bids arrive and ads render correctly.
How to test it
- Split traffic if you can. Randomly assign page views or users to a group with the new partner and a group without it, and label each group so you can report on it, for example with a key-value passed to the ad server.
- Use alternating periods only if you must. Switching the partner on and off week by week is weaker, because demand changes over time. Alternate several times.
- Run long enough. At least a full week, so both groups include weekdays and weekends. Avoid periods with unusual events.
- Keep everything else the same. Same pages, countries and devices in each group, and no other changes during the test.
- Compare the right numbers. Total net revenue from all partners per 1,000 page views, fill rate, impressions per page view, timeouts and page speed.
- Check the reports agree. Compare the partner's impression counts with your ad server's. Some gap is normal; a large one needs explaining before you trust the result. See ad server vs SSP discrepancies.
- Wait for the money. A dashboard is an estimate. Before treating the result as final, confirm the first payment matches what the partner reported, after any deductions.
When to remove a partner
Review every partner regularly. Consider removing one when:
- Its win rate stays low. It receives many requests but rarely wins, month after month.
- It is slow. It often times out or responds late, slowing the auction for everyone else.
- Payments are a problem. They arrive late, or regularly fall short of what the dashboard showed without a clear reason.
- There is no incremental revenue. A fair test shows total net revenue per 1,000 page views is no higher with it than without it.
When you remove a partner, take out its code and its consent tool entry, and update ads.txt once you have confirmed which lines belong only to it. Then watch total revenue for the following weeks.
The checklist
| Stage | Check |
|---|---|
| Contract | Net or gross reporting, payment terms, minimum threshold, invalid traffic deductions, currency |
| ads.txt | Correct domain, account ID and DIRECT or RESELLER label, live at your root domain |
| sellers.json | Your ID is listed with a seller type that matches your ads.txt line |
| Consent | Partner is on the Global Vendor List and included in your consent tool, where TCF applies |
| Integration | Route confirmed (Prebid adapter, Open Bidding or own tag); bids and ads tested on a small share of traffic |
| Test | Random split or alternating periods, at least a full week, nothing else changed |
| Decide | Total net revenue per 1,000 page views, fill, timeouts, page speed and first payment checked |
Common questions
Why does the new partner's report show more than my revenue went up?
Its report counts every impression it won, including ones your existing partners would have won anyway. Only the change in your total net revenue shows what it added.
How long should I test a new demand partner?
At least a full week, so the test covers weekdays and weekends, and longer if your traffic is small or varies a lot. Avoid holidays and unusual news periods.
Is more demand partners always better?
No. Each partner adds requests, scripts and admin, and extra partners may mostly reach the same buyers. Keep the ones that add to total revenue without hurting page speed.
Do I need to change ads.txt before testing a partner?
Yes. Some buyers do not buy from sellers your ads.txt does not authorize. Google's Display & Video 360, for example, blocks unauthorized sellers by default. A partner tested without its lines will look weaker than it is.