Chromecast CAF и IMA SDK не работает вместе - PullRequest
0 голосов
/ 30 ноября 2018

Последний API Google Chromecast имеет встроенную функциональность рекламы, он поддерживает форматы VAST и VMAP, но мы обнаружили, что если файл манифеста XML имеет тип = "aplication *", поэтому объявления не работают, функциональность chomecast ads игнорирует это. Google Cast Issue Есть идеи?Хорошо, альтернативным решением было использование IMA SDK вместо стандартной функциональности рекламы CAF.Но я не могу начать проигрывать рекламу, всегда есть ошибка.Я использовал пример этого кода: пример google ima sdk после загрузки мультимедиа я добавил тайм-аут на 15 секунд и затем загрузил объявление, например:

playerManager.setMessageInterceptor(
    cast.framework.messages.MessageType.LOAD, loadRequestData => {
        Utils.initIMA();
        setTimeout(()=>{
            playerManager.stop();
            Utils.requestAd('https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/124319096/external/single_ad_samples&ciu_szs=300x250&impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&cust_params=deployment%3Ddevsite%26sample_ct%3Dlinear&correlator=12345678');
        }, 15000);
        return loadRequestData;
    });
var Utils = {
    requestAd: (adTagUrl) => {
        let adsRequest = new google.ima.AdsRequest();
        adsRequest.adTagUrl = adTagUrl;
        adsRequest.linearAdSlotWidth = mediaElement.width;
        adsRequest.linearAdSlotHeight = mediaElement.height;
        adsRequest.nonLinearAdSlotWidth = mediaElement.width;
        adsRequest.nonLinearAdSlotHeight = mediaElement.height / 3;
        adsLoader.requestAds(adsRequest);
    },
    initIMA : () => {
        let adDisplayContainer = new google.ima.AdDisplayContainer(document.getElementById('adContainer'), mediaElement);
       adDisplayContainer.initialize();
       adsLoader = new google.ima.AdsLoader(adDisplayContainer);
       adsLoader.getSettings().setPlayerType('cast/client-side');
       adsLoader.addEventListener(
           google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, 
           Utils.onAdsManagerLoaded, false);
       adsLoader.addEventListener(
           google.ima.AdErrorEvent.Type.AD_ERROR,   Utils.onAdError, false);
       adsLoader.addEventListener(
            google.ima.AdEvent.Type.ALL_ADS_COMPLETED, Utils.onAllAdsCompleted, false);
    }
}

Ошибка, воспроизведенная на этомстрока: adsLoader.requestAds (adsRequest);Uncaught TypeError: agcanPlayType не является функцией

...