在纵向模式下获取横向 AdMob 插页式广告
Getting landscape AdMob Interstitials while being in portrait orientation
我目前正在开发的游戏应用程序使用传感器管理其方向,并始终处于纵向模式,在 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
}
作为侧面的提示。引入 class 在调试(测试广告)和发布(生产广告)之间动态切换 AdUnitIDs:
class GlobalConstants {
static var interstitialAdUnitID: String {
#if DEBUG
return "ca-app-pub-3940256099942544/4411468910"
#else
return "Production-AdUnitID"
#endif
}
}
我目前正在开发的游戏应用程序使用传感器管理其方向,并始终处于纵向模式,在 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
}
作为侧面的提示。引入 class 在调试(测试广告)和发布(生产广告)之间动态切换 AdUnitIDs:
class GlobalConstants {
static var interstitialAdUnitID: String {
#if DEBUG
return "ca-app-pub-3940256099942544/4411468910"
#else
return "Production-AdUnitID"
#endif
}
}