我正在尝试将AdMobs集成到我的统一2D项目中(游戏专为移动平台而设计)。
在网上搜索并在这里得到答案后,我无法找到问题的解决方案。
我完成了此链接中的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");
}
}
此脚本附加到主菜单场景中的游戏对象。
希望得到帮助。
最亲切的问候。
罗恩。
您正在尝试显示添加内容而不检查广告是否已加载且可能不是。你应该在调用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();
}
}
以下是一些常见原因:
您还可以参考测试ID来检查由Google提供的adMOb代码:https://developers.google.com/admob/android/test-ads