当前位置: 首页 > 知识库问答 >
问题:

Swift(SpriteKit)/AdMob-间隙式Ads请求错误

谢璞
2023-03-14

在AdMob中,当我调用插屏广告时,日志会得到“请求错误:不会发送请求,因为已使用间隙对象”。

我怎样才能修复它?

我的代码是:

//
//  GameViewController.swift//
//


class GameViewController: UIViewController, GADInterstitialDelegate {

    var interstitial: GADInterstitial!

    override func viewDidLoad() {
        super.viewDidLoad()

        PlayGame()

        interstitial = createAndLoadInterstitial()
        interstitial.delegate = self 

    }

    func PlayGame() {
        if let view = self.view as! SKView? {
            if let scene = MainMenu(fileNamed: "MainMenu") {
                scene.scaleMode = .aspectFit
                view.presentScene(scene)
            }

            view.ignoresSiblingOrder = false
            view.showsFPS = false
            view.showsNodeCount = false
        }
    }


    override func viewWillLayoutSubviews() {
        NotificationCenter.default.addObserver(self, selector: #selector(self.interstitialAdShow), name: NSNotification.Name(rawValue: "showGecisAd"), object: nil)
    }


    func createAndLoadInterstitial() -> GADInterstitial {
        var interstitial = GADInterstitial(adUnitID: "ca-app-pub-3940256099942544/4411468910")
        interstitial.delegate = self
        var request = GADRequest()
        request.testDevices = [kGADSimulatorID]
        interstitial.load(request)
        return interstitial
    }

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


    @objc func interstitialAdShow() {

        if interstitial.isReady {
            interstitial.present(fromRootViewController: self)
        } else {
            print("Ad wasn't ready")
        }
    }

共有1个答案

都超英
2023-03-14

我相信您的广告没有显示是因为广告错误,所以您再次使用相同的实例!如果这是真的,那么这将起作用:

func interstitial(_ ad: GADInterstitial, didFailToReceiveAdWithError error: GADRequestError {
    // you should add a delay here because if the user’s internet connection is disconnected you’ll get this called too many times too frequently
    interstitial = createAndLoadInterstitial()
}

但是如果您确实看到了您的ad,那么您的委托方法InterstitalIDDISMISSScreen没有被调用,请检查原因

祝你好运

 类似资料:
  • 这相当长,但可能是一个非常容易修复的问题。大部分都是代码,只需跳到底部,就会有一个tl;博士 嘿,所以我已经遵循了大约10个关于让Admob间质在我的Swift Spritekit游戏中工作的教程。除了我看到的所有教程都使用带有按钮的IBAction。目前,我希望广告每隔一段时间在菜单上弹出一次。(只是为了开始,我可能会在以后更改它)。这一切都非常完美,但是一旦我点击播放按钮(进入不同的场景),然

  • 今天我注册了adMob,开始在我的应用程序中制作adMob广告。第一个是一个游戏(带有viewcontrollers),我想在游戏结束后在屏幕上显示一个间隙广告,所以我想在游戏结束后加载间隙广告(只有在游戏结束后才能访问此视图,并且游戏持续一分钟,所以它不应该出现得太频繁) 我看过很多教程,在youtube和admob网站上,我有很多问题,比如:即使我导入了它,也找不到admob框架,我在构建时禁

  • 我正在遵循本教程 到目前为止,当我点击按钮时,它就可以工作了。然而,我似乎无法让它在viewDidLoad上显示中间广告。 这就是我所拥有的: 控制台不断向我显示: 2016-02-04 22:27:51.855 GoogleAdamObjutorial[3394:56415]要获取此设备上的测试广告,请致电:request。testDevices=@[kGADSimulatorID]; 单击按钮

  • 我怀疑Admob中间代码在我的应用程序中的实现方式是否正确。 目标是显示插页广告时,按下按钮,是在主活动打开活动2。 示例MainActivity(按钮) 代码工作正常,但是否正确?。 另一个与节目有关的问题(…):我看过这两个版本 哪一个最好? 对不起,我刚开始,有点迷路了。 谢谢你的回答。

  • 我正在尝试在ios上实施Admob插播广告。 这是我到目前为止所拥有的,这是我第一次接触目标-c,所以请善良。 在玩家死亡并单击重新启动按钮后,我在游戏中调用ShowAd()。目前,\u interstitalad。isReady不会像真的那样回来。 这是我开始使用的文档https://developers.google.com/mobile-ads-sdk/docs/admob/advanced

  • 我正在尝试使用静态类加载Admob间隙广告,以便在方便的时间内显示它。 我创建了一个加载间隙的方法: 然后在我的ViewController中: 这是第一次工作,但之后我在Interstitual中遇到以下错误。DidFailToReceiveAd: 不会发送请求,因为已使用间隙对象 如何修复它?