App Supply Index Monitor my app
iOS · JUPITER PALACE PTE. LTD.

PhotoGrid: Video Collage Maker

Developer URL
https://www.photogrid.app/
app-ads.txt
https://photogrid.app/app-ads.txt · 200
Checked
Oct 7, 2026
D
58/100

227 lines · 148 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

7 −20 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 (7)
line 26     opera.com,pub3901708870976,DIRECT,55a0c5fd61378de3
             → observed: the same account is marked DIRECT by 3 different companies
line 53     appnexus.com, 9538, DIRECT
             → observed: the same account is marked DIRECT by 15 different companies
line 54     decenterads.com, 933, DIRECT
             → observed: the same account is marked DIRECT by 3 different companies  name in sellers.json: OZION TECH PTE. LTD.  domain in sellers.json: oziontech.com
line 56     onetag.com, 694e68b73971b58, DIRECT
             → observed: sellers.json lists the account as INTERMEDIARY; the same account is marked DIRECT by 5 different companies  name in sellers.json: NoBid, Inc.  domain in sellers.json: nobid.io
line 57     pubmatic.com, 160058, DIRECT, 5d62403b186f2ace
             → observed: sellers.json lists the account as INTERMEDIARY  name in sellers.json: agenticX  domain in sellers.json: theagenticx.ai
line 103    adsyield.com, 1233, DIRECT
             → observed: sellers.json lists the account as INTERMEDIARY; the same account is marked DIRECT by 25 different companies  name in sellers.json: Unity  domain in sellers.json: unity.com
line 149    onetag.com, 7d9af0b85b5070e, DIRECT
             → observed: sellers.json lists the account as INTERMEDIARY; the same account is marked DIRECT by 38 different companies  name in sellers.json: AdsYield Inc  domain in sellers.json: adsyield.com
warning

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

27 −15 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 27)
line 23     google.com, pub-2903397595749869, DIRECT, f08c47fec0942fa0
             → sellers_json: https://realtimebidding.google.com/sellers.json
line 26     opera.com,pub3901708870976,DIRECT,55a0c5fd61378de3
             → sellers_json: https://opera.com/sellers.json
line 28     video.unrulymedia.com, 123476257, RESELLER
             → sellers_json: https://video.unrulymedia.com/sellers.json
line 34     adiiix.com, par-E2B2397A8474E877F726D67AD4E674A3, RESELLER
             → sellers_json: https://adiiix.com/sellers.json
line 38     onetag.com, 66cff8e37d871be, RESELLER
             → sellers_json: https://onetag.com/sellers.json
line 39     smaato.com, 1100042823, RESELLER, 07bcf65f187117b4
             → sellers_json: https://smaato.com/sellers.json
line 44     App-stock.com,312517,RESELLER
             → sellers_json: https://app-stock.com/sellers.json
line 51     beachfront.com, 13950, RESELLER, e2541279e8e2ca4d
             → sellers_json: https://beachfront.com/sellers.json
line 55     nobid.io, 22142182673, DIRECT
             → sellers_json: https://nobid.io/sellers.json
line 76     rubiconproject.com, 21526, RESELLER, 0bfd66d529a55807
             → sellers_json: https://rubiconproject.com/sellers.json
line 87     kidoz.net, 19692013, RESELLER
             → sellers_json: https://kidoz.net/sellers.json
line 94     video.unrulymedia.com, 3630748062, RESELLER, a670c89d4a324e47
             → sellers_json: https://video.unrulymedia.com/sellers.json
line 95     google.com, pub-1860788115860017, RESELLER
             → sellers_json: https://realtimebidding.google.com/sellers.json
line 96     telaria.com, rwd19-1623367, RESELLER, 1a4e959a1b50034a
             → sellers_json: https://www.telaria.com/sellers.json
line 97     tremorhub.com, rwd19-1623367, RESELLER, 1a4e959a1b50034a
             → sellers_json: https://tremorhub.com/sellers.json
line 104    adview.com, 48045325, RESELLER, 1b2cc038a11ea319
             → sellers_json: https://adview.com/sellers.json
line 118    bidease.com, exchange-20, RESELLER
             → sellers_json: https://bidease.com/sellers.json
line 119    bidmachine.io, 114, RESELLER
             → sellers_json: https://bidmachine.io/sellers.json
line 131    google.com, pub-1860788115860017, RESELLER, f08c47fec0942fa0
             → sellers_json: https://realtimebidding.google.com/sellers.json
line 132    improvedigital.com, 1604, RESELLER
             → sellers_json: https://improvedigital.com/sellers.json
line 171    pubmatic.com, 161853, RESELLER, 5d62403b186f2ace
             → sellers_json: https://pubmatic.com/sellers.json
line 173    pubmatic.com, 162239, RESELLER, 5d62403b186f2ace
             → sellers_json: https://pubmatic.com/sellers.json
line 186    rubiconproject.com, 14334, RESELLER, 0bfd66d529a55807
             → sellers_json: https://rubiconproject.com/sellers.json
line 191    rubiconproject.com, 20086, RESELLER, 0bfd66d529a55807
             → sellers_json: https://rubiconproject.com/sellers.json
line 200    thebrave.io, 1234594, RESELLER, c25b2154543746ac
             → sellers_json: https://thebrave.io/sellers.json
warning

Lines for ad system domains that don't resolve

6 −3 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 (6)
line 59     engagebdr.com, 10356, RESELLER
             → ad_system: engagebdr.com
line 70     spotxchange.com, 117872, RESELLER, 7842df1d2fe2db34
             → ad_system: spotxchange.com
line 78     reforge.in, 107, RESELLER
             → ad_system: reforge.in
line 183    reforge.in, 353, RESELLER
             → ad_system: reforge.in
line 198    spotxchange.com, 149886, RESELLER, 7842df1d2fe2db34
             → ad_system: spotxchange.com
line 199    spotxchange.com, 71426, RESELLER, 7842df1d2fe2db34
             → ad_system: spotxchange.com
info

No OWNERDOMAIN declared

1 −2 pts

app-ads.txt 1.1 recommends OWNERDOMAIN so buyers can match DIRECT accounts to the owner.

How to fixAdd OWNERDOMAIN=<your company domain> to the file.
info

Duplicate lines

6 −1 pts

Harmless but a sign of copy-paste maintenance.

How to fixRemove duplicates; keep one copy of each line.
Evidence (6)
ad_system: appnexus.com  seller_id: 7353  relationship: RESELLER
ad_system: xandr.com  seller_id: 7353  relationship: RESELLER
ad_system: algorix.co  seller_id: 54616  relationship: RESELLER
ad_system: lemmatechnologies.com  seller_id: 362  relationship: RESELLER
ad_system: google.com  seller_id: pub-1860788115860017  relationship: RESELLER
ad_system: pubmatic.com  seller_id: 162882  relationship: RESELLER
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 60     unity.com, 1623367, DIRECT, 96cabb5fbdde37a7
             → domain in sellers.json: itinycell.com  name in sellers.json: JoyTap Games
info

Ad systems without a public sellers.json

43

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 43)
line 1      openx.com, 559798512, RESELLER, 6a698e2ec38604c6
             → sellers_json: HTTP 403
line 5      gamaigroup.com, 423056, RESELLER
             → sellers_json: HTML or login page instead of JSON
line 6      loopme.com, 11424, RESELLER, 6c8d5f95897a5a3b
             → sellers_json: HTTP 403
line 8      openx.com, 540785403, RESELLER, 6a698e2ec38604c6
             → sellers_json: HTTP 403
line 24     mopub.com, [ee988f781b9b45ccaa3bccb3b11d497c], DIRECT, 74b46c0ea83967ca
             → sellers_json: HTML or login page instead of JSON
line 25     medialink-x.com, 213, Direct
             → sellers_json: HTML or login page instead of JSON
line 29     rhythmone.com, 123476257, RESELLER, a670c89d4a324e47
             → sellers_json: HTTP 403
line 31     openx.com, 540421297, RESELLER, 6a698e2ec38604c6
             → sellers_json: HTTP 403
line 35     aol.com, 58935, RESELLER, e1a5b5b6e3255540
             → sellers_json: HTTP 404
line 41     adcolony.com, 496220845654deec, RESELLER, 1ad675c9de6b5176
             → sellers_json: HTML or login page instead of JSON
line 42     appnexus.com, 1752, RESELLER, f5ab79cb980f11d1
             → sellers_json: HTTP 403
line 47     advertising.com, 28764, RESELLER
             → sellers_json: HTTP 403
line 48     appnexus.com, 12447, RESELLER, f5ab79cb980f11d1
             → sellers_json: HTTP 403
line 53     appnexus.com, 9538, DIRECT
             → sellers_json: HTTP 403
line 61     loopme.com, 9621, RESELLER, 6c8d5f95897a5a3b
             → sellers_json: HTTP 403
line 62     adcolony.com, 0a0f72cd66122f31, RESELLER, 1ad675c9de6b5176
             → sellers_json: HTML or login page instead of JSON
line 63     adcolony.com, 801e49d1be83b5f9, RESELLER, 1ad675c9de6b5176
             → sellers_json: HTML or login page instead of JSON
line 72     openx.com, 540871654, RESELLER, 6a698e2ec38604c6
             → sellers_json: HTTP 403
line 73     openx.com, 540679900, RESELLER, 6a698e2ec38604c6
             → sellers_json: HTTP 403
line 81     appnexus.com, 7353, RESELLER
             → sellers_json: HTTP 403
line 93     rhythmone.com, 3630748062, RESELLER, a670c89d4a324e47
             → sellers_json: HTTP 403
line 102    admixplay.com, 2012, RESELLER
             → sellers_json: HTTP 404
line 108    appnexus.com, 10617, RESELLER, f5ab79cb980f11d1
             → sellers_json: HTTP 403
line 109    appnexus.com, 11826, RESELLER
             → sellers_json: HTTP 403
line 110    appnexus.com, 11924, RESELLER, f5ab79cb980f11d1
             → sellers_json: HTTP 403
info

DIRECT accounts marked confidential

1

Buyers can't see who owns these accounts.

How to fixAsk the ad system to publish your seller entry with name and domain.
Evidence (1)
line 22     google.com, pub-6404351312741940, DIRECT, f08c47fec0942fa0

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