【问题标题】:show AdMob interstitial ads without button click ios显示 AdMob 插页式广告,无需点击按钮 ios
【发布时间】:2017-08-27 13:22:44
【问题描述】:

我用 Xcode (swift) 制作了一个应用程序,并且我已经在应用程序中实现了 AdMob 插页式广告,但我知道显示广告的唯一方法是单击按钮,广告就会显示,我想在 webView 中显示广告而不需要任何按钮点击,就像有人在几秒钟后向下滚动时会弹出广告。这可能吗?

这是我目前正在使用的

 var interstital: GADInterstitial!

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.


    interstital = GADInterstitial(adUnitID: "")

    let request = GADRequest()
    interstital.load(request)
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

@IBAction func Ad(_ sender: Any) {

    if (interstital.isReady) {

        interstital.present(fromRootViewController: self)
        interstital = CreateAd()
    }

}



func CreateAd() -> GADInterstitial {

    let interstital = GADInterstitial (adUnitID: "")
    interstital.load(GADRequest())
    return interstital
}

【问题讨论】:

    标签: ios swift xcode firebase admob


    【解决方案1】:

    为此,您可以使用计时器,它允许您在一段时间后执行函数CreateAd()。在下面的示例中,我让它在 20-200 秒后显示插页式广告。要更改最小和最大间隔,只需更改这些数字。我还删除了每次重新声明插页式广告的部分,因为在viewDidLoad 中设置一次就足够了。

    class YourViewController: UIViewController {
        var interstital: GADInterstitial!
    
        override func viewDidLoad() {
           super.viewDidLoad()
           interstital = GADInterstitial(adUnitID: "")
    
           let request = GADRequest()
           interstital.load(request)
    
           let randomTime = Double(arc4random() + 20).truncatingRemainder(dividingBy: 200.0) 
           Timer.scheduledTimer(timeInterval: randomTime, target: self, selector: #selector(YourViewController.CreateAd), userInfo: nil, repeats: false)
    
    
        }
        func CreateAd() -> GADInterstitial {
    
            if (interstital.isReady) {
    
                interstital.present(fromRootViewController: self)
                let randomTime = Double(arc4random() + 20).truncatingRemainder(dividingBy: 200.0)
                Timer.scheduledTimer(timeInterval: randomTime, target: self, selector: #selector(YourViewController.CreateAd), userInfo: nil, repeats: false)
            }
        }
    }
    

    我不得不嵌套计时器,而不是将 repeats 设置为 true 以使每次间隔随机。

    【讨论】:

    • 先生您好,但我看到错误,无法将类型“Timeinterval.Type”(又名“Double.Type”)的值转换为预期的参数类型“'Timeinterval”(又名“Double”)跨度>
    • 首先对我迟到的回复感到抱歉。我看到我忘了更新最后一行,答案现在应该可以了。
    【解决方案2】:

    使用计时器,这是目标 c 的实现。一旦添加关闭,这里新的随机计时器将在 20 秒到 200 秒内触发。

    self.interstitial = [self createAndLoadInterstitial];
    
    double time = (arc4random() % 200) + 20;
    [NSTimer scheduledTimerWithTimeInterval:time target:self selector:@selector(showAdIfReady) userInfo:nil repeats:NO];
    
    - (void)showAdIfReady {
        if (self.interstitial.isReady) {
            [self.interstitial presentFromRootViewController:self];
    
        } else {
            NSLog(@"Ad wasn't ready");
        }
    
    }
    
    - (void)interstitialDidDismissScreen:(GADInterstitial *)interstitial {
        self.interstitial = [self createAndLoadInterstitial];
        double time = (arc4random() % 200) + 20;
        [NSTimer scheduledTimerWithTimeInterval:time target:self selector:@selector(showAdIfReady) userInfo:nil repeats:NO];
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多