I'm trying to integrate ima extension module for playing ads using VAST tag.
I've looked into integration guide in blog(https://medium.com/google-exoplayer/playing-ads-with-exoplayer-and-ima-868dfd767ea), and it says
AdsMediaSource constructs a new source that inserts ads linearly with the content specified by contentMediaSource
I want to only play ad video without content video combined, but it seems that passing content media source is not optional.
How can I achieve it using Exoplayer IMA extension?
Or should I just use google IMA SDK instead of extension module to achieve this?
Interesting question. It's not a use case the IMA extension is designed to support. @andrewlewis - How difficult would it be to support this case?
I'll look into this soon. It may be very easy to support for the case of just playing a preroll or VAST ad tag, but I haven't tried it yet.
@andrewlewis for now i have just a hacked solution. when ad playing end it throws playererror FileDataSourceException because i have given empty string on content url so i can get that ad is now end playing.
Any updates here?
I have this log for same integration, but what I would expect is that AdEventType.COMPLETED would be called after Ad has finished, instead of AdEventType.PAUSED
15:08:17.132 D/ImaAdsLoader: Initialized with ads rendering settings: AdsRenderingSettings [bitrate=-1, mimeTypes=[application/dash+xml, application/x-mpegURL, video/mp4, video/webm, video/3gpp, video/mpeg, audio/mp4, audio/mpeg], uiElements=null, enablePreloading=true, playAdsAfterTime=-1.0]
15:08:17.234 D/ImaAdsLoader: onAdEvent: LOADED
15:08:17.238 D/ImaAdsLoader: handleAdEvent() called with: adEvent = [AdEvent[type=LOADED, ad=Ad [adId=258714333280, creativeId=267341533816, creativeAdId=, universalAdIdValue=unknown, universalAdIdRegistry=unknown, title=video, description=video ad, contentType=video/webm, adWrapperIds=[], adWrapperSystems=[], adWrapperCreativeIds=[], adSystem=AdSense, advertiserName=, surveyUrl=null, dealId=, linear=true, skippable=false, width=0, height=0, traffickingParameters=, clickThroughUrl=https://googleads.g.doubleclick.net/aclk?sa=L&ai=CCiygUc7wWqWnGdOYlAPRrL-wC_LJl8FR4ODN5MMHChABIL2woyJgyfb4hoCAoBnIAQWoAwGYBACqBKcBT9DJkhFy4sdMGm9ggNPoSQtgbhnWyBggOEESnwx2ooizePhQamY671ZFP5B0GfD7E9qXK18kbCPH4bbuvU3sI4Ayxw6OPUd7g1HX9nSXDl5bQv0adfqeVTMFVHxRcHq3SiNYooFRT1uOTppVHvmUPtIARmTvK6Xx7TySO9QwGVycwuEuRpxX0l0PRkbLYZ5K5NCwjzCe_3OlMP4OUulsVBSre1wdK0nABOfivc_HAYgF1vCTkgWQBgGgBhzYBgKAB9yssGuoB47OG6gH1ckbqAf3zBuoB6a-G9gHAaAInqKnBLAIDtIIBwiAYRABGAOxCWV-npATle2FgAoDuBP0A9gTA4IUEBoOd3d3LnR1bmVpbi5jb20&num=1&cid=CAASEuRoNaQ85C-gV7Q0JQtpiWOkGw&sig=AOD64_0hqyR5qpGlpO18KLvGBIdaVoeSrw&client=ca-video-pub-1075310851762143&adurl=https://ad.doubleclick.net/ddm/clk/418151586%3B219817188%3Bt, duration=7.0, adPodInfo=AdPodInfo [totalAds=1, adPosition=1, isBumper=false, maxDuration=7.0, podIndex=0, timeOffset=0.0], uiElements=[], disableUi=false, skipTimeOffset=-1.0]]]
15:08:17.255 D/ImaAdsLoader: Loaded ad 1 of 1 in group 0
15:08:17.287 D/ImaAdsLoader: loadAd in ad group 0
15:08:17.809 D/ImaAdsLoader: onAdEvent: CONTENT_PAUSE_REQUESTED
15:08:17.811 D/ImaAdsLoader: handleAdEvent() called with: adEvent = [AdEvent[type=CONTENT_PAUSE_REQUESTED, ad=Ad [adId=258714333280, creativeId=267341533816, creativeAdId=, universalAdIdValue=unknown, universalAdIdRegistry=unknown, title=video, description=video ad, contentType=video/webm, adWrapperIds=[], adWrapperSystems=[], adWrapperCreativeIds=[], adSystem=AdSense, advertiserName=, surveyUrl=null, dealId=, linear=true, skippable=false, width=0, height=0, traffickingParameters=, clickThroughUrl=https://googleads.g.doubleclick.net/aclk?sa=L&ai=CCiygUc7wWqWnGdOYlAPRrL-wC_LJl8FR4ODN5MMHChABIL2woyJgyfb4hoCAoBnIAQWoAwGYBACqBKcBT9DJkhFy4sdMGm9ggNPoSQtgbhnWyBggOEESnwx2ooizePhQamY671ZFP5B0GfD7E9qXK18kbCPH4bbuvU3sI4Ayxw6OPUd7g1HX9nSXDl5bQv0adfqeVTMFVHxRcHq3SiNYooFRT1uOTppVHvmUPtIARmTvK6Xx7TySO9QwGVycwuEuRpxX0l0PRkbLYZ5K5NCwjzCe_3OlMP4OUulsVBSre1wdK0nABOfivc_HAYgF1vCTkgWQBgGgBhzYBgKAB9yssGuoB47OG6gH1ckbqAf3zBuoB6a-G9gHAaAInqKnBLAIDtIIBwiAYRABGAOxCWV-npATle2FgAoDuBP0A9gTA4IUEBoOd3d3LnR1bmVpbi5jb20&num=1&cid=CAASEuRoNaQ85C-gV7Q0JQtpiWOkGw&sig=AOD64_0hqyR5qpGlpO18KLvGBIdaVoeSrw&client=ca-video-pub-1075310851762143&adurl=https://ad.doubleclick.net/ddm/clk/418151586%3B219817188%3Bt, duration=7.0, adPodInfo=AdPodInfo [totalAds=1, adPosition=1, isBumper=false, maxDuration=7.0, podIndex=0, timeOffset=0.0], uiElements=[], disableUi=false, skipTimeOffset=-1.0]]]
15:08:17.811 D/ImaAdsLoader: handleAdEvent: CONTENT_PAUSE_REQUESTED
15:08:17.878 D/ImaAdsLoader: playAd
15:08:19.641 D/ImaAdsLoader: onAdEvent: STARTED
15:08:19.643 D/ImaAdsLoader: handleAdEvent() called with: adEvent = [AdEvent[type=STARTED, ad=Ad [adId=258714333280, creativeId=267341533816, creativeAdId=, universalAdIdValue=unknown, universalAdIdRegistry=unknown, title=video, description=video ad, contentType=video/webm, adWrapperIds=[], adWrapperSystems=[], adWrapperCreativeIds=[], adSystem=AdSense, advertiserName=, surveyUrl=null, dealId=, linear=true, skippable=false, width=0, height=0, traffickingParameters=, clickThroughUrl=https://googleads.g.doubleclick.net/aclk?sa=L&ai=CCiygUc7wWqWnGdOYlAPRrL-wC_LJl8FR4ODN5MMHChABIL2woyJgyfb4hoCAoBnIAQWoAwGYBACqBKcBT9DJkhFy4sdMGm9ggNPoSQtgbhnWyBggOEESnwx2ooizePhQamY671ZFP5B0GfD7E9qXK18kbCPH4bbuvU3sI4Ayxw6OPUd7g1HX9nSXDl5bQv0adfqeVTMFVHxRcHq3SiNYooFRT1uOTppVHvmUPtIARmTvK6Xx7TySO9QwGVycwuEuRpxX0l0PRkbLYZ5K5NCwjzCe_3OlMP4OUulsVBSre1wdK0nABOfivc_HAYgF1vCTkgWQBgGgBhzYBgKAB9yssGuoB47OG6gH1ckbqAf3zBuoB6a-G9gHAaAInqKnBLAIDtIIBwiAYRABGAOxCWV-npATle2FgAoDuBP0A9gTA4IUEBoOd3d3LnR1bmVpbi5jb20&num=1&cid=CAASEuRoNaQ85C-gV7Q0JQtpiWOkGw&sig=AOD64_0hqyR5qpGlpO18KLvGBIdaVoeSrw&client=ca-video-pub-1075310851762143&adurl=https://ad.doubleclick.net/ddm/clk/418151586%3B219817188%3Bt, duration=7.0, adPodInfo=AdPodInfo [totalAds=1, adPosition=1, isBumper=false, maxDuration=7.0, podIndex=0, timeOffset=0.0], uiElements=[UiElementImpl[name=adAttribution], UiElementImpl[name=countdown]], disableUi=false, skipTimeOffset=-1.0]]]
15:08:21.070 D/ImaAdsLoader: onAdEvent: FIRST_QUARTILE
15:08:21.072 D/ImaAdsLoader: handleAdEvent() called with: adEvent = [AdEvent[type=FIRST_QUARTILE, ad=Ad [adId=258714333280, creativeId=267341533816, creativeAdId=, universalAdIdValue=unknown, universalAdIdRegistry=unknown, title=video, description=video ad, contentType=video/webm, adWrapperIds=[], adWrapperSystems=[], adWrapperCreativeIds=[], adSystem=AdSense, advertiserName=, surveyUrl=null, dealId=, linear=true, skippable=false, width=0, height=0, traffickingParameters=, clickThroughUrl=https://googleads.g.doubleclick.net/aclk?sa=L&ai=CCiygUc7wWqWnGdOYlAPRrL-wC_LJl8FR4ODN5MMHChABIL2woyJgyfb4hoCAoBnIAQWoAwGYBACqBKcBT9DJkhFy4sdMGm9ggNPoSQtgbhnWyBggOEESnwx2ooizePhQamY671ZFP5B0GfD7E9qXK18kbCPH4bbuvU3sI4Ayxw6OPUd7g1HX9nSXDl5bQv0adfqeVTMFVHxRcHq3SiNYooFRT1uOTppVHvmUPtIARmTvK6Xx7TySO9QwGVycwuEuRpxX0l0PRkbLYZ5K5NCwjzCe_3OlMP4OUulsVBSre1wdK0nABOfivc_HAYgF1vCTkgWQBgGgBhzYBgKAB9yssGuoB47OG6gH1ckbqAf3zBuoB6a-G9gHAaAInqKnBLAIDtIIBwiAYRABGAOxCWV-npATle2FgAoDuBP0A9gTA4IUEBoOd3d3LnR1bmVpbi5jb20&num=1&cid=CAASEuRoNaQ85C-gV7Q0JQtpiWOkGw&sig=AOD64_0hqyR5qpGlpO18KLvGBIdaVoeSrw&client=ca-video-pub-1075310851762143&adurl=https://ad.doubleclick.net/ddm/clk/418151586%3B219817188%3Bt, duration=7.0, adPodInfo=AdPodInfo [totalAds=1, adPosition=1, isBumper=false, maxDuration=7.0, podIndex=0, timeOffset=0.0], uiElements=[UiElementImpl[name=adAttribution], UiElementImpl[name=countdown]], disableUi=false, skipTimeOffset=-1.0]]]
15:08:22.394 D/ImaAdsLoader: onAdEvent: MIDPOINT
15:08:22.396 D/ImaAdsLoader: handleAdEvent() called with: adEvent = [AdEvent[type=MIDPOINT, ad=Ad [adId=258714333280, creativeId=267341533816, creativeAdId=, universalAdIdValue=unknown, universalAdIdRegistry=unknown, title=video, description=video ad, contentType=video/webm, adWrapperIds=[], adWrapperSystems=[], adWrapperCreativeIds=[], adSystem=AdSense, advertiserName=, surveyUrl=null, dealId=, linear=true, skippable=false, width=0, height=0, traffickingParameters=, clickThroughUrl=https://googleads.g.doubleclick.net/aclk?sa=L&ai=CCiygUc7wWqWnGdOYlAPRrL-wC_LJl8FR4ODN5MMHChABIL2woyJgyfb4hoCAoBnIAQWoAwGYBACqBKcBT9DJkhFy4sdMGm9ggNPoSQtgbhnWyBggOEESnwx2ooizePhQamY671ZFP5B0GfD7E9qXK18kbCPH4bbuvU3sI4Ayxw6OPUd7g1HX9nSXDl5bQv0adfqeVTMFVHxRcHq3SiNYooFRT1uOTppVHvmUPtIARmTvK6Xx7TySO9QwGVycwuEuRpxX0l0PRkbLYZ5K5NCwjzCe_3OlMP4OUulsVBSre1wdK0nABOfivc_HAYgF1vCTkgWQBgGgBhzYBgKAB9yssGuoB47OG6gH1ckbqAf3zBuoB6a-G9gHAaAInqKnBLAIDtIIBwiAYRABGAOxCWV-npATle2FgAoDuBP0A9gTA4IUEBoOd3d3LnR1bmVpbi5jb20&num=1&cid=CAASEuRoNaQ85C-gV7Q0JQtpiWOkGw&sig=AOD64_0hqyR5qpGlpO18KLvGBIdaVoeSrw&client=ca-video-pub-1075310851762143&adurl=https://ad.doubleclick.net/ddm/clk/418151586%3B219817188%3Bt, duration=7.0, adPodInfo=AdPodInfo [totalAds=1, adPosition=1, isBumper=false, maxDuration=7.0, podIndex=0, timeOffset=0.0], uiElements=[UiElementImpl[name=adAttribution], UiElementImpl[name=countdown]], disableUi=false, skipTimeOffset=-1.0]]]
15:08:24.039 D/ImaAdsLoader: onAdEvent: THIRD_QUARTILE
15:08:24.041 D/ImaAdsLoader: handleAdEvent() called with: adEvent = [AdEvent[type=THIRD_QUARTILE, ad=Ad [adId=258714333280, creativeId=267341533816, creativeAdId=, universalAdIdValue=unknown, universalAdIdRegistry=unknown, title=video, description=video ad, contentType=video/webm, adWrapperIds=[], adWrapperSystems=[], adWrapperCreativeIds=[], adSystem=AdSense, advertiserName=, surveyUrl=null, dealId=, linear=true, skippable=false, width=0, height=0, traffickingParameters=, clickThroughUrl=https://googleads.g.doubleclick.net/aclk?sa=L&ai=CCiygUc7wWqWnGdOYlAPRrL-wC_LJl8FR4ODN5MMHChABIL2woyJgyfb4hoCAoBnIAQWoAwGYBACqBKcBT9DJkhFy4sdMGm9ggNPoSQtgbhnWyBggOEESnwx2ooizePhQamY671ZFP5B0GfD7E9qXK18kbCPH4bbuvU3sI4Ayxw6OPUd7g1HX9nSXDl5bQv0adfqeVTMFVHxRcHq3SiNYooFRT1uOTppVHvmUPtIARmTvK6Xx7TySO9QwGVycwuEuRpxX0l0PRkbLYZ5K5NCwjzCe_3OlMP4OUulsVBSre1wdK0nABOfivc_HAYgF1vCTkgWQBgGgBhzYBgKAB9yssGuoB47OG6gH1ckbqAf3zBuoB6a-G9gHAaAInqKnBLAIDtIIBwiAYRABGAOxCWV-npATle2FgAoDuBP0A9gTA4IUEBoOd3d3LnR1bmVpbi5jb20&num=1&cid=CAASEuRoNaQ85C-gV7Q0JQtpiWOkGw&sig=AOD64_0hqyR5qpGlpO18KLvGBIdaVoeSrw&client=ca-video-pub-1075310851762143&adurl=https://ad.doubleclick.net/ddm/clk/418151586%3B219817188%3Bt, duration=7.0, adPodInfo=AdPodInfo [totalAds=1, adPosition=1, isBumper=false, maxDuration=7.0, podIndex=0, timeOffset=0.0], uiElements=[UiElementImpl[name=adAttribution], UiElementImpl[name=countdown]], disableUi=false, skipTimeOffset=-1.0]]]
15:08:25.295 D/ImaAdsLoader: pauseAd
15:08:25.358 D/ImaAdsLoader: onAdEvent: PAUSED
I followed up with the IMA team about this. They recommended using the Google Mobile Ads SDK for Android to play video ads without a content video.
Regarding the workaround mentioned above, it may be the case that IMA is pausing playback of the ad because the content position/duration returned from getContentProgress is unset as the ad is finishing. Adding some logging there may help you figure out what's going on.
Closing as AdMob is the recommended way to do this.
Most helpful comment
@andrewlewis for now i have just a hacked solution. when ad playing end it throws playererror FileDataSourceException because i have given empty string on content url so i can get that ad is now end playing.