Иногда невозможно загрузить видео с вознаграждением - PullRequest
0 голосов
/ 27 мая 2018

Я запустил приложение для iOS, но у меня возникли проблемы с загрузкой видео объявлений с вознаграждением, используя Google Mobile Ads SDK.

Когда игрок нажимает кнопку, чтобы просмотреть видеообъявление, игроку показывается видео очень мало раз.В большинстве случаев пользователю показывается ошибка, связанная с тем, что Admob не может выполнить запрос:

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

Иногда ему требуется несколько кликов, чтобы получить один, а иногда они просто не могут получить один, нетнезависимо от того, сколько кликов.Эта проблема встречается чаще с моими вознагражденными видео, но также и с моей рекламой.Иногда Google не может предоставить мне рекламный баннер.Кто-нибудь знает, почему это не работает?

Мой код для рекламы:

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 голосов
/ 27 мая 2018

В настоящее время я работаю в одной компании, которая предоставляет множество бесплатных мобильных приложений с Admob в качестве фрилансера, так что я вполне в этом разбираюсь.

В любом случае, как я узнал от менеджера моей компании (у них там также есть консультант Google Admob), то, что показ рекламы в приложении может зависеть от страны, в которой находится пользователь.в. Например, я здесь, в Юго-Восточной Азии, а они в Европе.Я иногда сталкиваюсь с тем, что не получаю рекламные баннеры, но вместо них они всегда получают рекламу всех типов.

Пока ваш проект соответствует правилам Google Admob ( например, сделатьне показывать промежуточную рекламу за другой через короткий промежуток времени) , и вы получаете какое-то объявление хотя бы раз в то время, тогда я думаю, что у вас все хорошо.

Надеюсь, это поможет.

...