App Supply Index Monitor my app
iOS · Hulu, LLC

Hulu: Stream TV shows & movies

Developer URL
http://www.hulu.com/start
app-ads.txt
https://www.hulu.com/app-ads.txt · 200
Checked
Oct 7, 2026
C
65/100

308 lines · 171 verified against sellers.json

Findings

Each finding lists the exact lines involved. These are mechanical checks of public files, not fraud verdicts.

warning

DIRECT lines for seats the publisher doesn't own

91 −21 pts

DIRECT should mean the publisher controls the account. These seats are listed as intermediaries by the ad system itself, or are labeled DIRECT by many unrelated companies, so they belong to a reseller. Buyers who prefer DIRECT paths end up paying for an extra hop.

How to fixUse DIRECT only for accounts your company controls. Ask each partner whether the seat is yours; if not, change the line to RESELLER.
Evidence (25 of 91)
line 29     telaria.com, r5rfy-irhqt, DIRECT, 1a4e959a1b50034a
             → why=the same seat is labeled DIRECT by 3 different companies
line 30     tremorhub.com, r5rfy-irhqt, DIRECT, 1a4e959a1b50034a
             → why=the same seat is labeled DIRECT by 3 different companies
line 36     freewheel.tv, 520311, DIRECT #Paramount
             → why=the same seat is labeled DIRECT by 9 different companies
line 37     freewheel.tv, 191701, DIRECT #Discovery
             → why=the same seat is labeled DIRECT by 8 different companies
line 38     freewheel.tv, 516429, DIRECT #Fox
             → why=the same seat is labeled DIRECT by 8 different companies
line 39     freewheel.tv, 48804, DIRECT #Warner
             → why=the same seat is labeled DIRECT by 6 different companies
line 40     freewheel.tv, 171213, DIRECT #A&E
             → why=the same seat is labeled DIRECT by 7 different companies
line 41     freewheel.tv, 520040, DIRECT #AMC
             → why=the same seat is labeled DIRECT by 4 different companies
line 42     freewheel.tv, 169843, DIRECT #NBCU
             → why=the same seat is labeled DIRECT by 4 different companies
line 43     freewheel.tv, 520311-523319, DIRECT #Paramount
             → why=the same seat is labeled DIRECT by 4 different companies
line 44     freewheel.tv, 191701-523319, DIRECT #Discovery
             → why=the same seat is labeled DIRECT by 3 different companies
line 45     freewheel.tv, 516429-523319, DIRECT #Fox
             → why=the same seat is labeled DIRECT by 5 different companies
line 46     freewheel.tv, 48804-523319, DIRECT #Warner
             → why=the same seat is labeled DIRECT by 3 different companies
line 48     freewheel.tv, 520040-523319, DIRECT #AMC
             → why=the same seat is labeled DIRECT by 4 different companies
line 50     telaria.com, lbhf7-eaa33, DIRECT, 1a4e959a1b50034a
             → why=the same seat is labeled DIRECT by 3 different companies  seat_owner=Fox  seat_domain=fox.com
line 51     tremorhub.com, lbhf7-eaa33, DIRECT, 1a4e959a1b50034a
             → why=the same seat is labeled DIRECT by 3 different companies  seat_owner=Fox  seat_domain=fox.com
line 52     indexexchange.com, 201520, DIRECT, 50b1c356f2c5c8fc
             → why=the same seat is labeled DIRECT by 8 different companies
line 57     freewheel.tv, 171213, DIRECT
             → why=the same seat is labeled DIRECT by 7 different companies
line 93     yahoo.com, 59494, DIRECT, e1a5b5b6e3255540
             → why=the same seat is labeled DIRECT by 4 different companies
line 98     freewheel.tv, 372496, DIRECT
             → why=the same seat is labeled DIRECT by 5 different companies
line 103    springserve.com, 1247, DIRECT, a24eb641fc82e93d
             → why=the same seat is labeled DIRECT by 20 different companies
line 104    telaria.com, 2auap-45web, DIRECT, 1a4e959a1b50034a
             → why=sellers.json lists the seat as INTERMEDIARY; the same seat is labeled DIRECT by 3 different companies  seat_owner=LG Ads - US  seat_domain=lgads.tv
line 105    telaria.com, 2auap-zihku, DIRECT, 1a4e959a1b50034a
             → why=the same seat is labeled DIRECT by 11 different companies  seat_owner=LG Ads - US  seat_domain=lgads.tv
line 106    tremorhub.com, 2auap-45web, DIRECT, 1a4e959a1b50034a
             → why=sellers.json lists the seat as INTERMEDIARY; the same seat is labeled DIRECT by 3 different companies  seat_owner=LG Ads - US  seat_domain=lgads.tv
line 107    tremorhub.com, 2auap-zihku, DIRECT, 1a4e959a1b50034a
             → why=the same seat is labeled DIRECT by 11 different companies  seat_owner=LG Ads - US  seat_domain=lgads.tv
warning

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

24 −11 pts

The ad system's current sellers.json doesn't list these accounts, so buyers that validate the chain can't match them. Usually leftovers from closed accounts or old partners.

How to fixAsk each partner whether the account is still active and request their current lines; remove lines for closed accounts.
Evidence (24)
line 27     telaria.com, i0unc-ertdk, DIRECT, 1a4e959a1b50034a
             → sellers_json=https://www.telaria.com/sellers.json
line 28     tremorhub.com, i0unc-ertdk, DIRECT, 1a4e959a1b50034a
             → sellers_json=https://tremorhub.com/sellers.json
line 29     telaria.com, r5rfy-irhqt, DIRECT, 1a4e959a1b50034a
             → sellers_json=https://www.telaria.com/sellers.json
line 30     tremorhub.com, r5rfy-irhqt, DIRECT, 1a4e959a1b50034a
             → sellers_json=https://tremorhub.com/sellers.json
line 31     telaria.com, sipgi-k8fpb, DIRECT, 1a4e959a1b50034a
             → sellers_json=https://www.telaria.com/sellers.json
line 32     tremorhub.com, sipgi-k8fpb, DIRECT, 1a4e959a1b50034a
             → sellers_json=https://tremorhub.com/sellers.json
line 89     telaria.com, r288m-d4psn, DIRECT, 1a4e959a1b50034a
             → sellers_json=https://www.telaria.com/sellers.json
line 91     tremorhub.com, r288m-d4psn, DIRECT, 1a4e959a1b50034a
             → sellers_json=https://tremorhub.com/sellers.json
line 121    telaria.com, r288m-d4psn, RESELLER, 1a4e959a1b50034a
             → sellers_json=https://www.telaria.com/sellers.json
line 122    tremorhub.com, r288m-d4psn, RESELLER, 1a4e959a1b50034a
             → sellers_json=https://tremorhub.com/sellers.json
line 144    beachfront.com, 14589, RESELLER, e2541279e8e2ca4d
             → sellers_json=https://beachfront.com/sellers.json
line 148    filmzie.com, 1206, RESELLER
             → sellers_json=https://filmzie.com/sellers.json
line 196    smartadserver.com, 4071, RESELLER
             → sellers_json=https://smartadserver.com/sellers.json
line 197    smartadserver.com, 4228, RESELLER
             → sellers_json=https://smartadserver.com/sellers.json
line 205    telaria.com, oyz9, RESELLER, 1a4e959a1b50034a
             → sellers_json=https://www.telaria.com/sellers.json
line 219    video.unrulymedia.com, 2564526802, RESELLER
             → sellers_json=https://video.unrulymedia.com/sellers.json
line 220    video.unrulymedia.com, 567009000, RESELLER
             → sellers_json=https://video.unrulymedia.com/sellers.json
line 230    elementaltv.io, 78888114, DIRECT
             → sellers_json=https://elementaltv.io/sellers.json
line 258    telaria.com, i0unc-04ryg, DIRECT, 1a4e959a1b50034a #Magnite
             → sellers_json=https://www.telaria.com/sellers.json
line 259    tremorhub.com, i0unc-04ryg, DIRECT, 1a4e959a1b50034a #MagniteFOX
             → sellers_json=https://tremorhub.com/sellers.json
line 268    smaato.com, 1100054264, DIRECT, 07bcf65f187117b4 #LG
             → sellers_json=https://smaato.com/sellers.json
line 283    smaato.com, 1100054264, DIRECT, 07bcf65f187117b4
             → sellers_json=https://smaato.com/sellers.json
line 289    disney.com, hulu-d7b824ab-6098-4d7e-aa45-f47b2017a09f, DIRECT
             → sellers_json=https://disney.com/sellers.json
line 331    vizio.com, 0001043, DIRECT
             → sellers_json=https://vizio.com/sellers.json
info

DIRECT accounts registered to another domain

20 −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 (20)
line 56     aps.amazon.com, 3b06d393-7564-44e3-a887-d0dfee9fb68d, DIRECT
             → seller_domain=aetv.com  seller_name=A+E Television Networks, LLC
line 85     video.unrulymedia.com, 1039922603, DIRECT
             → seller_domain=aetv.com  seller_name=A&E Television Networks, LLC
line 86     lkqd.net, 550, DIRECT, 59c49fa9598a0117
             → seller_domain=aetv.com  seller_name=A&E
line 88     telaria.com, 45dhn, DIRECT, 1a4e959a1b50034a
             → seller_domain=aetv.com  seller_name=A&E
line 90     tremorhub.com, 45dhn, DIRECT, 1a4e959a1b50034a
             → seller_domain=aetv.com  seller_name=A&E
line 94     pubmatic.com, 161451, DIRECT, 5d62403b186f2ace
             → seller_domain=aetv.com  seller_name=A&E Networks
line 96     telaria.com, dix75-v06nl, DIRECT, 1a4e959a1b50034a
             → seller_domain=directv.com  seller_name=DIRECTV
line 97     tremorhub.com, dix75-v06nl, DIRECT, 1a4e959a1b50034a
             → seller_domain=directv.com  seller_name=DIRECTV
line 100    telaria.com, r288m-l2d21, DIRECT, 1a4e959a1b50034a
             → seller_domain=aetv.com  seller_name=A&E -  FAST
line 101    tremorhub.com, r288m-l2d21, DIRECT, 1a4e959a1b50034a
             → seller_domain=aetv.com  seller_name=A&E -  FAST
line 102    pubmatic.com, 160741, DIRECT, 5d62403b186f2ace
             → seller_domain=aetv.com  seller_name=AE Networks
line 116    glewed.tv, 127, DIRECT, 3cc5a0825f527a1e
             → seller_domain=aetv.com  seller_name=A&E Networks
line 126    applovin.com, 51877, DIRECT
             → seller_domain=aetv.com  seller_name=A+E Television Networks
line 228    orka.tv, 57590797, DIRECT
             → seller_domain=aetv.com  seller_name=A&E Networks
line 238    video.unrulymedia.com, 505579786, DIRECT
             → seller_domain=fox.com  seller_name=Foxcorp Holdings (OneFox)
line 260    telaria.com, lbhf7-z8p3a, DIRECT, 1a4e959a1b50034a #MagniteOneFOX
             → seller_domain=fox.com  seller_name=Fox
line 276    telaria.com, lbhf7-z8p3a, DIRECT, 1a4e959a1b50034a
             → seller_domain=fox.com  seller_name=Fox
line 293    smartadserver.com, 4915, DIRECT, 060d053dcf45cbf3
             → seller_domain=fox.com  seller_name=Fox Sports Ent
line 322    telaria.com, 2auap-y09j8, DIRECT, 1a4e959a1b50034a
             → seller_domain=fox.com  seller_name=OneFox
line 323    tremorhub.com, 2auap-y09j8, DIRECT, 1a4e959a1b50034a
             → seller_domain=fox.com  seller_name=OneFox
info

Duplicate lines

18 −1 pts

Harmless but a sign of copy-paste maintenance.

How to fixRemove duplicates; keep one copy of each line.
Evidence (18)
ad_system: freewheel.tv  seller_id: 171213  relationship: DIRECT
ad_system: freewheel.tv  seller_id: 516429-523319  relationship: DIRECT
ad_system: indexexchange.com  seller_id: 201520  relationship: DIRECT
ad_system: pubmatic.com  seller_id: 161508  relationship: RESELLER
ad_system: smartadserver.com  seller_id: 4311  relationship: RESELLER
ad_system: undertone.com  seller_id: 4143  relationship: RESELLER
ad_system: indexexchange.com  seller_id: 206103  relationship: DIRECT
ad_system: yahoo.com  seller_id: 57974  relationship: DIRECT
ad_system: yahoo.com  seller_id: 58082  relationship: DIRECT
ad_system: telaria.com  seller_id: lbhf7-z8p3a  relationship: DIRECT
ad_system: indexexchange.com  seller_id: 205045  relationship: DIRECT
ad_system: triplelift.com  seller_id: 13922  relationship: DIRECT
ad_system: freewheel.tv  seller_id: 1572593  relationship: DIRECT
ad_system: freewheel.tv  seller_id: 1572594  relationship: RESELLER
ad_system: yahoo.com  seller_id: 59642  relationship: RESELLER
ad_system: lkqd.net  seller_id: 1100054253  relationship: DIRECT
ad_system: smaato.com  seller_id: 1100054264  relationship: DIRECT
ad_system: openx.com  seller_id: 559105323  relationship: DIRECT
info

Ad systems without a public sellers.json

108

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 108)
line 36     freewheel.tv, 520311, DIRECT #Paramount
             → sellers_json=HTTP 403
line 37     freewheel.tv, 191701, DIRECT #Discovery
             → sellers_json=HTTP 403
line 38     freewheel.tv, 516429, DIRECT #Fox
             → sellers_json=HTTP 403
line 39     freewheel.tv, 48804, DIRECT #Warner
             → sellers_json=HTTP 403
line 40     freewheel.tv, 171213, DIRECT #A&E
             → sellers_json=HTTP 403
line 41     freewheel.tv, 520040, DIRECT #AMC
             → sellers_json=HTTP 403
line 42     freewheel.tv, 169843, DIRECT #NBCU
             → sellers_json=HTTP 403
line 43     freewheel.tv, 520311-523319, DIRECT #Paramount
             → sellers_json=HTTP 403
line 44     freewheel.tv, 191701-523319, DIRECT #Discovery
             → sellers_json=HTTP 403
line 45     freewheel.tv, 516429-523319, DIRECT #Fox
             → sellers_json=HTTP 403
line 46     freewheel.tv, 48804-523319, DIRECT #Warner
             → sellers_json=HTTP 403
line 47     freewheel.tv, 171213-523319, DIRECT #A&E
             → sellers_json=HTTP 403
line 48     freewheel.tv, 520040-523319, DIRECT #AMC
             → sellers_json=HTTP 403
line 49     freewheel.tv, 169843-523319, DIRECT #NBCU
             → sellers_json=HTTP 403
line 53     freewheel.tv, 516429-523319, RESELLER
             → sellers_json=HTTP 403
line 54     advertising.com, 5830, DIRECT
             → sellers_json=HTTP 403
line 55     appnexus.com, 9339, DIRECT, f5ab79cb980f11d1
             → sellers_json=HTTP 403
line 57     freewheel.tv, 171213, DIRECT
             → sellers_json=HTTP 403
line 58     freewheel.tv, 181033, DIRECT
             → sellers_json=HTTP 403
line 59     freewheel.tv, 181041, DIRECT
             → sellers_json=HTTP 403
line 60     freewheel.tv, 181049, DIRECT
             → sellers_json=HTTP 403
line 61     freewheel.tv, 181057, DIRECT
             → sellers_json=HTTP 403
line 62     freewheel.tv, 184449, DIRECT
             → sellers_json=HTTP 403
line 63     freewheel.tv, 188201, DIRECT
             → sellers_json=HTTP 403
line 64     freewheel.tv, 188609, DIRECT
             → 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