代码之家  ›  专栏  ›  技术社区  ›  Adem

如何使我的间隙广告弹出后,点击x数量?

  •  0
  • Adem  · 技术社区  · 6 年前

    我有这个代码,它在Objective-C中工作,但在我将其转换为Swift时不起作用。我想做的是在每15次点击后弹出一则广告。

    import UIKit
    import Firebase
    import AVFoundation
    
    class Page1: UIViewController, AVAudioPlayerDelegate, GADInterstitialDelegate, UIAlertViewDelegate {
        
        var interstitial: GADInterstitial!
        
        var counter: Int = 0
    
        @IBOutlet weak var scrollView: UIScrollView!
        @IBOutlet weak var pageControl: UIPageControl!
    
    
        override func viewDidLoad() {
            super.viewDidLoad()
            self.view.backgroundColor = UIColor(patternImage: UIImage(named: "6splash.png")!)
    
        
        }
    
    
        @IBAction func playAgain(_ sender: Any) {
            if counter % 15 == 0 {
                if interstitial?.isReady != nil {
                    interstitial?.present(fromRootViewController: self)
                }
                else {
                    
                }
            }
            counter += 1
        }
        
        func createAndLoadInterstitial() {
            interstitial = GADInterstitial(adUnitID: "ca-app-pub-3940256099942544/1033173712")
            interstitial?.delegate = self
            let request = GADRequest()
            interstitial?.load(request)
        }
        
        func interstitial(_ interstitial: GADInterstitial, didFailToReceiveAdWithError error: GADRequestError) {
            print("interstitialDidFailToReceiveAdWithError: \(error.localizedDescription)")
        }
        
        func interstitialDidDismissScreen(_ interstitial: GADInterstitial) {
            print("interstitialDidDismissScreen")
            createAndLoadInterstitial()
        }
    
    }

    我遵循了谷歌的教程,获得了一个间隙显示,这是可行的,但这是为了让它每次弹出。当我尝试我的实现时,它根本不显示广告。我错过了什么?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Adem    6 年前

    算了吧!造成问题的不是var计数器,而是AdMob代码。我的AdMob缓存了一个广告并显示了一次,然后没有缓存/创建新的广告,因此无论是否使用计数器,它都只会显示一个广告。我遵循了一个视频教程(Geeky Lemon),该教程向我展示了如何正确缓存和加载广告。然后,我重新启用了我的var计数器代码,一切都正常工作。它每点击15次就会显示一则广告。这是代码。

    class Page1: UIViewController, AVAudioPlayerDelegate, GADInterstitialDelegate, UIAlertViewDelegate {
        
        
        
        var interstitial: GADInterstitial!
        
        var counter: Int = 0
        
    
        @IBOutlet weak var scrollView: UIScrollView!
        @IBOutlet weak var pageControl: UIPageControl!
        
        
           override func viewDidLoad() {
            super.viewDidLoad()
            self.view.backgroundColor = UIColor(patternImage: UIImage(named: "6splash.png")!)
            
            interstitial = GADInterstitial(adUnitID: "ca-app-pub-3940256099942544/4411468910")
            
            let request = GADRequest()
            interstitial.load(request)
            
    
        }
    
     
      
        @IBAction func playAgain(_ sender: Any) {
            if counter % 15 == 0 {
                if interstitial.isReady {
                    interstitial.present(fromRootViewController: self)
                    interstitial = CreateAd()
                } else {
                    print("Ad wasn't ready")
                }
            }
            counter += 1
        }
    
        
    
       }
    
    func CreateAd() -> GADInterstitial {
        let interstitial = GADInterstitial(adUnitID: "ca-app-pub-3940256099942544/4411468910")
        interstitial.load(GADRequest())
        return interstitial
    }

    简直挣扎了好几天。原来我一直在看错误的地方。我确信这一定是var计数器,因为我转换了objective-c中的这些代码片段,并遵循了Google自己的Swift教程,学习如何集成他们的sdk。我只是加载了一个广告,所以我认为柜台坏了。