Unity adMobs Android not displaying bannerView



我正在尝试将ADMOB集成到我的Unity 2D项目中(游戏是为移动平台设计的(。

在搜索网络并在这里回答后,我找不到解决问题的解决方案。

  • 当我将游戏移植到每个平台时,iOS可以工作并显示横幅视图。

  • Android不显示横幅视图。

  • 我尝试删除并重新导入Google软件包,但仍在Android不会显示横幅。

我确实在此链接中描述的是Google教程。https://developers.google.com/admob/unity/start

但仍然没有GO Android不会使用AD显示横幅视图(在2个单独的设备上进行了测试(。这是我的代码,我将appid String添加到了项目中的清单和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");
    }
}

此脚本连接到我的主菜单场景上的游戏对象。

很感谢有关此事的帮助。

最亲切的问候。

罗尼。

您正在尝试显示添加的情况,而无需检查广告是否已加载,而且可能不是。在调用bannerView.LoadAd()bannerView.Show()之前,您应该订阅HandleOnAdLoaded事件。

您的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. 确保您已更新了付款详细信息的Admob
  2. 确保您在ADMOB中创建的广告是横幅广告。
  3. 检查您的Admob仪表板以查看您的广告状态,它们是否活动?
  4. 验证您使用了正确的广告单元ID。
  5. 给它24小时,广告在您的地区活跃
  6. 可能需要时间

您还可以参考测试ID以检查您的ADMOB代码,该代码由Google提供:https://developers.google.com/admob/android/test-ads

最新更新