zoukankan      html  css  js  c++  java
  • 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)
            ])
    }
    

    }

    执行效果:

  • 相关阅读:
    让我偷偷的告诉你:运维加薪的杀手锏是啥?
    网站页面优化必然趋势—WebP 图片!
    如何监控 Tomcat?Zabbix 与 Cloud Insight 对比
    网页增重不可控?试试 OneAPM Cloud Test
    提高 ASP.NET Web 应用性能的 24 种方法和技巧
    OneAlert 入门(三)——事件分析
    Cloud Insight 客户案例-晨芯时代科技有限公司
    Java开发快速上手
    微信小程序快速开发上手
    微信小程序快速开发上手
  • 原文地址:https://www.cnblogs.com/nolang/p/11477690.html
Copyright © 2011-2022 走看看