Unity adMobs Android 不显示 bannerView

Unity adMobs Android not displaying bannerView

我正在尝试将 AdMobs 集成到我的 unity 2D 项目中(游戏专为移动平台设计)。

在网上搜索并在此处找到答案后,我找不到问题的解决方案。

我完全按照本 link 中 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");
    }
}

此脚本已附加到我的主菜单场景中的游戏对象。

非常感谢对此事的帮助。

最诚挚的问候。

罗尼

以下是一些常见原因:

  1. 确保您已使用付款详细信息更新 AdMob
  2. 确保您在 AdMob 中制作的广告是横幅广告。
  3. 检查您的 AdMob 控制面板以查看您的广告状态,它们是否有效?
  4. 确认您使用了正确的广告单元 ID。
  5. 给它 24 小时,广告在您所在的地区可能需要一些时间

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

您试图在不检查广告是否已加载的情况下显示广告,但很可能没有。在调用 bannerView.LoadAd()bannerView.Show() 之前,您应该订阅 HandleOnAdLoaded 事件。

你的 Start 方法只是调用 InitilizeAdMob 因为你分配的字符串没有传递到任何地方,你在 InitilizeAdMob 中做同样的事情所以我会重写你的 class 像这样:

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();
    }
}