Blog · Supply chain
DecryptAds mapped more than 2,100 AI recipe domains through ads.txt footprints, and the OpenRTB request still looks like food inventory.
On October 20, 2026, AdExchanger published a supply-chain story built on a DecryptAds study released the same week: more than 2,100 AI-generated recipe websites monetized through programmatic ads, many with fabricated author profiles and ads.txt chains that route through sales houses connected to ad tech registered in what the researchers call risky geographies. The headline count is the scale. The programmatic argument is what your bidder actually sees: a site object with a cooking domain, category fields that still read as food content, and no OpenRTB field that says the author photo is synthetic or that the SSP row in ads.txt was copied from a reseller template.
What DecryptAds measured off the bid path
DecryptAds describes its Oct 2026 report as mapping more than 2,100 made-for-advertising recipe sites, many with AI author photos and fake back stories, that authorize Russian and Chinese ad tech through outsourced ads.txt managers. The methodology starts outside OpenRTB: the team monitors roughly 300 ad tech companies it classifies as geo-risk based on ads.txt relationships, then filters publishers for food and cooking keywords, clusters them with programmatic data, and manually confirms AI indicators on at least three pages per site before counting a true positive.
From an initial pool of approximately 400 confirmed AI recipe websites, researchers built more than 190 technical fingerprints in the DecryptAds Feed Builder. Those fingerprints combine ads.txt and app-ads.txt account IDs, page content scans, on-page account IDs, seller names, DNS, WHOIS registrar data, and in-house clustering. The expansion from 400 sites to more than 2,100 MFA domains is footprint matching, not a new impression counter. Analysis ran between July and October 2026.
AdExchanger's Oct 20 coverage adds the programmatic wrinkle buyers feel in Q4 planning: major brand ads appeared on these domains, SSPs named in the study dispute how many sites they actively monetize, and the public files we already crawl for supply-path hygiene are the same files DecryptAds used to pivot. ads.txt and sellers.json are doing the job they were designed for, surfacing relationships. They were never designed to encode content authorship or MFA class on the impression object.
Why the bid request stays clean
OpenRTB gives you inventory identity, placement geometry, regulatory flags, and optional content metadata. It does not carry a boolean for AI-generated prose, a score for author photo authenticity, or a reseller vetting grade. A recipe slop domain that passes ads.txt against a legitimate sales house still arrives with site.domain set to a kitchen-themed hostname, page URLs under food paths, and site.cat or content.cat values that contextual models happily treat as cooking inventory.
That is the blind spot our September post on half a billion AI slop impressions described from the verification side: blocked and post-bid counts can be enormous while the request shape stays spec-valid. DecryptAds adds a supply-chain lens with a different denominator. Instead of counting impressions, it counts domains authorized through shared account IDs and reseller lines, then shows how one ads.txt manager can appear on more than three quarters of the expanded list.
Bid request (simplified): site.domain: "dailytastekitchen.example" site.page: "https://dailytastekitchen.example/chicken-soup" site.cat: ["IAB8"] // food & drink taxonomy source.ext.schain: ... // may be complete imp.bidfloor: 0.42 Not present on the wire: ai_authorship_flag author_image_provenance ads.txt_manager_vetting_tier decryptads_footprint_id
A buyer filter that only runs rtblint-style field validation, or that blocks on stale placement enums, will not see the gap in the block above. Pre-bid MFA lists built from domain reputation lag footprint expansion because operators launch net-new hostnames faster than static blocklists refresh. Post-bid content classifiers can label slop after the fact, but that is a different budget line and a different latency than refusing the request at bid time.
ads.txt pivots versus exchange logs
DecryptAds highlights third-party SSPs and sales houses that manage ads.txt for publishers. That is normal business: many sites outsource monetization setup. The study flags when those managers replicate long partner lists that include geo-risk ad systems across client domains. In the primary report, one Italian sales house name is associated with 1,631 websites, reported as 77.1% of the more than 2,100 sites tracked, grouped by low-density account IDs that likely belong to site owners rather than global platforms.
AdExchanger tested live URLs, noted vendor pushback, and corrected one detail: a summary of partners on a sample site came from the publisher ads.txt file, not the SSP sellers.json row. That distinction matters for your crawl jobs. ads.txt tells you who the publisher authorized. sellers.json tells you how the SSP describes its accounts. A mismatch between them is its own supply-path defect. DecryptAds is arguing that even when both files parse cleanly, the publisher side can still authorize a chain you would not choose if you saw the page creative.
RTBlint is independent and not affiliated with DecryptAds, IAB Tech Lab, or the SSPs named in trade coverage. The linter checks OpenRTB shape and internal consistency. It does not crawl ads.txt at bid time, classify AI prose, or score MFA intent. Treat a green validation as proof the payload is well formed, not proof the domain belongs in your news or CPG allow list.
What buyers can do on the auction hop
Separate domain blocklists from relationship audits. Export wins on food-category open market lines and join site.domain to the latest ads.txt crawl, focusing on reseller lines with account IDs that appear across hundreds of unrelated kitchen hostnames. DecryptAds sells feeds and API access for that pivot; your data team can reproduce a lighter version with public files plus your own win logs if you store seller IDs from schain or exchange extensions.
Split reporting for defended versus undefended lines. If verification blocks slop post-bid on some campaigns but not others, your internal fill metrics will look better on protected spend while raw exchange volume still includes MFA domains. Without that split, procurement reads DecryptAds as a headline threat and ad ops reads green bid validation as proof the pipe is fine. Both can be true.
- Crawl ads.txt for top spending site.domain values weekly; flag account IDs that map to more than N unrelated publishers in your footprint tables.
- Compare site.cat and content keywords on bids to post-bid slop labels where you buy verification; disagreements show where category taxonomies fail before MFA lists do.
- Validate OpenRTB on samples from suspicious clusters (missing currency, impossible schain, device anomalies) even when the domain is new; slop operators still make builder mistakes under volume pressure.
- Ask SSP partners which sales houses manage ads.txt for long-tail food publishers and whether geo-risk partners are contractually excluded from template lines.
- Do not treat sellers.json name matches as proof of active monetization; vendors in the Oct 20 story disputed counts after receiving domain lists.
Why this week matters for Q4 inventory reviews
AI slop is not a single fraud scheme. It is cheap content plus paid traffic plus programmatic monetization, which means the same OpenRTB plumbing that serves legitimate niche blogs also clears when operators rotate domains. DecryptAds framed cybersecurity risk around risky geos and malvertising on at least one analyzed site; AdExchanger quoted researchers who did not allege crimes by named partners. For auction engineers, the actionable thread is unchanged: public supply files reveal relationships faster than bid requests reveal content quality.
If your organization already read the September verification totals, use this study as the domain-expansion companion. Impression counts tell you how much slop ran or was blocked after models scored it. Footprint counts tell you how fast new hostnames enter authorized chains. Budget holders need both denominators before they ask exchanges to fix MFA with another keyword list.
Inspect suspicious bid samples in the RTBlint OpenRTB validator when you change filters or schain rules. Pair that with ads.txt crawls and the supply-chain guides on ads.txt, sellers.json, and schain. A well-formed request is the floor. It is not the ceiling DecryptAds is pointing at.