Unity adMobs Android 不显示 bannerView
Unity adMobs Android not displaying bannerView
我正在尝试将 AdMobs 集成到我的 unity 2D 项目中(游戏专为移动平台设计)。
在网上搜索并在此处找到答案后,我找不到问题的解决方案。
当我将我的游戏移植到每个平台时 iOS 工作并显示
横幅视图。
Android 不显示横幅视图。
- 我尝试删除并重新导入 google 包,但仍然
Android 不会显示横幅。
我完全按照本 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");
}
}
此脚本已附加到我的主菜单场景中的游戏对象。
非常感谢对此事的帮助。
最诚挚的问候。
罗尼
以下是一些常见原因:
- 确保您已使用付款详细信息更新 AdMob
- 确保您在 AdMob 中制作的广告是横幅广告。
- 检查您的 AdMob 控制面板以查看您的广告状态,它们是否有效?
- 确认您使用了正确的广告单元 ID。
- 给它 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();
}
}
我正在尝试将 AdMobs 集成到我的 unity 2D 项目中(游戏专为移动平台设计)。
在网上搜索并在此处找到答案后,我找不到问题的解决方案。
当我将我的游戏移植到每个平台时 iOS 工作并显示 横幅视图。
Android 不显示横幅视图。
- 我尝试删除并重新导入 google 包,但仍然 Android 不会显示横幅。
我完全按照本 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");
}
}
此脚本已附加到我的主菜单场景中的游戏对象。
非常感谢对此事的帮助。
最诚挚的问候。
罗尼
以下是一些常见原因:
- 确保您已使用付款详细信息更新 AdMob
- 确保您在 AdMob 中制作的广告是横幅广告。
- 检查您的 AdMob 控制面板以查看您的广告状态,它们是否有效?
- 确认您使用了正确的广告单元 ID。
- 给它 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();
}
}