nolang

swift使用google admod的横幅,插页式,激励式广告示例

广告都是代码创建的,代码如下:


import UIKit
import GoogleMobileAds

class ViewController: UIViewController ,GADBannerViewDelegate ,GADInterstitialDelegate ,GADRewardBasedVideoAdDelegate {

var number = 0

var bannerView: GADBannerView!

var bannerView2: GADBannerView!

var interstitial: GADInterstitial!
@IBAction func jili_onClick(_ sender: Any) {

if GADRewardBasedVideoAd.sharedInstance().isReady == true {
GADRewardBasedVideoAd.sharedInstance().present(fromRootViewController: self)
}

}

@IBAction func onClick(_ sender: Any) {

number = number + 1

if number > 2 {
//提示本日次数已用完, 需要点击激励广告选项,可以增加2次
addTips()

} else {
//弹个插页广告,然后执行正常流程
if interstitial.isReady {
interstitial.present(fromRootViewController: self)
} else {
print("Ad wasn't ready")
}
}

}

override func viewDidLoad() {
super.viewDidLoad()

//底部横幅广告
bannerView = GADBannerView(adSize: kGADAdSizeBanner)
bannerView.adUnitID = "ca-app-pub-3940256099942544/2934735716"
bannerView.rootViewController = self
bannerView.load(GADRequest())
bannerView.delegate = self
addBannerViewToView(bannerView)

//顶部横幅广告
bannerView2 = GADBannerView(adSize: kGADAdSizeBanner)
bannerView2.adUnitID = "ca-app-pub-3940256099942544/2934735716"
bannerView2.rootViewController = self
bannerView2.load(GADRequest())
bannerView2.delegate = self
addBannerViewToViewTop(bannerView2)

//插页式广告
interstitial = createAndLoadInterstitial()

//激励式广告
GADRewardBasedVideoAd.sharedInstance().delegate = self
GADRewardBasedVideoAd.sharedInstance().load(GADRequest(),
withAdUnitID: "ca-app-pub-3940256099942544/1712485313")

}

//激励式广告
//看完广告后会得到的奖励在这里处理,这里例子是会把number清零
func rewardBasedVideoAd(_ rewardBasedVideoAd: GADRewardBasedVideoAd,
didRewardUserWith reward: GADAdReward) {
self.number = 0
}

func rewardBasedVideoAdDidClose(_ rewardBasedVideoAd: GADRewardBasedVideoAd) {
GADRewardBasedVideoAd.sharedInstance().load(GADRequest(),
withAdUnitID: "ca-app-pub-3940256099942544/1712485313")
}

//提示框
func addTips() {

let alertController = UIAlertController(title: "系统提示",
message: "今日次数已用尽,点击Yes观看一个视频广告,奖励占卜2次", preferredStyle: .alert)

let yesAction = UIAlertAction(title: "Yes", style: .default, handler: {
action in
//已用次数清0

if GADRewardBasedVideoAd.sharedInstance().isReady == true {
GADRewardBasedVideoAd.sharedInstance().present(fromRootViewController: self)
}

})

let noAction = UIAlertAction(title: "No", style: .cancel) {
(UIAlertAction) -> Void in

//点击no,弹个插页广告
if self.interstitial.isReady {
self.interstitial.present(fromRootViewController: self)
} else {
print("Ad wasn't ready")
}

}

alertController.addAction(yesAction)
alertController.addAction(noAction)

self.present(alertController, animated: true, completion: nil)

}

//插页式广告
func createAndLoadInterstitial() -> GADInterstitial {
var interstitial = GADInterstitial(adUnitID: "ca-app-pub-3940256099942544/4411468910")
interstitial.delegate = self
interstitial.load(GADRequest())
return interstitial
}

func interstitialDidDismissScreen(_ ad: GADInterstitial) {
interstitial = createAndLoadInterstitial()
}

//底部横幅广告
func addBannerViewToView(_ bannerView: GADBannerView) {
bannerView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(bannerView)
view.addConstraints(
[NSLayoutConstraint(item: bannerView,
attribute: .bottom,
relatedBy: .equal,
toItem: bottomLayoutGuide,
attribute: .top,
multiplier: 1,
constant: 0),
NSLayoutConstraint(item: bannerView,
attribute: .centerX,
relatedBy: .equal,
toItem: view,
attribute: .centerX,
multiplier: 1,
constant: 0)
])
}

//顶部横幅广告
func addBannerViewToViewTop(_ bannerView: GADBannerView) {
bannerView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(bannerView)
view.addConstraints(
[NSLayoutConstraint(item: bannerView,
attribute: .top,
relatedBy: .equal,
toItem: topLayoutGuide,
attribute: .bottom,
multiplier: 1,
constant: 0),
NSLayoutConstraint(item: bannerView,
attribute: .centerX,
relatedBy: .equal,
toItem: view,
attribute: .centerX,
multiplier: 1,
constant: 0)
])
}

}

执行效果:

posted on 2019-09-06 19:18  全栈测试之路  阅读(483)  评论(0)    收藏  举报

导航