Forum Discussion

IRoad's avatar
IRoad
Visitor
14 years ago

Banner ADS

Hi developers.
I have a question about the Banner ADS, I follow your script on the forum and few works very well but I have a problem to up to date the graphic, for example if today I want to have Adidas as sponsor and tomorrow i would like have Nike as sponsor I can't.
I changed the jpeg from my URL directory but Roku NOT automatically change the graphic still again on the old graphic, someone do you know why?
thank you in advance

7 Replies

  • add a random string to your url kinda like this:

    url="http://myserver.com/image.jpg"
    imgurl=url+"?rand="+rnd(10000).tostr()


    this should "bust" the cache and force download of the new image. You might want to use a flag file on your server to turn this on and off:


    xfer=createobject("rourltransfer")
    flagfile=("http://myserver.com/flag.txt")
    xfer.seturl(flagfile)
    flag=xfer.gettostring()
    if flag="true" then
    imgurl=url+"?rand="+rnd(10000).tostr()
    else if flagfile="false"
    imgurl=url
    end if


    so you don't waste bandwidth reloading the same graphic over and over, until you actually need to change the image.

    - Joel
  • Hi Joel,
    I tried for suggestion but I am confuse about where put your script, I believe on POSTER SCREEN, but not it appear.

    Follow a part of the script were i put it

    '******************************************************
    '** Display the home screen and wait for events from
    '** the screen. The screen will show retreiving while
    '** we fetch and parse the feeds for the game posters
    '******************************************************
    Function showPosterScreen(screen As Object, category As Object) As Integer

    if validateParam(screen, "roPosterScreen", "showPosterScreen") = false return -1
    if validateParam(category, "roAssociativeArray", "showPosterScreen") = false return -1

    m.curCategory = 0
    m.curShow = 0
    temp=getcategorylist(category)

    xfer=createobject("rourltransfer")
    flagfile=("http://xxxxxxxxxxxx.cloudfront.net/vodrokubanner/540x60.jpg")
    xfer.seturl(flagfile)
    flag=xfer.gettostring()
    if flag="true" then
    imgurl=url+"?rand="+rnd(10000).tostr()
    else if flagfile="false"
    imgurl=url
    end if

    if temp.count() > 1 then
    screen.SetListNames(temp)
    ?temp.count();" categories"
    else
    ?"only ";temp.count();" category"
    end if
    screen.SetContentList(getShowsForCategoryItem(category, m.curCategory))
    screen.Show()

    while true
    msg = wait(0, screen.GetMessagePort())
    if type(msg) = "roPosterScreenEvent" then
    print "showPosterScreen | msg = "; msg.GetMessage() " | index = "; msg.GetIndex()
    if msg.isListFocused() then
    m.curCategory = msg.GetIndex()
    m.curShow = 0
    screen.setcontentlist([])
    screen.SetFocusedListItem(m.curShow)
    screen.showmessage("Retrieving")
    screen.SetContentList(getShowsForCategoryItem(category, m.curCategory))
    screen.clearmessage()
    print "list focused | current category = "; m.curCategory
    else if msg.isListItemSelected() then
    m.curShow = msg.GetIndex()
    print "list item selected | current show = "; m.curShow
    m.curShow = displayShowDetailScreen(category, m.curShow)
    screen.SetFocusedListItem(m.curShow)
    print "list item updated | new show = "; m.curShow
    else if msg.isScreenClosed() then
    return -1
    end if
    end If
    end while


    End Function
  • Hi,


    the flagfile is just a text file you would set to "true" or "false" to force an update of your image on the devices.

    you need also to have an SD sized ad and an HD sized ad, and you use SetAdURL(SDAdURL,HDAdURL).

    so:

    '******************************************************
    '** Display the home screen and wait for events from
    '** the screen. The screen will show retreiving while
    '** we fetch and parse the feeds for the game posters
    '******************************************************
    Function showPosterScreen(screen As Object, category As Object) As Integer

    if validateParam(screen, "roPosterScreen", "showPosterScreen") = false return -1
    if validateParam(category, "roAssociativeArray", "showPosterScreen") = false return -1

    m.curCategory = 0
    m.curShow = 0
    temp=getcategorylist(category)

    xfer=createobject("rourltransfer")
    flagfile=("http://xxxxxxxxxxxx.cloudfront.net/vodrokubanner/flag.txt")
    SDURL="http://xxxxxxxxxxxx.cloudfront.net/vodrokubanner/540x60.jpg"
    HDURL="http://xxxxxxxxxxxx.cloudfront.net/vodrokubanner/728x90.jpg"
    xfer.seturl(flagfile)
    flag=xfer.gettostring()
    if flag="true" then
    SDAdURL=SDURL+"?rand="+rnd(10000).tostr()
    HDAdURL=HDURL+"?rand="+rnd(10000).tostr()
    else if flagfile="false"
    SDAdURL=SDURL
    HDAdURL=HDURL
    end if

    if temp.count() > 1 then
    screen.SetListNames(temp)
    ?temp.count();" categories"
    else
    ?"only ";temp.count();" category"
    end if
    screen.SetContentList(getShowsForCategoryItem(category, m.curCategory))

    screen.SetAdURL(SDAdURL,HDAdURL)

    screen.Show()

    while true
    msg = wait(0, screen.GetMessagePort())
    if type(msg) = "roPosterScreenEvent" then
    print "showPosterScreen | msg = "; msg.GetMessage() " | index = "; msg.GetIndex()
    if msg.isListFocused() then
    m.curCategory = msg.GetIndex()
    m.curShow = 0
    screen.setcontentlist([])
    screen.SetFocusedListItem(m.curShow)
    screen.showmessage("Retrieving")
    screen.SetContentList(getShowsForCategoryItem(category, m.curCategory))
    screen.clearmessage()
    print "list focused | current category = "; m.curCategory
    else if msg.isListItemSelected() then
    m.curShow = msg.GetIndex()
    print "list item selected | current show = "; m.curShow
    m.curShow = displayShowDetailScreen(category, m.curShow)
    screen.SetFocusedListItem(m.curShow)
    print "list item updated | new show = "; m.curShow
    else if msg.isScreenClosed() then
    return -1
    end if
    end If
    end while


    By the way, if when you post code to the forum, please select the code and click the Code button to format it as code.

    - Joel
  • "RokuJoel" wrote:
    the flagfile is just a text file you would set to "true" or "false" to force an update of your image on the devices.

    How would he know when to change the flag file back to false? It'd probably make more sense to set the date of the last update in that file, then store that date on the box to compare against. Or, better yet, if he's loading that file anyway, why not just put the url of the images in that file, and update that when a new ad is available.
  • Hi,
    in the flag.txt i need just to write "true" or I need write more information inside the .txt file....