Roku Developer Program

Developers and content creators—a complete solution for growing an audience directly.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
rynop
Level 7

Can't get pre-roll ads to play

I'm trying to add VAST video pre-roll ads to the SThree sample Roku SDK project (the "Simple Grid with Video and Details page (.zip)" version).
I can get it to work on app start by putting the following code into main.brs

library "Roku_Ads.brs"
...
Sub RunUserInterface()
   ...
   raf = Roku_Ads()
   raf.setAdPrefs(false)       'disable back-filled ads
   raf.setDebugOutput(true)
   raf.setAdUrl("http://pubads.g.doubleclick.net/...")
   adPods = raf.getAds()
   shouldPlayContent = raf.showAds(adPods)


I however don't want to play an ad on startup, I want to play an ad before a video play. So I figure I can just add the lines above to components/screens/DetailsScreen/DetailsScreen.brs
' on Button press handler
Sub onItemSelected()
   ' first button is Play
   if m.top.itemSelected = 0
       'START ADDING FOR PRE-ROLL
       raf = Roku_Ads()
       raf.setAdPrefs(false)       'disable back-filled ads
       raf.setDebugOutput(true)
       raf.setAdUrl("http://pubads.g.doubleclick.net/...")
       adPods = raf.getAds()
       shouldPlayContent = raf.showAds(adPods)
       'END ADDING FOR PRE-ROLL

       if shouldPlayContent
           m.videoPlayer.visible = true
           m.videoPlayer.setFocus(true)
           m.videoPlayer.control = "play"
           m.videoPlayer.observeField("state", "OnVideoPlayerStateChange")
       end if
   end if
End Sub


When I run this I get an error:
Roku_Ads Framework version 1.8
BRIGHTSCRIPT: ERROR: roAppInfo: class PLUGIN|MARKUP on thread RENDER: roku_ads_lib:/Roku_Ads.brs(527)
'Dot' Operator attempted with invalid BrightScript Component or interface reference. (runtime error &hec) in roku_ads_lib:/Roku_Ads.brs(528)
528: ??
Backtrace:
#4  Function roku_ads_util_getappid(key_ As String) As String
  file/line: roku_ads_lib:/Roku_Ads.brs(528)
#3  Function roku_ads_checkallowedfeature(keytype_ As String, util_ As Object) As Boolean
  file/line: roku_ads_lib:/Roku_Ads.brs(1287)
#2  Function roku_ads_constructor() As Object
  file/line: roku_ads_lib:/Roku_Ads.brs(264)
#1  Function roku_ads() As Object
  file/line: roku_ads_lib:/Roku_Ads.brs(32)
#0  Function onitemselected() As Void
  file/line: pkg:/components/screens/DetailsScreen/DetailsScreen.brs(75)


What am I doing wrong here? Can you not play an ad when a method is called from a 
onChange="onItemSelected"


 in the component.xml?

Thanks in advance
0 Kudos
1 REPLY 1
rynop
Level 7

Re: Can't get pre-roll ads to play

I figured it out.  Check out this stack overflow post for complete write-up
0 Kudos