如何使用Swift语言显示AdMob应用打开广告?

之前,我在 iOS 应用中使用了 AdMob 的横幅广告。现在,我想展示其最新发布的开放应用广告。我查看了 AdMob 的相关网页(在此处输入链接描述),但此页面上的示例都是 OC 语言的。我不熟悉OC语言。谁能提供 Swift 语言的指导?提前致谢。

回答

OC 代码在这里:https : //developers.google.com/admob/ios/app-open-ads

下面的所有代码都转到 AppDelegate.swift

进口GoogleMobileAds

import GoogleMobileAds

在类定义中添加GADFullScreenContentDelegate

class AppDelegate: UIResponder, UIApplicationDelegate, GADFullScreenContentDelegate {

添加两个变量:

var appOpenAd: GADAppOpenAd?
var loadTime = Date()

添加这三个函数:

func requestAppOpenAd() {
    let request = GADRequest()
    GADAppOpenAd.load(withAdUnitID: "YOUR_ADUNIT_ID",
                      request: request,
                      orientation: UIInterfaceOrientation.portrait,
                      completionHandler: { (appOpenAdIn, _) in
                        self.appOpenAd = appOpenAdIn
                        self.appOpenAd?.fullScreenContentDelegate = self
                        self.loadTime = Date()
                        print("Ad is ready")
                      })
}

func tryToPresentAd() {
    if let gOpenAd = self.appOpenAd, let rwc = self.window?.rootViewController, wasLoadTimeLessThanNHoursAgo(thresholdN: 4) {
        gOpenAd.present(fromRootViewController: rwc)
    } else {
        self.requestAppOpenAd()
    }
}

func wasLoadTimeLessThanNHoursAgo(thresholdN: Int) -> Bool {
    let now = Date()
    let timeIntervalBetweenNowAndLoadTime = now.timeIntervalSince(self.loadTime)
    let secondsPerHour = 3600.0
    let intervalInHours = timeIntervalBetweenNowAndLoadTime / secondsPerHour
    return intervalInHours < Double(thresholdN)
}

最后调用tryToPresentAd()来自applicationDidBecomeActive()

func applicationDidBecomeActive(_ application: UIApplication) {
    self.tryToPresentAd()
}

就是这样。

编辑:添加需要导入 GoogleMobileAds


以上是如何使用Swift语言显示AdMob应用打开广告?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>