Tuesday, 1 January 2013

Blocking Adverts from the Roku Menu

UPDATE: 18 May 2013 - A new firmware (v5) has changed the way ads are handled on the Roku such that this guide is no longer relevant. 

Roku are are a pretty neat little media streaming box but one thing that I think lets them down are the trashy and mostly irrelevant adverts on the home page. Wouldn't it be great if you could get rid of these?

The ads are served by the third party ad platform, ZEDO. You can block the ads from displaying by simply blocking this domain entirely or by being more targeted and blocking the specific sub-domain serving the Roku ads. A TCPDUMP of my Roku shows that the ad images currently come from 'd7.zedo.com' (although this may change).

I block them by adding a custom DNS record for this sub-domain to my home router pointing to the loopback address (127.0.0.1). There are or course many other ways you could do this, but the best way will largely depend on your own set-up and resources.

19 comments:

  1. Excellent! Works like a charm. thx

    ReplyDelete
  2. If you could also post the domains to block ads on Crackle and Popcornflix you'd be doing the Roku world a great service...

    ReplyDelete
  3. As Crackle is a free ad supported service I don't think filtering it's adverts would be in the right spirit.

    ReplyDelete
  4. Dear Paul:

    I wonder if you could be a bit more guidance on this.

    I've a CLEAR router (Hub Express), and 'm on a Mac.

    I can't find where to put the DNS record in, other than in the NETWORK PREFS on the Mac itself.

    Would you mind giving me a step-by-step, please?

    ReplyDelete
    Replies
    1. Sorry, I'm neither a Mac user or at Hub Express owner. Like I say there are many ways to achieve this with the info I've provided, your best bet is to get googling.

      Delete
  5. Looks like an update changed to different Ad servers.
    Do you know what the new servers are?

    I used wireshark via tomato and the servers I got didn't stop the ads when I filtered them.

    Appreciate your feedback and thanks for the blog post. I was successful with blocking zedo but now they're back.

    ReplyDelete
  6. Hi, trying to wireshark my roku and still having a hard time figuring out where my ads are coming from. Just trying to block a dirty Crackle ad that is showing in my main roku menu.

    ReplyDelete
  7. Thank you for this post. I use OpenDNS and blocked all traffic to zedo.com and my ads are gone. Now all I have is a virtual billboard that says ROKU. I have the new v5 interface and that often tasteless ad is about 10"x25" on my screen. Got rid of things I don't want my kids seeing(me either for that matter). Really appreciate it.

    ReplyDelete
  8. Never mind. They came back. I have now traced the ads to one of two domains api.roku.com and cloudservices.roku.com. After blocking those the ads disappear but so does the channel store. All my channels work, but I can't get to new ones. Works for me though as I have all the channels I want. Still checking...

    ReplyDelete
    Replies
    1. Thanks Matt, that is pretty much where I'd got to as well. I'll post something if I find a solution, but right now I'm not overly optimistic.

      Delete
  9. The ads and Channel Store channel images are being served from http://channels.roku.com/images/* and the file names include a uid appended with -hd.jpg or -sd.jpg. You can filter these by using some kind of proxy or content filtering system and regex the file name but doing so will render the channel store useless.

    ReplyDelete
    Replies
    1. Forgot to mention that this applies to v5 of the UI. I've "fixed" my Roku3 but my older Roku with the older UI is still displaying the ads. The ads should go away when it gets the update. Unless of course Roku gets wind of this and changes things again.

      Delete
  10. The older UI ads can still be blocked by following the original post.

    ReplyDelete
  11. I just set up a Roku 3, and blocked cloudservices.roku.com and api.roku.com as Matt suggested, which works; the Channel Store is collateral damage. I wanted to add that this also prevents you from adding channels from the roku.com web interface to your account. You can add them on the web interface, but you won't see them on the Roku until you lift the blocking and let it phone home.

    As a workaround: Add the channel in the web interface, lift the blocking, go to Settings and do a scan for new software (you'll see the channel added), then restore the blocking.

    ReplyDelete
  12. All you have to do is block cloudservices.roku.com and nothing else. This will block ads but allow you to have your channel store and still update.

    I deployed a project for work with 90 rokus all on one account and wanted to block ads. This method worked for me with no problems.

    ReplyDelete
    Replies
    1. I tried blocking - cloudservices.roku.com and I still have ads on Roku3.

      Delete
  13. Guys, I have traced new ads to be coming from Akamai domain. Roku has changed the way they’re hosting advertisements. So far it appears as they are constantly rotating IPs from where the ads come from.

    Here is an example from Wireshark capture:
    HTTP GET /images/20140829101524-FA_2014_APS-RedOaks_Roku3_HD_350x490._V344320249_-hd-hd.jpg HTTP/1.1

    So far I have traced the ads to be coming from following IPs which can be blocked on the router…not sure however if this will change in future but so far it’s been working.

    23.74.8.91
    23.74.8.106
    23.74.8.104
    23.3.96.137
    23.3.96.155
    23.3.98.89
    23.3.98.49
    23.3.98.72
    23.210.5.21
    23.210.5.97
    23.210.5.90
    23.210.5.121
    23.63.227.122
    23.63.227.146
    23.63.227.147
    199.117.103.88
    67.132.183.51

    ReplyDelete
  14. Just an FYI, blocking inbound and outbound to "cloudservices.roku.com" does block the large ad in the menu interface on the right side in the latest software.

    After you block it, you have to wait, as the device seems to be caching the last ad. After the block happens the channel list also works, however it takes a long time to load. Mine takes 20-30 seconds on a Roku 3. I tried updating from the system menu and that also appears to be working, however no updates have actually came through so I can't say for sure.

    I have added channels from the channel list and it has worked with the block.

    After the last ad expires, the spot for it will be filled with a grey backdrop that says Roku on it. Anyway for people who like specifics I blocked;

    Inbound Any protocol Any port cloudservices.roku.com
    Outbound Any protocol Any port cloudservices.roku.com

    You can probably get away with only blocking outbound, but I haven't had time to try it.

    ReplyDelete
  15. Thanks for the info !

    ReplyDelete