【问题标题】:(Unity) AdMob Problem RealAds not Showing(Unity) AdMob 问题 RealAds 不显示
【发布时间】:2019-11-28 13:18:10
【问题描述】:

-EDIT- 会不会是因为 GPGS(Google Play 游戏服务)?
我已导入 Admob Unity SDK 并使用测试广告成功配置它。 测试广告一切正常,但即使我使用 AddTestDevice(SystemInfo.deviceUniqueIdentifier) 放置真实的广告字符串,也没有任何反应。

我做了另一个项目来测试相同的真实广告,广告显示正常。

所以问题是:真实广告在其他项目中显示正常,但在主项目中没有任何反应,即使测试广告正常工作。

using System.Collections.Generic;
using UnityEngine;

using GoogleMobileAds;
using GoogleMobileAds.Api;
using System;

public class AdManager : MonoBehaviour
{
    private RewardedAd rewardedAd;
    private BannerView bannerView;
    public InterstitialAd interstitial;

    private void RequestInterstitial()
    {
#if UNITY_ANDROID
        string adUnitId = "ca-app-pub-2993038425431208/1298871084";

#elif UNITY_IPHONE
        string adUnitId = "ca-app-pub-3940256099942544/4411468910";
#else
        string adUnitId = "unexpected_platform";
#endif


        this.interstitial = new InterstitialAd(adUnitId);       
        AdRequest request = new AdRequest.Builder().AddTestDevice(SystemInfo.deviceUniqueIdentifier).Build();      
        this.interstitial.LoadAd(request);
    }
    string appId;
    public void Start()
    {

#if UNITY_ANDROID
         appId = "ca-app-pub-2993038425431208~5325638202";
#elif UNITY_IPHONE
             appId = "ca-app-pub-3940256099942544~1458002511";
#else
             appId = "unexpected_platform";
#endif
        //AdRequest.Builder.addbcx("33BE2250B43518CCDA7DE426D04EE231");

        MobileAds.Initialize(appId);
        this.RequestBanner();
        this.RequestInterstitial();     
        this.LoadReward();
    }

    private void LoadReward()
    {
        string adUnitId;
#if UNITY_ANDROID
        adUnitId = "ca-app-pub-2993038425431208/2201384054";        
#elif UNITY_IPHONE
            adUnitId = "ca-app-pub-3940256099942544/1712485313";
#else
            adUnitId = "unexpected_platform";
#endif

        this.rewardedAd = new RewardedAd(adUnitId);
        this.rewardedAd.OnAdLoaded += HandleRewardedAdLoaded;       
        this.rewardedAd.OnAdFailedToLoad += HandleRewardedAdFailedToLoad;       
        this.rewardedAd.OnAdOpening += HandleRewardedAdOpening;       
        this.rewardedAd.OnAdFailedToShow += HandleRewardedAdFailedToShow;
        this.rewardedAd.OnUserEarnedReward += HandleUserEarnedReward;       
        this.rewardedAd.OnAdClosed += HandleRewardedAdClosed;


        AdRequest request = new AdRequest.Builder().AddTestDevice(SystemInfo.deviceUniqueIdentifier).Build();
        this.rewardedAd.LoadAd(request);
    }

    public void HandleRewardedAdLoaded(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleRewardedAdLoaded event received");
    }

    public void HandleRewardedAdFailedToLoad(object sender, AdErrorEventArgs args)
    {
        MonoBehaviour.print(
            "HandleRewardedAdFailedToLoad event received with message: "
                             + args.Message);
    }

    public void HandleRewardedAdOpening(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleRewardedAdOpening event received");
    }

    public void HandleRewardedAdFailedToShow(object sender, AdErrorEventArgs args)
    {
        MonoBehaviour.print(
            "HandleRewardedAdFailedToShow event received with message: "
                             + args.Message);
    }

    public void HandleRewardedAdClosed(object sender, EventArgs args)
    {
        AdRequest request = new AdRequest.Builder().Build();
        this.rewardedAd.LoadAd(request);
    }

    public void HandleUserEarnedReward(object sender, Reward args)
    {
        //Assets.SaveLoad.CloudManager.Instance.AddDiamonds(20);
    }
    public void showIntestitial()
    {
        if (this.interstitial.IsLoaded())
        {
            this.interstitial.Show();
            this.RequestInterstitial();
        }
    }
    public void ShowReward()
    {
        if (this.rewardedAd.IsLoaded())
        {
            this.rewardedAd.Show();
            this.LoadReward();
        }
    }
    public bool bottom;
    private void RequestBanner()
    {
        if (!bottom)
        {
            return;
           }
#if UNITY_ANDROID
        string adUnitId = "ca-app-pub-2993038425431208/8049796478";        
#elif UNITY_IPHONE
            string adUnitId = "ca-app-pub-3940256099942544/2934735716";
#else
            string adUnitId = "unexpected_platform";
#endif


        this.bannerView = new BannerView(adUnitId, new AdSize(AdSize.FullWidth, 50), AdPosition.Top);


        AdRequest request = new AdRequest.Builder().AddTestDevice(SystemInfo.deviceUniqueIdentifier).Build();
        this.bannerView.LoadAd(request);
        this.bannerView.Show();

    }
}

The Other App Banner Te Other App Rewarded

【问题讨论】:

  • 如果你想要真正的广告,为什么要添加这个“AddTestDevice(SystemInfo.deviceUniqueIdentifier)”?
  • 即使使用“AddTestDevice(SystemInfo.deviceUniqueIdentifier)”,它也会显示真实的广告,但会避免被禁止,因为此初始化将使 API 不计算点击次数等。
  • 即使我删除“AddTestDevice(SystemInfo.deviceUniqueIdentifier)”我也有同样的问题。
  • @DeekshithHegde 这可能是 GPGS 的问题吗?如果是这样,我该如何解决?我不太擅长“.jar”;

标签: c# unity3d admob ads


【解决方案1】:

我发现问题在于 GPGS 和 AdMob 无法协同工作。 我删除了 GPGS 和 AdMob。重新导入的 AdMob -> Resolute Again Boom 它可以工作,但我无法让它们一起工作。

【讨论】:

    【解决方案2】:

    你的线路:

    AdRequest request = new AdRequest.Builder().AddTestDevice(SystemInfo.deviceUniqueIdentifier).Build();
    

    试试这条线:

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

    这条线对我有用。

    【讨论】:

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