有时无法加载奖励的视频广告

时间:2018-05-27 02:10:15

标签: ios swift admob ads

我推出了iOS应用,但在使用Google移动广告SDK加载奖励视频广告方面遇到了问题。

当玩家点击按钮查看视频广告时,播放器会显示几次视频。大多数情况下,用户会看到Admob无法填写请求的错误:

Error Domain=com.google.ads Code=1 "Request Error: No ad to show."

有时在获得一次之前需要多次点击,有时无论点击次数多少,他们都无法获得一次。我的奖励视频会更多地发生此问题,但我的横幅广告也会出现这种情况。有时谷歌无法向我提供横幅广告。有谁知道为什么这不起作用?

我的广告代码:

override func viewDidLoad() {
    super.viewDidLoad()
    if let view = self.view as! SKView? {
        // Load the SKScene from 'GameScene.sks'
        let scene = MainMenu(view.bounds.size, self, nil)

        scene.scaleMode = .aspectFill

        // Present the scene
        view.presentScene(scene)


        view.ignoresSiblingOrder = true

        view.showsFPS = false
        view.showsNodeCount = false
        view.showsPhysics = false

        GADRewardBasedVideoAd.sharedInstance().delegate = self
        GADRewardBasedVideoAd.sharedInstance().load(getRequest(),
                                                    withAdUnitID: rewardAdId)

        // In this case, we instantiate the banner with desired ad size.
        if GameViewController.bannerView == nil {
            GameViewController.bannerView = GADBannerView(adSize: kGADAdSizeBanner)
            GameViewController.bannerView.adUnitID = bannerId
            GameViewController.bannerView.rootViewController = self
            GameViewController.bannerView.load(getRequest())
            GameViewController.bannerView.isHidden = true

            addBannerViewToView(GameViewController.bannerView)
        }
        authenticateLocalPlayer()
        QuestManager().checkForRefresh()
    }
}

public func getRequest() -> GADRequest {
    let request = GADRequest()
    return request
}

public func displayRewardedVideo() {
    if GADRewardBasedVideoAd.sharedInstance().isReady {
        GADRewardBasedVideoAd.sharedInstance().present(fromRootViewController: self)
    } else {
        GameViewController.loadVideo()
    }
}

public static func loadVideo(){
    if !GADRewardBasedVideoAd.sharedInstance().isReady {
    GADRewardBasedVideoAd.sharedInstance().load(GADRequest(),
                                                withAdUnitID: rewardAdId)
    }
}

func rewardBasedVideoAdDidClose(_ rewardBasedVideoAd: GADRewardBasedVideoAd) {
    GADRewardBasedVideoAd.sharedInstance().load(getRequest(),
                                                withAdUnitID: rewardAdId)
    if let scene = gameScene {
        scene.audioManager.unmmute()
    }

    print("Video did close")
}

1 个答案:

答案 0 :(得分:0)

我目前在一家公司工作,该公司提供大量免费移动应用程序,Admob作为自由职业者,所以我非常擅长它。

无论如何,我从公司经理那里学到的东西(他们也有Google Admob顾问),应用程序中显示的广告可能依赖于用户所在的国家/地区。例如,我在东南亚,他们在欧洲。我有时没有收到横幅广告,但在他们的位置上,他们总是收到所有类型的广告。

只要您的项目符合Google Admob的规则(例如,不要在短时间内显示插页式广告后),您就会收到一些广告至少每次一次,我相信你做得很好。

我希望这会有所帮助。