iOS IMA SDK - 关闭应用内浏览器后视频未恢复(单击了解更多后)

Posted

技术标签:

【中文标题】iOS IMA SDK - 关闭应用内浏览器后视频未恢复(单击了解更多后)【英文标题】:iOS IMA SDK - Video not resuming after closing the In-app browser (After clicking Learn More) 【发布时间】:2020-12-15 17:46:21 【问题描述】:

我正在使用 IMA SDK 播放 VAST 广告。广告视频播放完美,但当我点击视频广告中的“了解更多”按钮时,会打开应用内浏览器。在该窗口中单击“完成”后,视频广告不会恢复。我应该在这里添加一些东西来恢复它吗?我相信 SDK 会处理这种情况。

【问题讨论】:

【参考方案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
    


【讨论】:

【参考方案2】:

这个想法是让用户在您的应用重新获得焦点时恢复广告。请记住,用户可能会忘记应用程序在后台,因此一旦获得焦点,用户可能会惊讶地听到应用程序发出广告。

    在 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()
        
    

【讨论】:

你也可以实现IMAWebOpenerDelegate 在浏览器关闭时收听恢复developers.google.com/interactive-media-ads/docs/sdks/ios/…

以上是关于iOS IMA SDK - 关闭应用内浏览器后视频未恢复(单击了解更多后)的主要内容,如果未能解决你的问题,请参考以下文章

Adsense 游戏 IMA SDK HTML5 播放错误

使用 IMA sdk 创建无限大播放的最佳方法是啥?

IMA SDK HTML5 视频播放器控件未显示

Android IMA SDK“了解更多”自定义点击监听

使用 admob 展示广告后,无法在 iOS 设备上的 ionic 应用程序的 iframe 内播放嵌入的 youtube 视频

为 Swift 更新适用于 iOS 14 的 Google IMA SDK 隐私政策