App Supply Index Monitor my app
iOS · NGL Labs LLC

NGL: ask me anything

Developer URL
https://ngl.link
app-ads.txt
https://ngl.link/app-ads.txt · 200
Checked
Oct 7, 2026
C
62/100

3,113 lines · 2,474 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

122 −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 122)
line 54     smaato.com,1100004890,DIRECT,07bcf65f187117b4
             → observed: the same account is marked DIRECT by 165 different companies  name in sellers.json: Smaato Managed  domain in sellers.json: smaato.com
line 91     apester.com,1105,DIRECT
             → observed: the same account is marked DIRECT by 70 different companies
line 104    adyoulike.com,4d5014f8da11fc0a70ebbda5d4537935,DIRECT
             → observed: sellers.json lists the account as INTERMEDIARY; the same account is marked DIRECT by 71 different companies  name in sellers.json: Axis Marketplace  domain in sellers.json: axis-marketplace.com
line 123    thebrave.io,9840732,DIRECT,c25b2154543746ac
             → observed: sellers.json lists the account as INTERMEDIARY; the same account is marked DIRECT by 61 different companies  name in sellers.json: bidmachine  domain in sellers.json: bidmachine.io
line 126    carbonatix.com,176915265,DIRECT
             → observed: sellers.json lists the account as INTERMEDIARY; the same account is marked DIRECT by 70 different companies  name in sellers.json: Bidmachine  domain in sellers.json: bidmachine.io
line 189    bematterfull.com,92391776902,DIRECT
             → observed: sellers.json lists the account as INTERMEDIARY; the same account is marked DIRECT by 70 different companies  name in sellers.json: Bidmachine  domain in sellers.json: bidmachine.io
line 202    themediagrid.com,SWH94X,DIRECT,35d5010d7789b49d
             → observed: the same account is marked DIRECT by 62 different companies  name in sellers.json: Bidmachine, Inc  domain in sellers.json: bidmachine.io
line 203    iqzone.com,IQ96,DIRECT
             → observed: the same account is marked DIRECT by 59 different companies  name in sellers.json: Appodeal  domain in sellers.json: appodeal.com
line 248    risecodes.com,67ac81ac2c875500018fbbfc,DIRECT,79929e88b2ba73bc
             → observed: sellers.json lists the account as INTERMEDIARY; the same account is marked DIRECT by 74 different companies  name in sellers.json: Bidmachine  domain in sellers.json: bidmachine.io
line 262    opera.com,pub6148735850944,DIRECT,55a0c5fd61378de3
             → observed: sellers.json lists the account as INTERMEDIARY; the same account is marked DIRECT by 62 different companies  name in sellers.json: Bidmachine  domain in sellers.json: bidmachine.io
line 339    themediagrid.com,RVQDTI,DIRECT,35d5010d7789b49d
             → observed: sellers.json lists the account as INTERMEDIARY; the same account is marked DIRECT by 76 different companies  name in sellers.json: ORANGE CLICK MEDIA & COMMERCE LTD  domain in sellers.json: orangeclickmedia.com
line 340    orangeclickmedia.com,C-1021,DIRECT,cd730d2f56b472c4
             → observed: the same account is marked DIRECT by 68 different companies
line 343    markappmedia.site,C-1021,DIRECT,1ddf21e4cc2e32a1
             → observed: the same account is marked DIRECT by 68 different companies  name in sellers.json: pulishertest  domain in sellers.json: test.com
line 345    lijit.com,411915,DIRECT,fafdf38b16bf6b2b
             → observed: sellers.json lists the account as INTERMEDIARY; the same account is marked DIRECT by 69 different companies  name in sellers.json: MARKAPP MEDIA LTD  domain in sellers.json: markappmedia.site
line 361    zmaticoo.com,5135063,DIRECT
             → observed: sellers.json lists the account as INTERMEDIARY; the same account is marked DIRECT by 59 different companies  name in sellers.json: bidmachine  domain in sellers.json: bidmachine.io
line 365    intenze.co,200187,DIRECT
             → observed: the same account is marked DIRECT by 68 different companies  name in sellers.json: bidmachine  domain in sellers.json: bidmachine.io
line 367    adyoulike.com,d56e3e148de35ef3f2fc06a8fe3a5d1a,DIRECT
             → observed: sellers.json lists the account as INTERMEDIARY; the same account is marked DIRECT by 69 different companies  name in sellers.json: Intenze  domain in sellers.json: intenze.co
line 370    snack-media.com,SNM_4352,DIRECT
             → observed: sellers.json lists the account as INTERMEDIARY; the same account is marked DIRECT by 65 different companies  name in sellers.json: intenze  domain in sellers.json: intenze
line 401    lijit.com,563477,DIRECT,fafdf38b16bf6b2b
             → observed: sellers.json lists the account as INTERMEDIARY; the same account is marked DIRECT by 59 different companies  name in sellers.json: BidMachine  domain in sellers.json: bidmachine.io
line 405    selectmedia.asia,6c45ab2c1e3590faff8c2047,DIRECT,e365c871a27c655d
             → observed: sellers.json lists the account as INTERMEDIARY; the same account is marked DIRECT by 68 different companies  name in sellers.json: Blasto  domain in sellers.json: blasto.ai
line 430    onetag.com,61d88450bdb25bc,DIRECT
             → observed: sellers.json lists the account as INTERMEDIARY; the same account is marked DIRECT by 74 different companies  name in sellers.json: Greeter Holdings LTD Adipolo  domain in sellers.json: adipolo.com
line 445    spinx.biz,1373698863,DIRECT
             → observed: the same account is marked DIRECT by 66 different companies  name in sellers.json: PlaySimple (SpinX.io)  domain in sellers.json: playsimple.in
line 449    eyeconicspot.com,4994,DIRECT
             → observed: sellers.json lists the account as INTERMEDIARY; the same account is marked DIRECT by 51 different companies  name in sellers.json: BidMachine Inc  domain in sellers.json: bidmachine.io
line 450    algorix.co,60019,DIRECT
             → observed: sellers.json lists the account as INTERMEDIARY; the same account is marked DIRECT by 65 different companies  name in sellers.json: Appodeal  domain in sellers.json: bidmachine.io
line 460    rtbhouse.com,7VQaL76PBynk7Hu4jror,DIRECT
             → observed: sellers.json lists the account as INTERMEDIARY; the same account is marked DIRECT by 66 different companies  name in sellers.json: Axis Corp LTD  domain in sellers.json: axis-marketplace.com
warning

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

285 −9 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 285)
line 6      applovin.com,c4fc0ffc19eabd936dc9ba86bbbf7d27,DIRECT
             → sellers_json: https://applovin.com/sellers.json
line 52     smaato.com,1100060166,DIRECT,d641df8625486a7b
             → sellers_json: https://smaato.com/sellers.json
line 87     themediagrid.com,RIX2M5,RESELLER,35d5010d7789b49d
             → sellers_json: https://themediagrid.com/sellers.json
line 105    video.unrulymedia.com,579227028,RESELLER,98c21ef9a666c68b
             → sellers_json: https://video.unrulymedia.com/sellers.json
line 128    video.unrulymedia.com,3226865594,RESELLER,98c21ef9a666c68b
             → sellers_json: https://video.unrulymedia.com/sellers.json
line 138    rubiconproject.com,26386,RESELLER,0bfd66d529a55807
             → sellers_json: https://rubiconproject.com/sellers.json
line 153    video.unrulymedia.com,2564526802,RESELLER,98c21ef9a666c68b
             → sellers_json: https://video.unrulymedia.com/sellers.json
line 162    axonix.com,59142,RESELLER,bc385f2b4a87b721
             → sellers_json: https://axonix.com/sellers.json
line 190    video.unrulymedia.com,7418256711870870085,RESELLER,98c21ef9a666c68b
             → sellers_json: https://video.unrulymedia.com/sellers.json
line 201    markappmedia.site,C-1054,RESELLER,1ddf21e4cc2e32a1
             → sellers_json: https://markappmedia.site/sellers.json
line 218    onetag.com,925c32ef718e9fe,RESELLER
             → sellers_json: https://onetag.com/sellers.json
line 220    smaato.com,1100057547,RESELLER,07bcf65f187117b4
             → sellers_json: https://smaato.com/sellers.json
line 231    axonix.com,59183,RESELLER,bc385f2b4a87b721
             → sellers_json: https://axonix.com/sellers.json
line 356    rubiconproject.com,24908,RESELLER,0bfd66d529a55807
             → sellers_json: https://rubiconproject.com/sellers.json
line 379    conversantmedia.com,100972,RESELLER,03113cd04947736d
             → sellers_json: https://conversantmedia.com/sellers.json
line 381    programmaticx.ai,4167543,RESELLER,b42d42eb28400efa
             → sellers_json: https://programmaticx.ai/sellers.json
line 382    conversantmedia.com,100971,RESELLER,03113cd04947736d
             → sellers_json: https://conversantmedia.com/sellers.json
line 392    ignitemediatech.com,pub_61317,RESELLER
             → sellers_json: https://ignitemediatech.com/sellers.json
line 418    pubmatic.com,166270,RESELLER,5d62403b186f2ace
             → sellers_json: https://pubmatic.com/sellers.json
line 434    media.net,8CUV7C5M2,RESELLER,818f58666cabc936
             → sellers_json: https://media.net/sellers.json
line 440    rubiconproject.com,25064,RESELLER,0bfd66d529a55807
             → sellers_json: https://rubiconproject.com/sellers.json
line 475    visiblemeasures.com,1020,RESELLER
             → sellers_json: https://visiblemeasures.com/sellers.json
line 487    pubmatic.com,167086,RESELLER,5d62403b186f2ace
             → sellers_json: https://pubmatic.com/sellers.json
line 499    rubiconproject.com,27322,RESELLER,0bfd66d529a55807
             → sellers_json: https://rubiconproject.com/sellers.json
line 504    rubiconproject.com,166535,DIRECT,0bfd66d529a55807
             → sellers_json: https://rubiconproject.com/sellers.json
warning

Lines for ad system domains that don't resolve

11 −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 (11)
line 390    gamoshi.io,267-b2713,RESELLER,20e30b2ae1f670f2
             → ad_system: gamoshi.io
line 2672   spotxchange.com,307720,RESELLER,7842df1d2fe2db34
             → ad_system: spotxchange.com
line 2685   engagebdr.com,10181,RESELLER
             → ad_system: engagebdr.com
line 2698   engagebdr.com,10423,RESELLER
             → ad_system: engagebdr.com
line 2700   spotxchange.com,234183,RESELLER,7842df1d2fe2db34
             → ad_system: spotxchange.com
line 2724   engagebdr.com,10252,RESELLER
             → ad_system: engagebdr.com
line 2733   spotxchange.com,117872,RESELLER,7842df1d2fe2db34
             → ad_system: spotxchange.com
line 2743   districtm.io,101649,RESELLER,3fd707be9c4527c3
             → ad_system: districtm.io
line 2760   spotxchange.com,225721,RESELLER
             → ad_system: spotxchange.com
line 2765   spotxchange.com,238936,RESELLER,7842df1d2fe2db34
             → ad_system: spotxchange.com
line 2879   ylhglobal.com,1930587443,RESELLER
             → ad_system: ylhglobal.com
info

DIRECT accounts registered to another domain

17 −2 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 (17)
line 46     google.com,pub-9346644608178188,DIRECT,f08c47fec0942fa0
             → domain in sellers.json: tryapplock.com  name in sellers.json: App Lock LLC
line 62     pubnative.net,1017890,DIRECT,d641df8625486a7b
             → domain in sellers.json: nglapp.com  name in sellers.json: NGL Apps
line 71     bidmachine.io,1552,DIRECT
             → domain in sellers.json: nglapp.com  name in sellers.json: NGL App
line 1361   adelement.com,48468,DIRECT
             → domain in sellers.json: joygame.site  name in sellers.json: Digital Melody Games
line 1363   elixirvideo.co,6357,DIRECT
             → domain in sellers.json: grindr.com  name in sellers.json: Grindr LLC
line 1364   elixirvideo.co,6362,DIRECT
             → domain in sellers.json: fanatee.com  name in sellers.json: Fanatee, Inc.
line 1367   pubgrowth.com,50060,DIRECT
             → domain in sellers.json: gamovation.com  name in sellers.json: GamoVation
line 1368   pubgrowth.com,50134,DIRECT
             → domain in sellers.json: grindr.com  name in sellers.json: Grindr LLC
line 1369   pubgrowth.com,50147,DIRECT
             → domain in sellers.json: fanatee.com  name in sellers.json: Fanatee, Inc.
line 1370   revealon.media,18066,DIRECT
             → domain in sellers.json: gamovation.com  name in sellers.json: Gamovation
line 1433   adelement.com,48279,DIRECT
             → domain in sellers.json: skyloftgaming.com  name in sellers.json: Skyloft Yazılım Bilişim ve Anonim Şirketi
line 1435   adelement.com,48477,DIRECT
             → domain in sellers.json: fanatee.com  name in sellers.json: Fanatee, Inc.
line 1485   adelement.com,48419,DIRECT
             → domain in sellers.json: gamovation.com  name in sellers.json: GamoVation
line 1488   elixirvideo.co,6361,DIRECT
             → domain in sellers.json: joygame.site  name in sellers.json: Joygames
line 1496   smrtconnect.com,820263,DIRECT
             → domain in sellers.json: gamovation.com  name in sellers.json: GamoVation
line 1516   adelement.com,48464,DIRECT
             → domain in sellers.json: minepi.com  name in sellers.json: SocialChain
line 1518   elixirvideo.co,6310,DIRECT
             → domain in sellers.json: gamovation.com  name in sellers.json: GamoVation
info

Duplicate lines

148 −1 pts

Harmless but a sign of copy-paste maintenance.

How to fixRemove duplicates; keep one copy of each line.
Evidence (25 of 148)
ad_system: media.net  seller_id: 8cu12aq1y  relationship: RESELLER
ad_system: outbrain.com  seller_id: 0073fa86cff719c752763d2c3ee52c8f00  relationship: RESELLER
ad_system: sharethrough.com  seller_id: bxzzb1br  relationship: RESELLER
ad_system: smartadserver.com  seller_id: 3817  relationship: RESELLER
ad_system: video.unrulymedia.com  seller_id: 169764768  relationship: RESELLER
ad_system: xandr.com  seller_id: 13799  relationship: RESELLER
ad_system: smartadserver.com  seller_id: 3713  relationship: RESELLER
ad_system: video.unrulymedia.com  seller_id: 3948367200  relationship: RESELLER
ad_system: media.net  seller_id: 8cusc3uj7  relationship: RESELLER
ad_system: freewheel.tv  seller_id: 1604590  relationship: RESELLER
ad_system: freewheel.tv  seller_id: 1604595  relationship: RESELLER
ad_system: adform.com  seller_id: 2831  relationship: RESELLER
ad_system: xandr.com  seller_id: 13955  relationship: RESELLER
ad_system: video.unrulymedia.com  seller_id: 829160295  relationship: RESELLER
ad_system: video.unrulymedia.com  seller_id: 579227028  relationship: RESELLER
ad_system: playdigo.com  seller_id: 2041  relationship: RESELLER
ad_system: freewheel.tv  seller_id: 535851-r-524565  relationship: RESELLER
ad_system: smartadserver.com  seller_id: 4456  relationship: RESELLER
ad_system: video.unrulymedia.com  seller_id: 2564526802  relationship: RESELLER
ad_system: video.unrulymedia.com  seller_id: 3855144660485329163  relationship: RESELLER
ad_system: media.net  seller_id: 8cu3vk579  relationship: RESELLER
ad_system: video.unrulymedia.com  seller_id: 2736329702851206590  relationship: RESELLER
ad_system: video.unrulymedia.com  seller_id: 3634565696  relationship: RESELLER
ad_system: themediagrid.com  seller_id: 8zrkbe  relationship: RESELLER
ad_system: xandr.com  seller_id: 15840  relationship: RESELLER
info

Ad systems without a public sellers.json

401

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 401)
line 3      facebook.com,873512375383971,DIRECT,c3e20eee3f780d68
             → sellers_json: HTML or login page instead of JSON
line 4      facebook.com,1057379919911596,DIRECT,c3e20eee3f780d68
             → sellers_json: HTML or login page instead of JSON
line 10     gamaigroup.com,423056,RESELLER
             → sellers_json: HTML or login page instead of JSON
line 14     loopme.com,11303,RESELLER,6c8d5f95897a5a3b
             → sellers_json: HTTP 403
line 15     loopme.com,11424,RESELLER,6c8d5f95897a5a3b
             → sellers_json: HTTP 403
line 18     openx.com,540785403,RESELLER,6a698e2ec38604c6
             → sellers_json: HTTP 403
line 19     openx.com,559798512,RESELLER,6a698e2ec38604c6
             → sellers_json: HTTP 403
line 61     xad.com,241,RESELLER,81cbf0a75a5e0e9a
             → sellers_json: HTTP 403
line 77     appnexus.com,15349,RESELLER,f5ab79cb980f11d1
             → sellers_json: HTTP 403
line 89     freewheel.tv,1604590,RESELLER,74e8e47458f74754
             → sellers_json: HTTP 403
line 90     freewheel.tv,1604595,RESELLER,74e8e47458f74754
             → sellers_json: HTTP 403
line 91     apester.com,1105,DIRECT
             → sellers_json: HTTP 403
line 98     freewheel.tv,535659,RESELLER,74e8e47458f74754
             → sellers_json: HTTP 403
line 111    appnexus.com,16641,RESELLER,f5ab79cb980f11d1
             → sellers_json: HTTP 403
line 131    zetaglobal.net,503,RESELLER
             → sellers_json: HTTP 404
line 136    zetaglobal.net,590,RESELLER
             → sellers_json: HTTP 404
line 137    loopme.com,14009,RESELLER,6c8d5f95897a5a3b
             → sellers_json: HTTP 403
line 139    freewheel.tv,535851-r-524565,RESELLER,74e8e47458f74754
             → sellers_json: HTTP 403
line 151    appnexus.com,3703,RESELLER,f5ab79cb980f11d1
             → sellers_json: HTTP 403
line 152    loopme.com,5679,RESELLER,6c8d5f95897a5a3b
             → sellers_json: HTTP 403
line 163    appnexus.com,16525,RESELLER,f5ab79cb980f11d1
             → sellers_json: HTTP 403
line 169    zetaglobal.net,998,RESELLER
             → sellers_json: HTTP 404
line 176    loopme.com,12858,RESELLER,6c8d5f95897a5a3b
             → sellers_json: HTTP 403
line 181    freewheel.tv,534465,RESELLER,74e8e47458f74754
             → sellers_json: HTTP 403
line 191    loopme.com,11597,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