【问题标题】:Unity 3d Admob shows only test adsUnity 3d Admob 仅显示测试广告
【发布时间】:2023-04-08 04:14:02
【问题描述】:

两天以来我一直在尝试弄清楚为什么 admob 只显示测试广告!当我使用 testId 时,它会显示测试广告。当我使用我的 admob 横幅 ID 时,它变为空白(不显示广告) 下面我附上了我的 admob 横幅代码。

using UnityEngine;
using System.Collections;
using GoogleMobileAds.Api;

public class AdmobScript : MonoBehaviour
{

    public string BannerId;


    // Use this for initialization
    void Start()
    {
        //Request Ads
        RequestBanner();

    }

    private void RequestBanner()
    {
#if UNITY_EDITOR
        string adUnitId = "unused";
#elif UNITY_ANDROID
		string adUnitId = "ca-app-pub-xxxxxxxxxxxxxxxxxxx";
#elif UNITY_IPHONE
			string adUnitId = "INSERT_IOS_BANNER_AD_UNIT_ID_HERE";
#else
			string adUnitId = "unexpected_platform";
#endif

        // Create a 320x50 banner at the bottom of the screen.
        BannerView bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Bottom);
        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();
        // Load the banner with the request.
        bannerView.LoadAd(request);
    }
}

我试图研究它为什么不起作用,但不幸的是,互联网上可用的与统一相关的 admob 解决方案非常少。

Google 移动广告插件 v3.13.1
统一2017.4.0f1

请帮帮我!谢谢!

【问题讨论】:

    标签: c# unity3d admob


    【解决方案1】:
    using UnityEngine;
    using System.Collections;
    using GoogleMobileAds.Api;
    
    public class AdmobScript : MonoBehaviour
    {
    
        private string BannerId;
    
    
        // Use this for initialization
        void Awake()
        {
            //Request Ads
            RequestBanner();
    
        }
    
        private void RequestBanner()
        {
    #if UNITY_EDITOR
            string adUnitId = "unused";
    #elif UNITY_ANDROID
            string adUnitId = "You UNIT-ID HERE";
    #elif UNITY_IPHONE
                string adUnitId = "INSERT_IOS_BANNER_AD_UNIT_ID_HERE";
    #else
                string adUnitId = "unexpected_platform";
    #endif
    
            // Create a 320x50 banner at the bottom of the screen.
            BannerView bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Bottom);
            // Create an empty ad request.
            AdRequest request = new AdRequest.Builder().Build();
            // Load the banner with the request.
            bannerView.LoadAd(request);
        }
    }
    

    确保您的 UNIT-ID 正确无误。不要用你的 APP-ID 代替 UNIT-ID。

    【讨论】:

    • “发布你的应用程序”到底是什么意思:)
    • 我猜你不必先将游戏发布到安卓商店。我认为在 2017 年之后,您必须在获得真正的广告之前发布您的应用程序。祝你好运。
    • 我什至尝试使用已发布应用的bannerId。但即使这样也行不通。只有测试广告有效:(
    • 将bannerId设为私有并将您的unityID设置为字符串 adUnitId = "ca-app-pub-xxxxxxxxxxxxxxxxxxx";在这里尝试在 Awake 函数中调用 RequestBanner
    【解决方案2】:

    我遇到了类似的问题,事实证明,除非您设置了付款信息,否则 AdMob 不会投放广告。所以请确保已设置。

    此外,从使用测试广告切换到实际广告时,您需要确保更改您的应用 ID 以及您的单元 ID。您似乎只是在更改您的单位 ID。

    在你的项目的其他地方你应该有这样的东西:

    using System.Collections;
    using UnityEngine;
    using GoogleMobileAds.Api;
    
    
    public class AdInitializer : MonoBehaviour {
    
        public void Start()
        {
            #if UNITY_ANDROID
            string appId = "ca-app-pub-XXXXXXXXXXXXXXXX~XXXXXXXXXX";
            #elif UNITY_IPHONE
            string appId = "ca-app-pub-XXXXXXXXXXXXXXXX~XXXXXXXXXX";
            #else
            string appId = "unexpected_platform";
            #endif
    
            // Initialize the Google Mobile Ads SDK.
            MobileAds.Initialize(appId);
            Debug.Log ("Initializing ads for app ID " + appId);
        }
    }
    

    确保这是使用您的应用 ID 而不是测试应用 ID。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-18
      • 2015-05-10
      • 1970-01-01
      相关资源
      最近更新 更多