在纵向方向上获取横向AdMob插页式广告

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在纵向方向上获取横向AdMob插页式广告相关的知识,希望对你有一定的参考价值。

我正在开发的游戏应用程序使用传感器管理其方向,并且始终处于纵向模式,使用onCreate()方法中的这行代码:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

我已经实现了AdMob非页内广告,但它们似乎总是以纵向模式显示,可能是因为应用程序认为它处于纵向模式,因为我正在管理游戏代码中的屏幕旋转。

由于我使用传感器,我确切地知道我的设备在哪个方向,我有没有办法从AdMob请求横向广告?

答案

如果应用程序仍然调用viewWillTransition函数,那很容易。

只需覆盖该函数并正常使用Interstitial Ads guideline from Google中的createAndLoadInterstitial。

每次旋转设备时,都会请求新的插页式广告。但是当屏幕上已显示插页式广告时,它无效。

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
        interstitial = createAndLoadInterstitial()
    }

func createAndLoadInterstitial() -> GADInterstitial {
        interstitial = GADInterstitial(adUnitID: GlobalConstants.interstitialAdUnitID)
        interstitial.delegate = self
        interstitial.load(GADRequest())
        return interstitial
    }

作为一方的提示。引入一个在调试(测试广告)和发布(生产广告)之间动态切换AdUnitID的类:

class GlobalConstants {
    static var interstitialAdUnitID: String {
        #if DEBUG
        return "ca-app-pub-3940256099942544/4411468910"
        #else
        return "Production-AdUnitID"
        #endif
    }
}

以上是关于在纵向方向上获取横向AdMob插页式广告的主要内容,如果未能解决你的问题,请参考以下文章

插页式 Admob 广告:“IllegalStateException:只有全屏活动可以请求方向”

Admob - 如何暂停插页式广告

正在等待Admob插页式广告加载

AdMob - 同一活动中的横幅和插页式广告 - 好不好?

如何停用Admob插页式广告?

RecycleViewerAdapter 未完美显示 admob 插页式广告