Unity adMobs Android不显示bannerView

问题描述 投票:1回答:2

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

在网上搜索并在这里得到答案后,我无法找到问题的解决方案。

  • 当我将游戏移植到每个平台时,iOS工作并显示横幅视图。
  • Android不显示横幅视图。
  • 我尝试删除并重新导入谷歌包,但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");
    }
}

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

希望得到帮助。

最亲切的问候。

罗恩。

android unity3d admob 2d-games adbannerview
2个回答
1
投票

您正在尝试显示添加内容而不检查广告是否已加载且可能不是。你应该在调用HandleOnAdLoadedbannerView.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
投票

以下是一些常见原因:

  1. 确保您已使用付款详细信息更新了AdMob
  2. 确保您在AdMob中创建的广告是横幅广告。
  3. 检查您的AdMob信息中心,了解广告的状态,是否有效?
  4. 确认您使用了正确的广告单元ID。
  5. 24小时提供,广告在您所在的地区变得活跃可能需要一段时间

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

© www.soinside.com 2019 - 2024. All rights reserved.