Unity adMobs Android не отображает баннерПросмотреть - PullRequest
2 голосов
/ 30 апреля 2019

Я пытаюсь интегрировать AdMobs в мой проект 2D Unity (игра предназначена для мобильных платформ).

После поиска в Интернете и ответов здесь я не смог найти решение своей проблемы.

  • Когда я портирую свою игру на каждую платформу, iOS работает и отображает просмотр баннера.

  • Android не отображает вид баннера.

  • Я попытался удалить и повторно импортировать пакет Google, но до сих пор Android не будет показывать баннер.

Я сделал именно то, что описано в руководстве Google по этой ссылке. https://developers.google.com/admob/unity/start

Но все равно не пойдет Android не будет отображать представление баннера с рекламой (проверено на 2 отдельных устройствах). Вот мой код, я добавил строку appId в обработчики манифеста и plist в проекте.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using GoogleMobileAds.Api;
using System;

public class GoogleAdsHandler:MonoBehaviour {

    private BannerView bannerView;

    // Use this for initialization
    void Start () {
#if UNITY_ANDROID
                string appId = Consts.ANDROID_AD_APPID;
#elif UNITY_IPHONE
        string appId = Consts.IOS_AD_APPID;
#else
                string appId = "unexpected_platform";
#endif
        InitilizeAdMob ();
    }

    private void InitilizeAdMob () {
#if UNITY_ANDROID
        string appId = Consts.ANDROID_AD_APPID;
#elif UNITY_IPHONE
        string appId = Consts.IOS_AD_APPID;
#else
        string appId = "unexpected_platform";
#endif
        MobileAds.Initialize (appId);

        this.RequestBanner ();
    }

    private void RequestBanner () {
#if UNITY_ANDROID
        string adUnitId = Consts.ANDROID_BANNER_ID;
#elif UNITY_IPHONE
        string adUnitId = Consts.IOS_BANNER_ID;
#else
            string adUnitId = "unexpected_platform";
#endif
        // Create a 320x50 banner at the top of the screen.
        bannerView = new BannerView (adUnitId, AdSize.Banner, AdPosition.Bottom);
        AdRequest request = new AdRequest.Builder ().Build ();
        bannerView.LoadAd (request);
        bannerView.Show ();
        bannerView.OnAdLoaded += HandleOnAdLoaded;
    }

    public void HandleOnAdLoaded (object sender, EventArgs args) {
        MonoBehaviour.print ("HandleAdLoaded event received");
    }
}

Этот скрипт прикреплен к игровому объекту в сцене моего главного меню.

Буду признателен за помощь в этом вопросе.

С наилучшими пожеланиями.

Рони.

Ответы [ 2 ]

1 голос
/ 01 мая 2019

Вы пытаетесь показать надстройку, не проверяя, загружено ли объявление и, вероятно, нет. Вы должны подписаться на HandleOnAdLoaded событие, прежде чем звонить bannerView.LoadAd() и bannerView.Show().

Ваш Start метод просто вызывает InitilizeAdMob, поскольку назначаемая вами строка нигде не передается, и вы делаете то же самое в InitilizeAdMob, поэтому я бы переписал ваш класс следующим образом:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using GoogleMobileAds.Api;
using System;

public class GoogleAdsHandler : MonoBehaviour {

    private BannerView bannerView;

    // Use this for initialization
    void Start () {
       InitilizeAdMob ();
    }

    private void InitilizeAdMob () {
#if UNITY_ANDROID
        string appId = Consts.ANDROID_AD_APPID;
#elif UNITY_IPHONE
        string appId = Consts.IOS_AD_APPID;
#else
        string appId = "unexpected_platform";
#endif
        MobileAds.Initialize (appId);
        this.RequestBanner ();
    }

    private void RequestBanner () {
#if UNITY_ANDROID
        string adUnitId = Consts.ANDROID_BANNER_ID;
#elif UNITY_IPHONE
        string adUnitId = Consts.IOS_BANNER_ID;
#else
        string adUnitId = "unexpected_platform";
#endif
        // Create a 320x50 banner at the top of the screen.
        bannerView = new BannerView (adUnitId, AdSize.Banner, AdPosition.Bottom);
        bannerView.OnAdLoaded += HandleOnAdLoaded;
        AdRequest request = new AdRequest.Builder ().Build ();
        bannerView.LoadAd (request);
    }

    public void HandleOnAdLoaded (object sender, EventArgs args) {
        MonoBehaviour.print ("HandleAdLoaded event received");
        bannerView.Show();
    }
}
1 голос
/ 30 апреля 2019

Вот несколько распространенных причин:

  1. Убедитесь, что вы обновили AdMob с вашими платежными реквизитами
  2. Убедитесь, что объявления, созданные в AdMob, являются рекламными баннерами.
  3. Проверьте панель инструментов AdMob, чтобы увидеть статус ваших объявлений, они активны?
  4. Убедитесь, что вы использовали правильный идентификатор рекламного блока.
  5. Дайте ему 24 часа, для того чтобы объявление стало активным в вашем регионе, может потребоваться время

Вы также можете сослаться на идентификаторы тестов, чтобы проверить код adMOb, предоставленный Google: https://developers.google.com/admob/android/test-ads

...