Enabling Your Channel for Video Ads

Roku Community,

Just to make a quick intro - my name is John and I manage the video ad business for publishers at Roku. Ad-supported channels are now the fastest growing segment on Roku, making it all the more critical that we are as communicative as possible with our developer community on how to monetize content effectively. Below I provide a comprehensive overview of several core aspects of the business and how you can work with Roku:

The Roku Ad Framework

The main goal of RAF is to create a universal standard for client side ad insertion on the Roku platform that enables our publishers to better sell their inventory. To clarify - RAF is not an ad server. To give a high level example of how RAF works in relation to a video ad server:

  1. Channel sends out an ad request.

  2. RAF extracts client side macros as targeting parameters to the ad server.

  3. Ad Server returns a valid VAST response.

  4. RAF parses out the VAST response.

  5. Impression and relevant beacons are served.

Some of the key features include:

  • Natively integrates baseline & advanced advertising capabilities
    – IAB VAST 2.0/3.0 processing
    – IAB VMAP playlist management
    – Interactive ad units (via Innovid in RAF V1)
    – Nielsen Digital Ad Ratings (via planned RAF update in summer ’15)
    – Utilizes Roku’s new privacy-friendly device ID (“RIDA”)
    – Client-side macros for key variables like content ID, genre, device ID
    – Automatically updates without rebuilding/resubmitting your app

We are constantly improving the capabilities of RAF and I am very excited to unveil what we’ve been working on at a later date. I will update the Roku community on the latest features for subsequent RAF releases.

Navigating the Video Advertising Landscape

The digital video advertising ecosystem is complicated - and even more complicated on Roku and OTT! Fortunately video inventory on OTT is worth more (based on CPM - cost per thousand impressions) than Online or Mobile.

There are fewer ad sources that are selling Connected TV ads in the marketplace than Online or Mobile. Here are a few that should be able to get you started:

YuMe
Tremor
BrightRoll
Amobee

And of course, we can help fill your inventory as well!

In order to manage multiple ad sources you need an ad server. There are a plethora of options out there but I would recommend looking into the following:

DFP for Video
LiveRail
FreeWheel
AOL One (formerly known as Adap.tv)

Working with Roku to Fill Your Advertising Demand

We have an incredibly robust direct ad sales team and are happy to work with our publishers to help monetize their content and grow their audience. There are no upfront volume commitments required - we understand that it can take time to grow your user-base and we want to help get you there. Please contact me (jcarter@roku.com) to further discuss opportunities related to video monetization.

-John

Hi RokuJohnC - welcome to the dev.forum!

This R.A.F. (if finished) seems significant enough to warrant a post on the developer blog.
(It will also help creating the impression RokuCo does something to popularize Roku as a platform 8-))

As a developer i have this question - does RAF and/or any of your publishers provide skippable video ads (akin to YT TrueView)?

Meaning ads that don’t hold the viewer hostage if they so choose to opt-out from a particular ad that has started showing for a few seconds. Unlike “legacy” TV, OTT model has interactive potential which can benefit all sides. Neither viewers enjoy forcibly seeing (“gavage”) the same gecko/duck/Flo over and over again, nor do advertisers win more business - but in the old system, with no way to discriminate they keep doing the carpet bombing hoping to cover those few who haven’t seen it and in the process causing collateral damage, incl. lower conversion rates and consequently lowering CPM for intermediaries.

RAF is in release form. I’m not currently aware of ads being sold as skippable outside of the YouTube channel on Roku.

However, with the RAF capability for interactive ads (via Innovid and others) there is the capability to sell skippable ads moving forward.

I think the main issue I see with skippable ads is how to make them economically viable. YouTube has such a massive audience that they can make the economics work with users skipping ads en masse. But smaller publishers that don’t have a billion unique users in which to cast such a wide net and make the numbers work. As the AVOD market continues to mature the ad diversity/frequency issue should resolve.

-John

Hi DeanLach,

Please email at jcarter@roku.com to discuss.

Thanks!

I am trying to wrap my head around the overall usefulness of this R.A.F. and not having much luck so far. Can someone help me see the light?

So it parses the templating of VAST, i get that. But if i have the VAST ad server on hand and am not afraid of parsing XML, why would i want to use “RAF”? The argument that it will update itself with the rOS is kind of weak.

And i find it disturbing that the library BRS source is kept hidden from us. Using the library (content unknown) makes RokuCo a man-in-the-middle intermediary between publisher and advertiser. What do we know about the “privacy” of the exchanges? What of them will the Co collect/aggregate/peruse? - i don’t see a statement on that.

“EnTerr” wrote:
I am trying to wrap my head around the overall usefulness of this R.A.F. and not having much luck so far. Can someone help me see the light?

So it parses the templating of VAST, i get that. But if i have the VAST ad server on hand and am not afraid of parsing XML, why would i want to use “RAF”? The argument that it will update itself with the rOS is kind of weak.

And i find it disturbing that the library BRS source is kept hidden from us. Using the library (content unknown) makes RokuCo a man-in-the-middle intermediary between publisher and advertiser. What do we know about the “privacy” of the exchanges? What of them will the Co collect/aggregate/peruse? - i don’t see a statement on that.
It’s not just about parsing XML, but also implementing all of the features of VAST, as well as a custom video player for ad playback. The primary benefit, in my opinion, would be the fact that you don’t have to implement the entire VAST spec yourself in BrightScript. If you already have a VAST library that you wrote yourself (which I do, incidentally), then there’s probably not a lot of benefit to using RAF, but if you don’t, it will save you a lot of development time.

As for the “man-in-the-middle” concern, I don’t think that’s any different than using the third party libraries for VAST on iOS and Android, which most ad services also provide. Some, like LiveRail, also provide a BrightScript library which you could use instead, if you were so inclined.

“TheEndless” wrote:
As for the “man-in-the-middle” concern, I don’t think that’s any different than using the third party libraries for VAST on iOS and Android, which most ad services also provide. Some, like LiveRail, also provide a BrightScript library which you could use instead, if you were so inclined.
It’s different in that RokuCo is a 3rd to the party, hence “a man in the middle”. Sometimes three is a crowd. In this particular perspective, the two parties are the (channel/app) Publisher and the Advertiser - and RokuCo as a friend is letting us use its bedroom. I don’t want to be ungrateful - since it’s indeed a cozy, well-lit bedroom - i just have questions about the security camera and the full-wall mirror :sunglasses:

The RAF is all about Ad monetization. Without good statistics, it is hard to get paid for ad playback.

The points of RAF are:

  • Support for advanced interactive ad technologies

  • Support for Roku Ad inventory delivery either in the typical percentage deal or in the 100% deal or in what ever we have negotiated. Either way we need to know how many of our ads are delivered in order to be able to collect funds from the ad companies or in the 100% Roku ads situation, pay the Roku developer.

  • Support for midrolls which our previous libraries did not have.

If you are using your own Ad server with RAF and not running any Roku ads I don’t think we will see any transactions as they will occur between your server and the device and you won’t be sending any beacons to our ad server

  • Joel

“RokuJohnC” wrote:
RAF is in release form. I’m not currently aware of ads being sold as skippable outside of the YouTube channel on Roku.

However, with the RAF capability for interactive ads (via Innovid and others) there is the capability to sell skippable ads moving forward.

I think the main issue I see with skippable ads is how to make them economically viable. YouTube has such a massive audience that they can make the economics work with users skipping ads en masse. But smaller publishers that don’t have a billion unique users in which to cast such a wide net and make the numbers work. As the AVOD market continues to mature the ad diversity/frequency issue should resolve.
In the long term, being able to skip ads is in everybody’s interest:

  • It’s good for the viewers, because they don’t have to waste life watching ads unrelated to their needs/interests.

  • It’s good for the advertisers, because they don’t have to pay $$$ promoting to the wrong segments of audience.

  • it’s good for app developers like me, because playing ads “hardball”-style alienates audience, turning them into unwilling hostages. Having the “safety valve” - if you will - of opting out to skip particular ad decreases friction in app adoption/user retention.

Skippable, interactive, non-intrusive, better-informed ads are the ads of the future. The stupid video ads we get now are remains from the only way TV and radio could work last century - one-way, no feedback broadcast and everybody sees/hears exactly the same content, whether it applies to them or not. It’s a “thermonuclear option”, akin to a broad-spectrum antibiotic that kills all bacteria - good, bad and indifferent - risking to leave one with ruined intestine, potentially in need of fecal transplant. The alternative is sniper precision, with innocents spared.

Beyond YouTube, you can see the new kind of ads in many places the last couple of years. Take for example freemium games like Angry Birds Epic, Plants vs Zombies 2 etc with skippable interstitial ads. Being a 2-way-interaction kind of set-top box, Roku is in position to jump early on the “smart video ads” bandwagon and remain relevant. Or you know, the other thing.

Seems we had little misunderstanding above though - i took @RokuJohnC 's answer to mean “there is no way out of prison with Roku ads” when i think he meant “we don’t have ad inventory akin to YT, where you’ll get paid something even if ad gets interrupted”. Now that i have dug into the docs, i found this method:

RAF.setAdExit(isEnabled as Boolean)

I tested and - yes indeed! - if that’s enabled, one can back off from RAF ads with the “Back” remote key - with RAF.showAds(adPods) call returning false to flag the interruption.

So after all, i can let users opt-out of a video ad! As long as i don’t mind getting unpaid for the unfinished ad. That is a bargain i personally will take. Wasting 30 seconds of unwilling viewer’s life - or forego a fraction of a penny? Sign me in for the latter!

“DeanLach” wrote:
I’m thinking that if RAF is helping to fill 100% then you as a Developer are promised fresh and appropriate ads for your audience…
I don’t think that’s true at all and it certainly doesn’t appear that way in practice. There’s a reason you’ll see the same ad over and over again: the Developer has no control.

-JT

What is the best way to add vast into Scene Graph? I want to embed ads into my new channel and prep it for public release. I have taken all the tools provided and have came up with Biztale enhanced compared to it’s humble beginnings on OpenRokn. Roku

Hey Dean,

Actually I re-wrote my channel it’s own the new platform which is “Scene Graph” I’m only running into the problem is how to add the ads into the channel with RAF or VAST. Is it a simple copy and past the code into the manifest or is there more to it. I don’t think this was covered in the forum as of yet, unless I need to reach out to the Roku Ad department for best results.

https://blog.roku.com/developer/2016/02 … framework/

But you are right, I ran into way to many issues when I did run the other .sdk that’s why I abandoned it long ago.

John

Hi there,

I have sent an email out to advertise@roku.com to add Ads support in my channel. But haven’t heard anything from them so far. Can you please tell me if I should be contacting anyone else in this regard.

Thanks,
Bhrami

“DeanLach” wrote:

“EnTerr” wrote:
So after all, i can let users opt-out of a video ad! As long as i don’t mind getting unpaid for the unfinished ad. That is a bargain i personally will take. Wasting 30 seconds of unwilling viewer’s life - or forego a fraction of a penny? Sign me in for the latter!
If I were you I’d check the RAF TOS before inputting that “Skippable” code.

Here’s some food 4 thought: I personally can’t see why a developer would take the time to code a Channel with RAF only to put in a method to defeat RAF. And I say “defeat” because I’m thinking that if RAF is helping to fill 100% then you as a Developer are promised fresh and appropriate ads for your audience, and skipping an ad destroys the purpose of using ADpods. Doesn’t it? Forgive me if I’m wrong…
Respectfully - you don’t seem to understand how advertising works at large - nor video ads in particular.

  1. The ad-exit capability is there in RAF for a reason. I did not invent it - i advocate developers to use it to improve user satisfaction %.

  2. The ad buyer does not pay for unfinished ads. If it does not hit final marker, there is no credit (that is, till hopefully something akin to YouTube’s TrueView gets available). It’s up to the ad seller whether to absorb (or not - in your case) cancelations.

  3. You might want to take a raincheck on the imaginary “fill 100%… [with] fresh and appropriate ads”. Fill rate of 100% is a fantasy. Q&D check today, Roku fills ~80% of the slots. And the ads one sees are repetitive, as RenoJim pointed out. It’s not app publisher’s fault but we bear the brunt of viewer’s dissatisfaction if they are forced to watch the same ad ad nauseam.

  4. Lastly, to address the fear of ad skipping ability hurting one’s bottom line: another reality check - less than 10% are exiting my pre-rolls. That’s less than 1/2 the un-filled slots from above. I am happy with such low number and rather shop for better CPM or fill ratios than force every ad onto every viewer.

Fast-forward couple of months later, update: RokuCo fill rates are still ~80%… on a good day. On a bad day they drop below 50%.

My “skip rates” have slowly risen up, maybe up to 40% (based on a small sample check today). I attribute that to 2 things: there are some regular/dedicated users that are habitual skippers (i traced couple over time and those reliably log <1sec reaction time on skipping prestitials). And two, there is only a limited number of leg shaving ads one can watch before developing immune rejection response to it. I will be reining in on these situations by offering a “no ads” optional upgrade

Hi all,

I am trying to understand how to implement a video advert interstitial to monetize a channel.

The example in RAF doc are quite confusing… is there a full tutorial somewhere step by step (create a DFP/Adsense/DFP/Admob…) account and like it to RAF ?

I understood that Roku can also serve the ads in the channel (if we request a custom uri) ?

Thanks for your help

“DeanLach” wrote:
1.  When you’re saying “interstitial” it sounds like your referring to a mobile app like something made with Android studio.  Roku instead uses Ad Pods with their RAF SDK’s.
“Interstitial” video ad just means mid-roll one. Compare/contrast to prestitial/pre-roll.

Thanks for your explanations, will try to use RAF servers then :slightly_smiling_face:

Howdy John. We have a channel built with InstantTV. Our channel is not published yet because we selected (My channel contains ads) in the HOW DO YOU PLAN TO MONETIZE YOUR CONTENT? PLEASE SELECT ALL THAT APPLY - section so the PUBLISH option is not available. We would like to be a part of the RAF program. May we have an invite to the RAF program?

“Westerns On The Web” wrote:
Howdy John. We have a channel built with InstantTV. Our channel is not published yet because we selected (My channel contains ads) in the HOW DO YOU PLAN TO MONETIZE YOUR CONTENT? PLEASE SELECT ALL THAT APPLY - section so the PUBLISH option is not available. We would like to be a part of the RAF program. May we have an invite to the RAF program?
Highly unlikely for RokuJohnC to reply, he hasn’t logged in here for over a year.
Are you sure selecting “ads” as monetize option is the reason you cannot publish?
And not, say, that bundle is not uploaded or submitted for review?