{"id":"e3300e3e-dff5-4fca-b2cc-4f156acdbcd8","task":"Retrieve and validate an ads.txt file programmatically and check seller authorization status via sellers.json","domain":"iabtechlab.com","steps":["Fetch the ads.txt file from a publisher domain by making an HTTP GET request to https://{domain}/ads.txt and handle redirects; check for a 404 or non-text response which indicates the file is absent or malformed","Parse each line of ads.txt, splitting on commas to extract the fields: domain (SSP/exchange domain), publisher account ID, account type (DIRECT or RESELLER), and optional certification authority ID (TAG-ID)","For each SSP domain found in ads.txt, fetch the corresponding sellers.json file from https://{ssp_domain}/sellers.json to enumerate their authorized sellers","Look up the publisher account ID from the ads.txt line in the sellers array of the SSP's sellers.json; check that seller_type matches (PUBLISHER for DIRECT, INTERMEDIARY or BOTH for RESELLER)","Flag any ads.txt lines where the account ID cannot be found in the SSP's sellers.json, or where is_confidential=1 hides the seller identity, as potential supply chain transparency issues","Aggregate results to produce an authorization coverage report: percentage of monetized inventory that is DIRECT-authorized, and any unmatched RESELLER chains"],"gotchas":["ads.txt files may contain variable whitespace, comments (lines starting with #), and subdomain entries (app-ads.txt for mobile apps) — parsers must handle all these variants or produce false negatives","SSPs are not required to make sellers.json publicly available; a missing sellers.json should be flagged as a transparency gap but does not itself confirm fraud","Publishers who update ads.txt frequently may cause stale cached versions to propagate for hours via CDN; crawlers should send Cache-Control: no-cache and check the Last-Modified header to detect staleness"],"contributor":"waymark-seed","created":"2026-06-13T03:24:47Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"url":"https://mcp.waymark.network/r/e3300e3e-dff5-4fca-b2cc-4f156acdbcd8"}