【问题标题】:Admob for Unity app does not show addAdmob for Unity 应用不显示添加
【发布时间】:2018-08-05 10:15:12
【问题描述】:

我对统一应用程序的 admob 有问题,我使用文档添加 admob,我使用了 youtube 的视频教程并尝试了演示应用程序(来自 admob 的 hello world),但结果是一样的,没有出现广告横幅在我的应用程序中,如果使用插页式广告,当我尝试显示它时,我的应用程序会崩溃。但是,在控制台中有一条虚拟消息。

我的代码

using GoogleMobileAds.Api;

public class AdMobManager : MonoBehaviour {

private BannerView bannerView;

[SerializeField] private string appID = "";
[SerializeField] private string bannerID = "";
[SerializeField] private string regularAD = "";

private void Awake(){
    MobileAds.Initialize(appID);
}

public void OnClickShowBanner() {
    this.RequestBanner();
}


public void OnClickShowAd() {
    this.RequestReqularAd();
}

private void RequestReqularAd() {
    InterstitialAd AD = new InterstitialAd(regularAD); 

    AdRequest request = new AdRequest.Builder().Build();

    AD.LoadAd(request);
}

public void RequestBanner() {
    bannerView = new BannerView(bannerID, AdSize.Banner, AdPosition.Bottom);

    AdRequest request = new AdRequest.Builder().Build();

    bannerView.LoadAd(request);
   }

}

【问题讨论】:

    标签: unity3d google-admob


    【解决方案1】:

    您可以将这个简单的代码用于 admob 横幅。显示横幅广告需要一些时间,但此脚本运行良好。 Source

    public class GoogleMobileAdsDemoScript : MonoBehaviour
    {
        private BannerView bannerView;
    
        public void Start()
        {
            this.RequestBanner();
        }
    
        private void RequestBanner()
        {
            #if UNITY_ANDROID
                string adUnitId = "ca-app-pub-3940256099942544/6300978111";
            #elif UNITY_IPHONE
                string adUnitId = "ca-app-pub-3940256099942544/2934735716";
            #else
                string adUnitId = "unexpected_platform";
            #endif
    
            // Create a 320x50 banner at the top of the screen.
            bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top);
    
            // Create an empty ad request.
            AdRequest request = new AdRequest.Builder().Build();
    
            // Load the banner with the request.
            bannerView.LoadAd(request);
        }
    }
    

    【讨论】:

    • 我已经用过了,但我对这段代码也有同样的问题……可能是我对 UNITY 有一些问题。你怎么看?
    【解决方案2】:

    源代码可用https://github.com/unity-plugins/Unity-Admob/blob/master/AdmobPluginRes/admobdemo.cs

    using UnityEngine;
    using admob;
    public class admobdemo : MonoBehaviour {
        Admob ad;
        string appID="";
        string bannerID="";
        string interstitialID="";
        string videoID="";
        string nativeBannerID = "";
    
        void Start () {
            Debug.Log("start unity demo-------------");
             initAdmob();
        }
    
        void Update () {
            if (Input.GetKeyUp (KeyCode.Escape)) {
                Debug.Log(KeyCode.Escape+"-----------------");
            }
        }
    
        void initAdmob()
        {
    #if UNITY_IOS
                     appID="ca-app-pub-3940256099942544~1458002511";
                     bannerID="ca-app-pub-3940256099942544/2934735716";
                     interstitialID="ca-app-pub-3940256099942544/4411468910";
                     videoID="ca-app-pub-3940256099942544/1712485313";
                     nativeBannerID = "ca-app-pub-3940256099942544/3986624511";
    #elif UNITY_ANDROID
                     appID="ca-app-pub-3940256099942544~3347511713";
                     bannerID="ca-app-pub-3940256099942544/6300978111";
                     interstitialID="ca-app-pub-3940256099942544/1033173712";
                     videoID="ca-app-pub-3940256099942544/5224354917";
                     nativeBannerID = "ca-app-pub-3940256099942544/2247696110";
    #endif
            AdProperties adProperties = new AdProperties();
            adProperties.isTesting = true;
    
            ad = Admob.Instance();
                ad.bannerEventHandler += onBannerEvent;
                ad.interstitialEventHandler += onInterstitialEvent;
                ad.rewardedVideoEventHandler += onRewardedVideoEvent;
                ad.nativeBannerEventHandler += onNativeBannerEvent;
                ad.initSDK(appID,adProperties);//reqired,adProperties can been null
        }
        void OnGUI(){
            if (GUI.Button(new Rect(120, 0, 100, 60), "showInterstitial"))
            {
               Debug.Log("touch inst button -------------");
                if (ad.isInterstitialReady())
                {
                    ad.showInterstitial();
                }
                else
                {
                    ad.loadInterstitial(interstitialID);
                }
            }
            if (GUI.Button(new Rect(240, 0, 100, 60), "showRewardVideo"))
            {
                Debug.Log("touch video button -------------");
                if (ad.isRewardedVideoReady())
                {
                    ad.showRewardedVideo();
                }
                else
                {
                    ad.loadRewardedVideo(videoID);
                }
            }
            if (GUI.Button(new Rect(0, 100, 100, 60), "showbanner"))
            {
                Admob.Instance().showBannerRelative(bannerID,AdSize.SMART_BANNER, AdPosition.BOTTOM_CENTER);
            }
            if (GUI.Button(new Rect(120, 100, 100, 60), "showbannerABS"))
            {
                Admob.Instance().showBannerAbsolute(bannerID,AdSize.BANNER, 20, 220,"mybanner");
            }
            if (GUI.Button(new Rect(240, 100, 100, 60), "removebanner"))
            {
                Admob.Instance().removeBanner();
                Admob.Instance().removeBanner("mybanner");
            }
    
            if (GUI.Button(new Rect(0, 200, 100, 60), "showNative"))
            {
                Admob.Instance().showNativeBannerRelative(nativeBannerID,new AdSize(320,280), AdPosition.BOTTOM_CENTER);
            }
            if (GUI.Button(new Rect(120, 200, 100, 60), "showNativeABS"))
            {
                Admob.Instance().showNativeBannerAbsolute(nativeBannerID,new AdSize(-1,132), 0, 300);
            }
            if (GUI.Button(new Rect(240, 200, 100, 60), "removeNative"))
            {
                Admob.Instance().removeNativeBanner();
            }
        }
        void onInterstitialEvent(string eventName, string msg)
        {
            Debug.Log("handler onAdmobEvent---" + eventName + "   " + msg);
            if (eventName == AdmobEvent.onAdLoaded)
            {
                Admob.Instance().showInterstitial();
            }
        }
        void onBannerEvent(string eventName, string msg)
        {
            Debug.Log("handler onAdmobBannerEvent---" + eventName + "   " + msg);
        }
        void onRewardedVideoEvent(string eventName, string msg)
        {
            Debug.Log("handler onRewardedVideoEvent---" + eventName + "  rewarded: " + msg);
        }
        void onNativeBannerEvent(string eventName, string msg)
        {
            Debug.Log("handler onAdmobNativeBannerEvent---" + eventName + "   " + msg);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多