App Supply Index Monitor my app
Android · Ookla

Speedtest by Ookla

Developer URL
https://www.speedtest.net/
app-ads.txt
https://www.speedtest.net/app-ads.txt · 200
Checked
Oct 7, 2026
A
92/100

277 lines · 217 verified against sellers.json

Findings

Each finding lists the exact lines involved. Findings are automated observations of public files as of Oct 7, 2026. They describe file contents, not the intent or conduct of any company.

warning

DIRECT lines inconsistent with public data

6 −4 pts

The ads.txt specification defines DIRECT as an account the publisher directly controls. For these lines, either the ad system's own sellers.json lists the account as INTERMEDIARY, or the same account is marked DIRECT in the files of 3 or more unrelated companies. Either way, the public data does not support the DIRECT label. Buyers that use DIRECT labels in supply-path decisions may treat these lines differently.

How to fixUse DIRECT only for accounts your company controls. Confirm with each partner whether the account is yours; if it isn't, the specification calls for RESELLER.
Evidence (6)
line 6      pubmatic.com, 159349, DIRECT, 5d62403b186f2ace
             → observed: sellers.json lists the account as INTERMEDIARY  name in sellers.json: Ookla, LLC (via EB)  domain in sellers.json: google.com
line 59     sharethrough.com, zBDOrtmh, DIRECT, d53b998a7bd4ecd2
             → observed: sellers.json lists the account as INTERMEDIARY  name in sellers.json: Ookla - OB  domain in sellers.json: google.com
line 109    media.net, 8CUS8BS1R, DIRECT
             → observed: sellers.json lists the account as INTERMEDIARY  name in sellers.json: Ookla, LLC (via OB)  domain in sellers.json: google.com
line 131    video.unrulymedia.com, 2070966140, DIRECT
             → observed: sellers.json lists the account as INTERMEDIARY  name in sellers.json: Google - Ookla, LLC  domain in sellers.json: google.com
line 200    triplelift.com, 12458-EB, DIRECT, 6c33edb13117fd86
             → observed: sellers.json lists the account as INTERMEDIARY  name in sellers.json: Ookla, LLC (via Google EB) (via EB Network)  domain in sellers.json: google.com
line 204    onetag.com, 7e0bf488ee44332-OB, DIRECT
             → observed: sellers.json lists the account as INTERMEDIARY  name in sellers.json: Ookla-OB  domain in sellers.json: google.com
warning

Seller IDs not listed in the ad system's sellers.json

9 −3 pts

The ad system's current sellers.json doesn't list these accounts, so buyers that validate the chain can't match them. Common causes are closed accounts or former partners.

How to fixAsk each partner whether the account is still active and request their current lines; remove lines for closed accounts.
Evidence (9)
line 63     pubmatic.com, 158723, RESELLER, 5d62403b186f2ace
             → sellers_json: https://pubmatic.com/sellers.json
line 69     smartadserver.com, 4012, RESELLER, 060d053dcf45cbf3
             → sellers_json: https://smartadserver.com/sellers.json
line 98     zmaticoo.com, 113149, RESELLER
             → sellers_json: https://zmaticoo.com/sellers.json
line 113    media.net, 8CU32TAB6, DIRECT
             → sellers_json: https://media.net/sellers.json
line 114    sonobi.com, 83729e979b, RESELLER, d1a215d9eb5aee9e
             → sellers_json: https://sonobi.com/sellers.json
line 223    thunder-monetize.com, 9630185716, RESELLER
             → sellers_json: https://thunder-monetize.com/sellers.json
line 264    video.unrulymedia.com, 311396600, RESELLER
             → sellers_json: https://video.unrulymedia.com/sellers.json
line 268    adform.com, 3305, RESELLER, 9f5210a2f0999e32
             → sellers_json: https://adform.com/sellers.json
line 290    themediagrid.com,uot45z,RESELLER,35d5010d7789b49d
             → sellers_json: https://themediagrid.com/sellers.json
info

DIRECT accounts registered to another domain

1 −1 pts

Allowed when the domain belongs to the same company; add OWNERDOMAIN to make that explicit. Otherwise these accounts may belong to someone else.

How to fixIf the account is yours under another domain, declare it with OWNERDOMAIN=<that domain>; otherwise mark it RESELLER.
Evidence (1)
line 42     google.com, pub-9914992914910847, DIRECT, f08c47fec0942fa0
             → domain in sellers.json: ziffdavis.com  name in sellers.json: Ziff Davis
info

Ad systems without a public sellers.json

41

The ad system doesn't publish a readable sellers.json, so nobody can verify these lines. That's the ad system's gap, not the app's, so no points are deducted.

How to fixAsk the partner to publish sellers.json; until then buyers can't verify that path.
Evidence (25 of 41)
line 22     freewheel.tv, 539813-r-524565, RESELLER
             → sellers_json: HTTP 403
line 23     freewheel.tv, 539813-r-523319, RESELLER
             → sellers_json: HTTP 403
line 28     loopme.com, 2896, RESELLER, 6c8d5f95897a5a3b
             → sellers_json: HTTP 403
line 32     xad.com, 241, RESELLER, 81cbf0a75a5e0e9a
             → sellers_json: HTTP 403
line 50     openx.com, 539079344, DIRECT, 6a698e2ec38604c6
             → sellers_json: HTTP 403
line 51     openx.com, 539074089, DIRECT, 6a698e2ec38604c6
             → sellers_json: HTTP 403
line 52     openx.com, 539164681, DIRECT, 6a698e2ec38604c6
             → sellers_json: HTTP 403
line 53     openx.com, 564202639, DIRECT, 6a698e2ec38604c6
             → sellers_json: HTTP 403
line 60     appnexus.com, 1908, RESELLER, f5ab79cb980f11d1
             → sellers_json: HTTP 403
line 65     openx.com, 540274407, RESELLER, 6a698e2ec38604c6
             → sellers_json: HTTP 403
line 80     liftoff.io, 1014, DIRECT
             → sellers_json: HTTP 403
line 95     loopme.com, 9724, RESELLER, 6c8d5f95897a5a3b
             → sellers_json: HTTP 403
line 96     loopme.com, 15665, RESELLER, 6c8d5f95897a5a3b
             → sellers_json: HTTP 403
line 104    openx.com, 540298543, RESELLER, 6a698e2ec38604c6
             → sellers_json: HTTP 403
line 105    criteo.com, B-057955, RESELLER, 9fac4a4a87c2a44f
             → sellers_json: HTTP 403
line 116    rhythmone.com, 3611299104, RESELLER, a670c89d4a324e47
             → sellers_json: HTTP 403
line 122    appnexus.com, 18062, DIRECT, f5ab79cb980f11d1
             → sellers_json: HTTP 403
line 128    rhythmone.com, 354209516, DIRECT, a670c89d4a324e47
             → sellers_json: HTTP 403
line 129    rhythmone.com, 2070966140, DIRECT, a670c89d4a324e47
             → sellers_json: HTTP 403
line 134    appnexus.com, 6849, RESELLER, f5ab79cb980f11d1
             → sellers_json: HTTP 403
line 137    xad.com, 963, RESELLER, 81cbf0a75a5e0e9a
             → sellers_json: HTTP 403
line 138    loopme.com, 9718, RESELLER, 6c8d5f95897a5a3b
             → sellers_json: HTTP 403
line 139    openx.com, 543878511, RESELLER, 6a698e2ec38604c6
             → sellers_json: HTTP 403
line 151    loopme.com,11227,RESELLER,6c8d5f95897a5a3b
             → sellers_json: HTTP 403
line 181    loopme.com, 11322, RESELLER, 6c8d5f95897a5a3b
             → sellers_json: HTTP 403

Is this your app?

Get the full evidence list, a cleaned app-ads.txt, and alerts when partners' accounts change. Think something here is wrong? Request a correction.

Monitor this app