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  全栈测试之路  阅读(420)  评论(0编辑  收藏  举报

导航