AdMob - показывать реальную рекламу в режиме отладки - PullRequest
0 голосов
/ 25 апреля 2018

Я хотел бы отобразить рекламные вставки в моем приложении. Мне удается показывать тестовые объявления. Насколько я понимаю, для показа тестовых объявлений вы должны добавить тестовые устройства, так что это то, что я делаю. Когда я удаляю тестовые устройства, я не получаю настоящую рекламу. Я бы хотел как-нибудь проверить, будут ли отображаться реальные объявления. Когда я удаляю тестовые устройства, я получаю interstitial(_ ad: GADInterstitial, didFailToReceiveAdWithError error: GADRequestError) вызванный метод делегата, и ошибка: Request Error: No ad to show. Это мой код, основанный на инструкциях здесь :

class MoviesViewController: UIViewController {

var interstitial: GADInterstitial!

override func viewDidLoad() {
    super.viewDidLoad()

    interstitial = createAndLoadInterstitial()
}

func createAndLoadInterstitial() -> GADInterstitial {
    let interstitial = GADInterstitial(adUnitID: "<Ad-Unit-ID>")
    interstitial.delegate = self
    let request = GADRequest()
    //request.testDevices = ["<Device-Test-ID>"]
    interstitial.load(request)
    return interstitial
 }

@IBAction func didTapStartOver(_ sender: Any) {
    if interstitial.isReady {
        interstitial.present(fromRootViewController: self)
    } else {
        print("Ad wasn't ready")
        interstitial = createAndLoadInterstitial()
    }
}

GADInterstitialDelegate:

extension MoviesViewController : GADInterstitialDelegate {

/// Tells the delegate an ad request succeeded.
func interstitialDidReceiveAd(_ ad: GADInterstitial) {
    print("interstitialDidReceiveAd")
}

/// Tells the delegate an ad request failed.
func interstitial(_ ad: GADInterstitial, didFailToReceiveAdWithError error: GADRequestError) {
    print("interstitial:didFailToReceiveAdWithError: \(error.localizedDescription)")
}

/// Tells the delegate that an interstitial will be presented.
func interstitialWillPresentScreen(_ ad: GADInterstitial) {
    print("interstitialWillPresentScreen")
}

/// Tells the delegate the interstitial is to be animated off the screen.
func interstitialWillDismissScreen(_ ad: GADInterstitial) {
    dismiss(animated: false, completion: nil)
    print("interstitialWillDismissScreen")
}

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

/// Tells the delegate that a user click will open another app
/// (such as the App Store), backgrounding the current app.
func interstitialWillLeaveApplication(_ ad: GADInterstitial) {
    print("interstitialWillLeaveApplication")
}

}

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

1 Ответ

0 голосов
/ 22 мая 2018

Я никогда не использовал функцию тестового устройства. Я всегда просто включал предоставленный идентификатор тестового объявления, который упоминается в их руководствах. Когда вы будете готовы к тестированию реальных объявлений, просто переключитесь на идентификатор действительной рекламы, который они предоставляют при создании объявления. Тогда хорошо идти без изменения любого другого кода.

...