XML Feed Quick Start
Four steps take a new supply partner from credentials to earning traffic. Most feeds are live the same day, since the XML wire has no certification suite, only a smoke test.
1. Request a feed key
Feed keys are issued by the adon3 integration office, not through a dashboard.
Write to [email protected] with:
- Your company name and a technical contact
- The domains, apps or subscriber lists your traffic comes from
- The supply type you are selling:
link,poporpush - The countries and daily volume you expect
You will be sent back:
- One feed key per supply endpoint, bound to a single supply type
- Your SSP id and a reporting auth key for
reports.xml.adon3.com - A shared Microsoft Teams channel with your integration engineer
The feed key is a credential and it goes in the request path, so the request must be made from your server, never from the visitor's browser.
2. Make one request
Send the visitor's IP and user agent. Everything else is optional, but subid
and rid are worth sending from the first call. Without them you cannot break
reporting down by placement, and deduplication falls back to ip and ua.
curl -sS -G 'https://dsp.xml.adon3.com/v1/feed/9862b397ba3320149b94a05079597eb3' \
--data-urlencode 'ip=203.0.113.44' \
--data-urlencode 'ua=Mozilla/5.0 (iPhone; CPU iPhone OS 17_4 like Mac OS X)' \
--data-urlencode 'subid=zone-4471' \
--data-urlencode 'rid=8f2a1c30-6b4e-4d9a-9f11-2c7e3b5a8d40' \
--data-urlencode 'referrer=https://gazette.example.com/markets'
A fill comes back as 200 with one or more ads. No fill is 204 with an empty
body, and it is entirely normal. Expect it on a meaningful share of calls,
especially on narrow geos.
{
"rid": "8f2a1c30-6b4e-4d9a-9f11-2c7e3b5a8d40",
"cur": "USD",
"ads": [
{
"cid": "cr-88213",
"url": "https://t9m6ci.xml.adon3.com/track/click?aid=7c41b0e9-2f8a-4d61-9c33-1ab5e77d0244&url=QzE4YjJhLTQ0NzEtb3BhcXVlLXRhcmdldA&did=26cbfffc-5313-4a6e-901f-556e056034f7&ctx=u77zOyuAFBNzUKZmkr2H7UN4Qxm_Wh8OV31KIkPl2gYgZJrClKtp2-3x",
"price": "0.0142",
"imp_url": "https://t9m6ci.xml.adon3.com/v1/imp/tj24Aw45P7AnbRSKRtYGQH-3mrKBh8VJtdrqd3DJiAxRL610ngFGm3pe"
}
]
}
3. Serve it and fire the notice
Send the visitor to url exactly as we returned it. It carries the auction, the
creative and your subid inside it. Rewriting or truncating it breaks click
attribution and you will not be paid for the click.
Fire imp_url when the ad is actually shown. Impressions do not pay on their
own, but a feed that requests far more ads than it shows gets throttled, so the
notice is what proves your fill is real.
# Fire and forget
curl -sS -m 1 -o /dev/null 'https://t9m6ci.xml.adon3.com/v1/imp/tj24Aw45P7AnbRSKRtYGQH-3mrKBh8VJtdrqd3DJiAxRL610ngFGm3pe'
4. Check your figures
Clicks appear in reporting within a few minutes. Pull the first day once traffic is flowing:
curl -sS 'https://reports.xml.adon3.com/reports/ssp?sspId=ssp-90ab12cd&auth=ak_4d1f77c0e93a&date_from=2026-07-01&date_to=2026-07-01&dims=date,subid'
Watch clicks against billable_clicks. A gap under 5% is ordinary filtering.
A gap above 20% means something upstream is sending traffic we do not count, and
it is worth a conversation before it affects your payout.
Common first-day problems
- Everything returns
204. Check the geo you are sending. Narrow or low-demand countries genuinely have no fill at some hours, so test with US traffic first. 400on every call.uamust be URL-encoded. Raw user agent strings contain characters that break the query string.- Clicks recorded but not billable. You are probably sending the visitor to a
rewritten
url, or firingimp_urlfor ads you never showed. 403on every call. The feed key's supply type does not match what you are sending. Push parameters against alinkkey are rejected outright.
What to read next
Bid Endpoint documents every parameter. Response Formats covers the fields you get back for each of the three supply types.