App Supply Index Monitor my app
Android · Chai Research

Chai: Chat AI Platform

Developer URL
https://chai-research.com/
app-ads.txt
https://chai-research.com/app-ads.txt · 200
Checked
Oct 7, 2026
D
56/100

5,168 lines · 3,591 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

77 −25 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 (25 of 77)
line 3      google.com,pub-7279990999620104,DIRECT,f08c47fec0942fa0
             → observed: the same account is marked DIRECT by 27 different companies
line 68     adbro.me, d4e607f1-06eb-43cb-9d6c-3ff3a7d87dbc, DIRECT
             → observed: the same account is marked DIRECT by 31 different companies  name in sellers.json: BidMachine Inc.  domain in sellers.json: bidmachine.io
line 69     smrtconnect.com, 820297, Direct
             → observed: the same account is marked DIRECT by 3 different companies  name in sellers.json: Easybrain Ltd.  domain in sellers.json: easybrain.com
line 74     captiv.ai, 3071, Direct
             → observed: the same account is marked DIRECT by 3 different companies
line 75     phygitalnow.com, 212082, Direct
             → observed: the same account is marked DIRECT by 3 different companies
line 81     captiv.ai, 3072, Direct
             → observed: the same account is marked DIRECT by 3 different companies
line 82     phygitalnow.com, 212083, Direct
             → observed: the same account is marked DIRECT by 3 different companies
line 85     smrtconnect.com, 820304, Direct
             → observed: the same account is marked DIRECT by 3 different companies  name in sellers.json: Kwalee Ltd  domain in sellers.json: kwalee.com
line 122    rubiconproject.com, 27420, DIRECT, 0bfd66d529a55807
             → observed: the same account is marked DIRECT by 17 different companies  name in sellers.json: JINDOJINDO, LTD.  domain in sellers.json: jindojindo.com
line 148    risecodes.com, 67ac81ac2c875500018fbbfc, DIRECT
             → observed: sellers.json lists the account as INTERMEDIARY; the same account is marked DIRECT by 72 different companies  name in sellers.json: Bidmachine  domain in sellers.json: bidmachine.io
line 263    toponad.com, 16385e313a271a, DIRECT, 1d49fe424a1a456d
             → observed: the same account is marked DIRECT by 96 different companies
line 305    vidoomy.com, 7646534, DIRECT
             → observed: the same account is marked DIRECT by 76 different companies
line 1377   webeyemob.com, 70098, DIRECT
             → observed: sellers.json lists the account as INTERMEDIARY; the same account is marked DIRECT by 75 different companies  name in sellers.json: MINTEGRAL  domain in sellers.json: mintegral.com
line 1705   rubiconproject.com, 15268, DIRECT, 0bfd66d529a55807
             → observed: sellers.json lists the account as INTERMEDIARY; the same account is marked DIRECT by 112 different companies  name in sellers.json: Unruly Group LTD  domain in sellers.json: unrulymedia.com
line 1731   smaato.com, 1100057628, DIRECT, 07bcf65f187117b4
             → observed: the same account is marked DIRECT by 71 different companies
line 1733   smaato.com, 1100004890, DIRECT, 07bcf65f187117b4
             → observed: the same account is marked DIRECT by 160 different companies
line 1783   onetag.com, 82e44d118b79600, DIRECT
             → observed: the same account is marked DIRECT by 77 different companies
line 1787   admatic.com.tr, adm-pub-3033566192, DIRECT, uufps1dh5stc6euk
             → observed: sellers.json lists the account as INTERMEDIARY; the same account is marked DIRECT by 58 different companies  name in sellers.json: opera  domain in sellers.json: opera.com
line 1799   admixer.net, f6790c61-b9ce-49b0-b809-059710d60dfd, DIRECT
             → observed: sellers.json lists the account as INTERMEDIARY; the same account is marked DIRECT by 59 different companies  name in sellers.json: Mintegral  domain in sellers.json: mintegral.com
line 1813   opera.com, pub11079554715136, DIRECT, 55a0c5fd61378de3
             → observed: the same account is marked DIRECT by 60 different companies
line 1823   krushmedia.com, AJxF6R192a9M6CaTvK, DIRECT
             → observed: sellers.json lists the account as INTERMEDIARY; the same account is marked DIRECT by 63 different companies  name in sellers.json: Admixer   domain in sellers.json: admixer.com
line 2321   improvedigital.com, 1234, DIRECT
             → observed: sellers.json lists the account as INTERMEDIARY; the same account is marked DIRECT by 60 different companies  name in sellers.json: Connekt Media Limited  domain in sellers.json: connekt.ai
line 2322   opera.com,pub7507776842240,DIRECT,55a0c5fd61378de3
             → observed: the same account is marked DIRECT by 56 different companies
line 2336   themediagrid.com, FALINO, DIRECT, 35d5010d7789b49d
             → observed: sellers.json lists the account as INTERMEDIARY; the same account is marked DIRECT by 103 different companies  name in sellers.json: Luna Media Group LLC  domain in sellers.json: lunamedia.io
line 3020   teads.tv, 13576, DIRECT, 15a9c44f6d26cbe1
             → observed: sellers.json lists the account as INTERMEDIARY; the same account is marked DIRECT by 65 different companies  name in sellers.json: Premium Publicidade e Marketing Ltda  domain in sellers.json: premiumads.com.br
warning

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

556 −12 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 (25 of 556)
line 3      google.com,pub-7279990999620104,DIRECT,f08c47fec0942fa0
             → sellers_json: https://realtimebidding.google.com/sellers.json
line 50     pubmatic.com, 166270, RESELLER, 5d62403b186f2ace
             → sellers_json: https://pubmatic.com/sellers.json
line 55     themediagrid.com, HIFRLS, RESELLER, 35d5010d7789b49d
             → sellers_json: https://themediagrid.com/sellers.json
line 78     media.net, 8CUXPR2GT, Reseller
             → sellers_json: https://media.net/sellers.json
line 92     themediagrid.com, RIX2M5, RESELLER, 35d5010d7789b49d
             → sellers_json: https://themediagrid.com/sellers.json
line 112    supply.colossusssp.com, 848, RESELLER
             → sellers_json: https://supply.colossusssp.com/sellers.json
line 113    xandr.com, 10490, RESELLER
             → sellers_json: https://xandr.com/sellers.json
line 124    sonobi.com, b812bd55d6, RESELLER, d1a215d9eb5aee9e
             → sellers_json: https://sonobi.com/sellers.json
line 138    onetag.com, 925c32ef718e9fe, RESELLER
             → sellers_json: https://onetag.com/sellers.json
line 166    webeyemob.com, 70107, RESELLER
             → sellers_json: https://www.webeyemob.com/sellers.json
line 173    tubia.com, 40105, RESELLER
             → sellers_json: https://tubia.com/sellers.json
line 263    toponad.com, 16385e313a271a, DIRECT, 1d49fe424a1a456d
             → sellers_json: https://toponad.com/sellers.json
line 269    ignitemediatech.com, 61119, RESELLER
             → sellers_json: https://ignitemediatech.com/sellers.json
line 297    admanmedia.com, 894, RESELLER
             → sellers_json: https://admanmedia.com/sellers.json
line 323    xandr.com, 8804, RESELLER, f5ab79cb980f11d1
             → sellers_json: https://xandr.com/sellers.json
line 329    sonobi.com, 7b37f8ccbc, RESELLER, d1a215d9eb5aee9e
             → sellers_json: https://sonobi.com/sellers.json
line 343    bidmachine.io, 114, RESELLER
             → sellers_json: https://bidmachine.io/sellers.json
line 351    rhebus.works, 3905352096, RESELLER
             → sellers_json: https://rhebus.works/sellers.json
line 363    pubmatic.com, 157558, RESELLER, 5d62403b186f2ace
             → sellers_json: https://pubmatic.com/sellers.json
line 365    pubmatic.com, 158362, RESELLER, 5d62403b186f2ace
             → sellers_json: https://pubmatic.com/sellers.json
line 367    pubmatic.com, 156855, RESELLER, 5d62403b186f2ace
             → sellers_json: https://pubmatic.com/sellers.json
line 375    rubiconproject.com, 23822, RESELLER, 0bfd66d529a55807
             → sellers_json: https://rubiconproject.com/sellers.json
line 379    opera.com, pub5881703796480, RESELLER, 55a0c5fd61378de3
             → sellers_json: https://opera.com/sellers.json
line 383    yeahmobi.com, 5135315, RESELLER
             → sellers_json: https://yeahmobi.com/sellers.json
line 413    mediafuse.com, 316569, RESELLER
             → sellers_json: https://mediafuse.com/sellers.json
warning

Lines for ad system domains that don't resolve

15 −1 pts

These ad system domains don't resolve (the domain may be retired, merged or misspelled). The lines can't be validated, and if the domain is registered again, its new holder would appear authorized.

How to fixRemove these lines. If the domain is registered again, its new holder would appear authorized by your file.
Evidence (15)
line 615    engagebdr.com, 10181, RESELLER
             → ad_system: engagebdr.com
line 651    engagebdr.com, 10423, RESELLER
             → ad_system: engagebdr.com
line 733    engagebdr.com, 10252, RESELLER
             → ad_system: engagebdr.com
line 781    districtm.io, 101649, RESELLER, 3fd707be9c4527c3
             → ad_system: districtm.io
line 1371   ylhglobal.com, 1930587443, RESELLER
             → ad_system: ylhglobal.com
line 3771   gamoshi.io, 267-b3609, RESELLER, 20e30b2ae1f670f2
             → ad_system: gamoshi.io
line 4465   engagebdr.com, 16, RESELLER
             → ad_system: engagebdr.com
line 4563   gamoshi.io, 267-b3609, RESELLER, 20e30b2ae1f670f2
             → ad_system: gamoshi.io
line 4667   engagebdr.com, 16, RESELLER
             → ad_system: engagebdr.com
line 4729   engagebdr.com, 10252, RESELLER
             → ad_system: engagebdr.com
line 4755   dmixer.co.kr, 1610, RESELLER
             → ad_system: dmixer.co.kr
line 4803   engagebdr.com, 84, RESELLER
             → ad_system: engagebdr.com
line 4838   engagebdr.com, 10294, RESELLER
             → ad_system: engagebdr.com
line 4860   engagebdr.com, 7, RESELLER
             → ad_system: engagebdr.com
line 5586   intenziq.co, 200164 , RESELLER
             → ad_system: intenziq.co
warning

Malformed lines

3 −1 pts

Lines that buyers' crawlers will ignore.

How to fixFix the format: <ad system domain>, <seller id>, DIRECT|RESELLER[, <cert authority id>].
Evidence (3)
line 1721   singularads, 548745, RESELLER
             → reason: invalid ad system domain
line 4895   uis.mobfox.com, 2310, RESELLER 5529a3d1f59865be
             → reason: relationship must be DIRECT or RESELLER, got 'RESELLER 5529a3d1f59865be'
line 4898   uis.mobfox.com, 2310, RESELLER 5529a3d1f59865be
             → reason: relationship must be DIRECT or RESELLER, got 'RESELLER 5529a3d1f59865be'
info

Duplicate lines

1,049 −4 pts

Harmless but a sign of copy-paste maintenance.

How to fixRemove duplicates; keep one copy of each line.
Evidence (25 of 1,049)
ad_system: adelement.com  seller_id: 101  relationship: RESELLER
ad_system: conversantmedia.com  seller_id: 100457  relationship: RESELLER
ad_system: criteo.com  seller_id: b-057601  relationship: RESELLER
ad_system: e-planning.net  seller_id: 864690bcd16cd011  relationship: RESELLER
ad_system: loopme.com  seller_id: 11347  relationship: RESELLER
ad_system: onairglobal.com  seller_id: 4357629  relationship: RESELLER
ad_system: openx.com  seller_id: 540396775  relationship: RESELLER
ad_system: prequel.tv  seller_id: 514  relationship: RESELLER
ad_system: pubmatic.com  seller_id: 157800  relationship: RESELLER
ad_system: pubnative.net  seller_id: 1003601  relationship: RESELLER
ad_system: pubnative.net  seller_id: 1007063  relationship: RESELLER
ad_system: rhebus.works  seller_id: 4962256775  relationship: RESELLER
ad_system: rubiconproject.com  seller_id: 18364  relationship: RESELLER
ad_system: saharmedia.net  seller_id: 1683858  relationship: RESELLER
ad_system: silvermob.com  seller_id: 419  relationship: RESELLER
ad_system: smartadserver.com  seller_id: 4456  relationship: RESELLER
ad_system: thebrave.io  seller_id: 9840732  relationship: RESELLER
ad_system: themediagrid.com  seller_id: swh94x  relationship: RESELLER
ad_system: triplelift.com  seller_id: 10223  relationship: RESELLER
ad_system: spinx.biz  seller_id: 1373698863  relationship: RESELLER
ad_system: video.unrulymedia.com  seller_id: 3634565696  relationship: RESELLER
ad_system: xandr.com  seller_id: 13293  relationship: RESELLER
ad_system: improvedigital.com  seller_id: 2371  relationship: RESELLER
ad_system: iion.io  seller_id: 10162  relationship: RESELLER
ad_system: videoheroes.tv  seller_id: 212450  relationship: RESELLER
info

DIRECT accounts registered to another domain

5 −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 (5)
line 209    applovin.com, 6f27ee6cc4c292bf82c09998f5b3d178, DIRECT
             → domain in sellers.json: chai.ml  name in sellers.json: Chai Research Corp
line 2099   ironsrc.com, 259911, Direct
             → domain in sellers.json: chai.ml  name in sellers.json: PLAYMAP LIMITED
line 2444   unity.com, 4412329, DIRECT, 96cabb5fbdde37a7
             → domain in sellers.json: chai.ml  name in sellers.json: chaiapp
line 6354   algorix.co, 260877, DIRECT,5b394c12fea27a1d
             → domain in sellers.json: sayloai.com  name in sellers.json: X Original
line 6470   bluexad.ai, 1987806693131554816, DIRECT
             → domain in sellers.json: polybuzz.ai  name in sellers.json: polybuzz
info

Ad systems without a public sellers.json

1,040

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 1,040)
line 15     criteo.com,B-057601,RESELLER,9fac4a4a87c2a44f
             → sellers_json: HTTP 403 to automated requests
line 20     loopme.com,11347,RESELLER,6c8d5f95897a5a3b
             → sellers_json: HTTP 403 to automated requests
line 22     openx.com,540396775,RESELLER,6a698e2ec38604c6
             → sellers_json: HTTP 403 to automated requests
line 25     pubnative.net,1003601,RESELLER,d641df8625486a7b
             → sellers_json: HTTP 403 to automated requests
line 26     pubnative.net,1007063,RESELLER,d641df8625486a7b
             → sellers_json: HTTP 403 to automated requests
line 27     pubnative.net,1007563,RESELLER,d641df8625486a7b
             → sellers_json: HTTP 403 to automated requests
line 32     smartadserver.com,4456,RESELLER,060d053dcf45cbf3
             → sellers_json: HTTP 404
line 45     appnexus.com, 15349, RESELLER, f5ab79cb980f11d1
             → sellers_json: HTTP 403 to automated requests
line 57     appnexus.com, 7582, RESELLER, f5ab79cb980f11d1
             → sellers_json: HTTP 403 to automated requests
line 58     freewheel.tv, 1608199, RESELLER
             → sellers_json: HTTP 403 to automated requests
line 59     freewheel.tv, 1608200, RESELLER
             → sellers_json: HTTP 403 to automated requests
line 66     openx.com, 558899373, RESELLER, 6a698e2ec38604c6
             → sellers_json: HTTP 403 to automated requests
line 67     smartadserver.com, 3554, RESELLER
             → sellers_json: HTTP 404
line 75     phygitalnow.com, 212082, Direct
             → sellers_json: returns a web page, not a sellers.json file
line 82     phygitalnow.com, 212083, Direct
             → sellers_json: returns a web page, not a sellers.json file
line 94     freewheel.tv, 1604590, RESELLER
             → sellers_json: HTTP 403 to automated requests
line 95     freewheel.tv, 1604595, RESELLER
             → sellers_json: HTTP 403 to automated requests
line 102    aidentity.ai, 05bfbdf84b, RESELLER
             → sellers_json: HTTP 404
line 106    pubnative.net, 1009966, RESELLER, d641df8625486a7b
             → sellers_json: HTTP 403 to automated requests
line 108    openx.com, 561593493, RESELLER, 6a698e2ec38604c6
             → sellers_json: HTTP 403 to automated requests
line 111    aidentity.ai, 8847a2695c, RESELLER
             → sellers_json: HTTP 404
line 129    freewheel.tv, 1522514, RESELLER
             → sellers_json: HTTP 403 to automated requests
line 136    freewheel.tv, 1608050, RESELLER
             → sellers_json: HTTP 403 to automated requests
line 137    freewheel.tv, 1608057, RESELLER
             → sellers_json: HTTP 403 to automated requests
line 139    smaato.com, 1100057547, RESELLER, 07bcf65f187117b4
             → sellers_json: HTTP 403 to automated requests

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