Monthly benchmark
Supply-chain benchmark, October 2026
Data as of · 1,061,304 live apps · numbers as JSON
Of the apps whose developer website gave us a clear answer, 41.8% served a valid app-ads.txt: 34.6% on the App Store and 91.3% on Google Play.
- Live apps tracked
- 1.06M
- Serve a valid app-ads.txt
- 41.8%
- Ad systems ranked
- 15
- Delisted, file still live
- —
App Store and Google Play
137,997 of 330,255 with a clear answer
across 27,432 app-ads.txt files
Not enough data yet (fewer than 30 delisted apps)
Who publishes an app-ads.txt
A clear answer means the developer's website returned a valid file, a 404, or something that is not an app-ads.txt (an HTML page, an empty file). Websites we could not reach or that turned our crawler away are left out: that failure is on our side, not the publisher's. Apps without a website in their store listing are counted in the first column only. The 64,239 apps whose store listing says they contain no ads are left out of every share: an app-ads.txt is not expected of them.
| Store | Live apps | Clear answer | Valid app-ads.txt | Apps that show ads |
|---|---|---|---|---|
| App Store | 955,407 | 288,551 |
34.6%
|
88.3% |
| Google Play | 105,897 | 41,704 |
91.3%
|
91.3% |
| Both stores | 1,061,304 | 330,255 |
41.8%
|
91.1% |
By category
The 10 largest categories of each store by number of tracked apps, with the share of clear answers that found a valid file. Store category names are kept as each store writes them.
App Store
- Games 109,922 80.6%
- Education 96,763 32.5%
- Utilities 86,917 32.8%
- Business 86,187 8.0%
- Lifestyle 77,735 23.7%
- Health & Fitness 68,041 17.5%
- Productivity 57,857 25.0%
- Food & Drink 55,046 8.4%
- Finance 42,523 18.9%
- Shopping 36,549 11.1%
Google Play
- Puzzle 5,412 95.5%
- Tools 3,515 93.8%
- Casual 3,443 94.8%
- Education 2,865 88.0%
- Music & Audio 2,339 88.4%
- Simulation 2,166 94.7%
- Entertainment 2,077 87.3%
- Personalization 1,768 91.5%
- Books & Reference 1,726 93.2%
- Action 1,375 93.2%
The most declared ad systems
Share of the 27,432 current app-ads.txt files (each linked to at least one live app) that name the ad system, on 6 October 2026. A file can name a system both ways, so DIRECT and RESELLER do not add up. Changes are in percentage points since 3 October 2026, the first day on record, measured on the same 5,803 files we had on both days. Files we found since then are left out of the change, so it shows what publishers changed, not how much our coverage grew.
| # | Ad system | Files | DIRECT | RESELLER | Change |
|---|---|---|---|---|---|
| 1 | google.com | 93.7%25,704 | 92.2% | 27.8% | D ±0.00 pp R ±0.00 pp |
| 2 | pubmatic.com | 32.9%9,031 | 13.7% | 32.5% | D ±0.00 pp R +0.02 pp |
| 3 | rubiconproject.com | 32.8%9,005 | 16.8% | 32.5% | D ±0.00 pp R ±0.00 pp |
| 4 | openx.com | 32.0%8,771 | 11.4% | 31.6% | D +0.03 pp R ±0.00 pp |
| 5 | video.unrulymedia.com | 31.1%8,523 | 10.3% | 30.7% | D ±0.00 pp R ±0.00 pp |
| 6 | appnexus.com | 30.9%8,485 | 7.5% | 30.8% | D ±0.00 pp R ±0.00 pp |
| 7 | smartadserver.com | 30.5%8,369 | 6.6% | 30.4% | D −0.02 pp R ±0.00 pp |
| 8was 10 | pubnative.net | 30.1%8,255 | 7.6% | 30.1% | D −0.02 pp R ±0.00 pp |
| 9was 8 | loopme.com | 29.9%8,195 | 5.9% | 29.9% | D ±0.00 pp R ±0.00 pp |
| 10was 12 | xandr.com | 29.7%8,150 | 2.8% | 29.5% | D ±0.00 pp R ±0.00 pp |
| 11was 9 | improvedigital.com | 29.4%8,073 | 8.2% | 29.4% | D ±0.00 pp R ±0.00 pp |
| 12was 11 | indexexchange.com | 29.2%8,012 | 9.3% | 28.6% | D +0.02 pp R ±0.00 pp |
| 13was 26 | facebook.com | 29.1%7,976 | 22.9% | 12.5% | D ±0.00 pp R +0.03 pp |
| 14was 13 | contextweb.com | 28.7%7,883 | 2.2% | 28.7% | D ±0.00 pp R ±0.00 pp |
| 15was 14 | sharethrough.com | 28.6%7,852 | 8.7% | 28.5% | D −0.03 pp R ±0.00 pp |
sellers.json of the big networks
For each network above: how many sellers its own sellers.json lists, and how many of the app-ads.txt lines naming it point to an account that file does not list. A missing account is usually an old line or one copied from a template; for a buyer it is a dead end, because the chain cannot be checked past it.
| Ad system | Sellers listed | Removed, 30 days | Lines checked | Account not listed | Type mismatch |
|---|---|---|---|---|---|
| google.com fetched 6 Oct | 956,298 | 26,199 | 281,205 | 41.4% 15,562 accounts | 7.0% |
| pubmatic.com fetched 6 Oct | 6,485 | 2 | 1,262,263 | 10.5% 919 accounts | 3.1% |
| rubiconproject.com fetched 6 Oct | 3,231 | 6 | 882,760 | 19.3% 671 accounts | 2.5% |
| openx.com fetched 6 Oct | 7,818 | 0 | 399,105 | 15.6% 487 accounts | 5.2% |
| video.unrulymedia.com fetched 6 Oct | 1,587 | 0 | 589,035 | 24.5% 743 accounts | 1.1% |
| appnexus.com fetched 6 Oct | 1,492 | 5 | 536,254 | 35.2% 470 accounts | 1.9% |
| smartadserver.com fetched 5 Oct | 2,709 | 1 | 476,345 | 12.2% 402 accounts | 2.0% |
| pubnative.net fetched 6 Oct | 2,861 | 0 | 272,732 | 3.4% 103 accounts | 5.8% |
| loopme.com fetched 5 Oct | 8,141 | 0 | 269,496 | 24.5% 236 accounts | 3.3% |
| xandr.com fetched 6 Oct | 1,492 | 5 | 178,858 | 28.2% 119 accounts | 2.1% |
| improvedigital.com fetched 6 Oct | 18,911 | 99 | 420,798 | 9.1% 317 accounts | 1.0% |
| indexexchange.com fetched 6 Oct | 4,058 | 1 | 183,332 | 67.0% 639 accounts | 1.2% |
| facebook.com sellers.json is not valid JSON | 0 | 0 | 0 | not checked | — |
| contextweb.com fetched 6 Oct | 40 | 0 | 282,005 | sellers.json incomplete lists fewer sellers than the accounts declared for it | — |
| sharethrough.com fetched 6 Oct | 5,211 | 1 | 393,673 | 1.1% 69 accounts | 4.3% |
Type mismatch: a DIRECT line on an account the network lists as an intermediary, or a RESELLER line on a publisher account. "sellers.json incomplete": the file lists fewer sellers than the distinct accounts publishers declare for that network and it does not list, so it cannot tell a stale line from an unpublished seller; we compute no share for it.
Delisted apps that still authorise sellers
Not enough data yet. An app-ads.txt belongs to the developer's website, not to one app, so it usually outlives a delisted app and keeps naming the same sellers. We publish this figure once at least 30 apps have been seen leaving their store; this edition has fewer.
How these numbers were made
- Scope: the apps Stoqlab tracks, not every app in the stores. Big and ad-supported apps are tracked more completely than the long tail.
- Each app counts once, through the app-ads.txt of the website in its store listing. One file can cover hundreds of apps of the same developer.
- Every figure is a count of declarations. It says nothing about impressions, bids or spend.
- A share is published only when at least 30 apps, files or lines are behind it; below that the page says "not enough data".
- Changes compare the same files on both days. Apps whose store listing says they contain no ads are not counted in adoption shares.
- No publisher is named. Networks appear only when they are among the most declared, and every network figure comes from that network's own public sellers.json.
- Files and sellers.json are re-read on the schedule described in our methodology; this edition was computed on 6 October 2026.