I am using IMA SDK to play VAST ads. The ad video plays perfect but when I click on 'Learn More' button in the video ad, which opens in-app browser. After click on 'Done' in that window, the video ad is not resuming. Should i add something here to resume it ? I believe the SDK would handle this situation.
Asked
Active
Viewed 991 times
2 Answers
1
Need implement IMAWebOpenerDelegate
...
var adsManager: IMAAdsManager!
...
extension ViewController: IMAWebOpenerDelegate {
func webOpenerDidClose(inAppBrowser webOpener: NSObject!) {
print("closed")
adsManager.resume()
}
func webOpenerDidOpen(inAppBrowser webOpener: NSObject!) {
// Do something
}
func webOpenerWillClose(inAppBrowser webOpener: NSObject!) {
// Do something
}
func webOpenerWillOpen(inAppBrowser webOpener: NSObject!) {
// Do something
}
func webOpenerWillOpenExternalBrowser(_ webOpener: NSObject!) {
// Do something
}
}

Ice
- 680
- 1
- 10
- 23
0
The idea is to have the user resume the Ad when your app regains focus. Keep in mind that a user might forget that the app was in the background so a user might be surprised to hear the app blaring an Ad once in focus.
Add a play button overlay on the IMA player.
Add a trigger to the button
func playBtnPress(){ // make sure adsManager is initialized guard let adsManager = adsManager else { requestAds() // initialize adsManager return } // resume playback if paused if !adsManager.adPlaybackInfo.isPlaying { adsManager.resume() } }
3.Add IMAAdsManagerDelegate
func adsManager(_ adsManager: IMAAdsManager!, didReceive event: IMAAdEvent!) {
if event.type == IMAAdEventType.LOADED {
// When the SDK notifies us that ads have been loaded, play them.
// hide play button first
playButton.isHidden = true
adsManager.start()
}
if event.type == IMAAdEventType.RESUME {
// When the SDK notifies us that ads playback has resumed from a pause
// hide play button
playButton.isHidden = true
}
if event.type == IMAAdEventType.PAUSE {
// When the SDK notifies us that ads playback is paused
// Show play button
playButton.isHidden = false
}
if event.type == IMAAdEventType.TAPPED {
// You can also add allow the user to tap anywhere on the Ad to resume play
if(!adsManager.adPlaybackInfo.isPlaying) {
adsManager.resume()
}
}
}

dawn360
- 11
- 3
-
you an also implement the `IMAWebOpenerDelegate ` to listen to resume when the browser closes https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/clickthrough#listening-for-clickthrough-related-events – dawn360 Sep 03 '20 at 16:02