Rule reference

First payment hop is not in the app's app-ads.txt

openrtb.resolve.app_ads_txt_unauthorizederrorBid request

The app's app-ads.txt does not list the first payment node's asi and sid as DIRECT or RESELLER.

What it means

The cache has app-ads.txt for app.bundle, but no DIRECT or RESELLER row matches the first SupplyChain node with hp not equal to 0.

Why it matters

That hop is the seller the developer authorised. If app-ads.txt does not list it, the app's inventory is being sold by someone the developer did not name.

How to fix it

The developer must add a line `<asi>, <sid>, DIRECT` or `RESELLER` to app-ads.txt, or the chain's first payment node must use an asi/sid pair that is already listed.

Example that trips it

{ "app": { "bundle": "com.example.app" }, "source": { "schain": { "nodes": [{ "asi": "ssp.example", "sid": "99", "hp": 1 }] } } }

Requires --resolve --cache with app-ads/com.example.app/app-ads.txt that does not list ssp.example / 99.

Check your payload

Paste a bid request or response into the tester to see whether this code fires against it, or gate on the id in CI with the CLI: the id is stable, wording is not.

Back to the full diagnostic code reference.