首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅当存在创意时才加载videoplayer

仅当存在创意时才加载videoplayer
EN

Stack Overflow用户
提问于 2020-11-06 17:23:46
回答 2查看 46关注 0票数 0

我在谷歌AdManager中创建了一个视频广告单元。手册在这里:https://support.google.com/admanager/answer/1181016?hl=en。我在我的Radiant Player中使用了生成的AdTagUrl (我想将它用于文章中包含的视频广告)。手册在这里:https://www.radiantmediaplayer.com/docs/latest/outstream-video-ads.html。它工作正常。但只有当AdManager发送一个有创意的。当AdManager没有发送任何创意时,我必须隐藏播放器。

有没有办法在加载播放器之前检测到AdManager是否发送了创意消息?

例如,如下所示:

代码语言:javascript
复制
function showOutstreamVideo()
{
    //detect if there is an advertisement
    var x = new XMLHttpRequest();
    x.open("GET", AdTagUrl, true);
    x.onreadystatechange = function () {
    if (x.readyState == 4 && x.status == 200)
    {
        var vast = x.responseXML;
        if(vast.getElementsByTagName("Ad").length>0)
        {   //code for read, init and place player
        }
  }
}

...but我不能用这个庞大的对象初始化Radiant Player。当我再次使用adTagUrl时,对于AdManager来说,这将是第二印象,这可能是不同的。当没有创意时,有没有解决方案来防止页面不必要地请求播放器脚本?

感谢并为我的英语道歉

EN

回答 2

Stack Overflow用户

发布于 2020-11-08 18:45:04

你有没有试过动态加载Radiant播放器?

代码语言:javascript
复制
var settings = {};
var vast = x.responseXML;
if(vast.getElementsByTagName("Ad").length>0) {
    var player = document.createElement('script');
    player.src = "https://cdn.radiantmediatechs.com/rmp/5.10.6/js/rmp.min.js";
    document.body.appendChild(player);
    var elementID = 'rmpPlayer';
    var rmp = new RadiantMP(elementID);
    rmp.init(settings);
}

票数 0
EN

Stack Overflow用户

发布于 2020-11-11 21:12:44

AdResponse: vast,(作为字符串)是播放器设置的正确选择。

代码语言:javascript
复制
    var x = new XMLHttpRequest();
    x.open("GET", outstreamAdTagUrl, true);
    x.onreadystatechange = function ()
    {   if (x.readyState == 4 && x.status == 200)
        {   vast = x.responseText; //x.responeXML;
            //if(vast.getElementsByTagName("Ad").length>0)
            if(vast.length > 200) //it should be sufficient to determine if it is an ad or an empty VAST
            {   //read and init player
                var player = document.createElement('script');
                document.body.appendChild(player);
                player.onload = function(){runOutstream(vast);};
                player.setAttribute('src', 'https://cdn.radiantmediatechs.com/rmp/5.10.6/js/rmp.min.js');
            }
        }
    };
    x.send(null);

    function runOutstream(vast)
    {
    var settings = {
        ... license key etc...
        autoplay: true,
        adOutStreamMutedAutoplay: true,
        ads: true,
        //adsResponse: new XMLSerializer().serializeToString(vast), //when using responseXML()
        adsResponse: vast,
        adOutStream: true,
        skin: 'outstream',
        ...other setting
    };

    var rmp = new RadiantMP('rmpPlayer');
    rmp.init(settings);
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64711921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档