【问题标题】:Ads not working on the production build of android game广告不适用于 Android 游戏的生产版本
【发布时间】:2021-05-04 18:36:09
【问题描述】:

我做了一个安卓游戏。我在关闭测试模式的情况下添加了一些广告,然后我将游戏发布给内部测试人员并且广告正常工作,因此我修复了游戏中的一些问题并将游戏发布到 Playstore 上进行生产。

现在游戏已在 Playstore 上架,广告无法正常工作。广告显示需要一些时间吗?统一货币化仪表板上有一个弹出窗口,我需要更新包名称,我做到了,但广告仍然没有显示,尽管 Playstore 列表显示我的应用包含广告。

我的代码是:

public string gameId = "ihavemygameidhere";

public bool testMode = true;
void Start()
{
    // Initialize the Ads service:
    Advertisement.Initialize(gameId, testMode);
}

public void ShowInterstitialAd()
{
    // Check if UnityAds ready before calling Show method:
    if (Advertisement.IsReady())
    {
        Advertisement.Show();
    }
    else
    {
        Debug.Log("Interstitial ad not ready at the moment! Please try again later!");
    }
}

【问题讨论】:

  • 播放商店广告列表是您在Google Console中设置的设置,因此一旦选中,无论是否有效,都会显示有广告。我会使用Android Studio 来调试logcat 的问题。我确信正在记录一些可以解决此问题的内容。我觉得奇怪的是,您的广告在 Interal 轨道上的构建中有效,但在生产环境中无效。它们应该几乎相同。
  • @TEEBQNE 谷歌控制台的设置在哪里,对不起,我是新手
  • @TEEBQNE 我明白,但我不知道如何登录,但我会调查一下
  • @TEEBQNE 现在有统一的 logcat 包管理器,所以我使用了它,它说 2021/05/05 00:26:12.733 17366 19359 信息 Unity 插页式广告目前尚未准备好!请稍后再试!我已经更新了问题
  • 好吧,那就是你的问题了。我可以修复你刚刚附加的代码。

标签: unity3d unityads


【解决方案1】:

当广告尚未准备好时,这意味着广告服务器尚未发送要查看的广告。我建议将IsReady() 签入Coroutine,然后在玩家等待时显示加载屏幕 UI。如果IsReady() 总是失败,我也会失败一些时间。

[SerializeField] private GameObect LoadingUI = null;
private float waitTime = 5f;

public void ShowInterstitialAd()
{
    StartCoroutine(ShowAd());
}

private IEnumerator ShowAd()
{
    float currentTime = 0.0f;
    
    LoadingUI.SetActive(true);
    
    while(currentTime <= waitTime && !Advertisement.IsReady())
    {
         currenTime += Time.deltaTime;
         yield return null;
    }
    
    // show the ad if it is now ready
    if(Advertisement.IsReady())
    {
         Advertisement.Show();   
    }
    else
    {
        Debug.LogError("Error: Ad was not able to be loaded in " + waitTime + " seconds!");
    }   
    
    LoadingUI.SetActive(false);
}

确保在检查器中为 LoadingUI 对象分配一些对象,这样玩家就不能再次点击查看广告,或者只是在广告尝试加载时阻止所有输入的一些 UI。我会使用 ScreenOverlay UI,因为它会在所有内容上呈现。

【讨论】:

  • 好的,我会调查的。但我的问题是,为什么它在没有这段代码的情况下在内部测试中工作,我的应用程序今天刚刚发布,也许广告需要时间才能出现?第二个问题是我现在需要为此发布更新吗?
  • 我不确定为什么它不能在实时环境中工作。我还没有发布应用程序,只在封闭/内部测试中工作。可能是作为一个内部应用程序,它没有通过适当的渠道来请求广告,并且几乎立即接收到它。你需要发布一个新版本,是的。
  • 非常感谢
  • admob 但我发现 Unity Ads 更容易。
  • 好的,我认为这是问题所在,因为我的广告只是视频广告,所以我认为没有太多。我还要添加横幅广告和 5 秒钟的加载屏幕并推出更新。感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-24
  • 2011-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多