我正在使用 IMA SDK 播放 VAST 广告。广告视频播放完美,但当我点击视频广告中的“了解更多”按钮时,会打开应用内浏览器。在该窗口中单击“完成”后,视频广告不会恢复。我应该在这里添加一些东西来恢复它吗?我相信 SDK 会处理这种情况。
问问题
459 次
2 回答
1
需要实现 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
}
}
于 2020-11-16T14:07:10.813 回答
0
这个想法是让用户在您的应用重新获得焦点时恢复广告。请记住,用户可能会忘记应用程序在后台,因此用户可能会惊讶地听到应用程序在聚焦时发出广告。
在 IMA 播放器上添加播放按钮叠加层。
为按钮添加触发器
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.添加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()
}
}
}
于 2020-09-02T16:24:47.050 回答