Adsense для игр IMA SDK HTML5 Ошибка воспроизведения
Ошибка: не удалось инициализировать элемент воспроизведения рекламы перед началом воспроизведения рекламы.
Мы не можем получить объявление, чтобы показать для нас. Раньше он работал просто отлично, а потом вдруг эта ошибка выдается. Мы не меняли код, так как он работал годами.
Мы используем это на игровых сайтах, показываем видеообъявление, а затем используем onMediaEnd()
показать игру после того, как видео завершено или обнаружена ошибка.
<script>
var adVideoContainer = document.getElementById('ad-video');
var adDisplayContainer = new google.ima.AdDisplayContainer(adVideoContainer);
var adsLoader = new google.ima.AdsLoader(adDisplayContainer);
adsLoader.addEventListener(google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, function(adEvent){
console.log('ADS_MANAGER_LOADED');
onAdsManagerLoaded(adEvent);
}, true);
adsLoader.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, function(adEvent) {
console.log('AD_ERROR');
onMediaEnd();
},false);
function onAdsManagerLoaded(adEvent)
{
var adsRenderingSettings = new google.ima.AdsRenderingSettings();
var adsManager = adEvent.getAdsManager({
currentTime: 0
});
window.adsManager = adsManager;
adsManager.addEventListener( google.ima.AdErrorEvent.Type.AD_ERROR, function(adEvent) {
console.log('AD_ERROR');
onMediaEnd();
});
adsManager.addEventListener( google.ima.AdEvent.Type.ALL_ADS_COMPLETED, function(adEvent) {
console.log('ALL_ADS_COMPLETED');
onMediaEnd();
});
adsManager.addEventListener( google.ima.AdEvent.Type.COMPLETE, function(adEvent) {
console.log('COMPLETE');
onMediaEnd();
});
adsManager.addEventListener(google.ima.AdEvent.Type.LOADED,function(adEvent){
console.log('LOADED');
var ad = adEvent.getAd();
var adData = adEvent.getAdData();
console.log(adData);
if (!ad.isLinear())
{
// show game content
onMediaEnd();
}
else
{
// Ad is being shown, lets do nothing for now...
}
});
try
{
adsManager.init(640, 480, google.ima.ViewMode.NORMAL);
adsManager.start();
}
catch (adError)
{
// this is currently where the ad keeps failing!
console.log(adError);
onMediaEnd();
}
}
var adsRequest = new google.ima.AdsRequest();
adsRequest.adTagUrl = '<?=$adsenseVASTURL?>';
adsRequest.linearAdSlotWidth = 640;
adsRequest.linearAdSlotHeight = 480;
adsRequest.nonLinearAdSlotHeight = 480;
adsRequest.nonLinearAdSlotWidth = 640;
adsRequest.forceNonLinearFullSlot = true;
/*adsRequest.setAdWillAutoPlay(false);
adsRequest.setAdWillPlayMuted(true);*/
adsLoader.requestAds(adsRequest);
</script>
Используя это:
https://github.com/googleads/googleads-ima-html5
https://developers.google.com/interactive-media-ads/docs/sdks/html5/v3/apis
1 ответ
Я точно так же столкнулся с моими онлайн-играми (десктоп). Удивительно, но я смог снова запустить видеообъявления после добавления
adDisplayContainer.initialize();
хотя в документах говорится, что этот метод не влияет на настольные платформы...
var adVideoContainer = document.getElementById('ad-video');
var adDisplayContainer = new google.ima.AdDisplayContainer(adVideoContainer);
var adsLoader = new google.ima.AdsLoader(adDisplayContainer);
adDisplayContainer.initialize();