【问题标题】:Unity Ads Android Integration - Reloading Video Ad issueUnity Ads Android 集成 - 重新加载视频广告问题
【发布时间】:2016-04-19 07:43:58
【问题描述】:

我已将 Unity Ads android 库集成到我的 android 项目中。一开始,在调用init之后

UnityAds.init(this, Consts.UNITY_GAME_ID, this);

我的回调的 onFetchCompleted 方法被调用,我可以显示视频并获取有关我的活动完成的回调。

我想在完成后重新加载视频,并在 UnityAds 类上寻找“重新加载”、“获取”等方法。好像没有办法做到这一点。

所以,我尝试再次调用 UnityAds.init,但无法在日志中获得任何回调或任何错误。

如何重新加载另一个视频广告?

【问题讨论】:

  • 完成后重新加载视频是什么意思。您的意思是在另一个视频之后显示另一个视频?
  • 是的,我想加载另一个视频并显示给用户。

标签: java android unity3d ads


【解决方案1】:

1。你不会调用 init 两次。

2。在调用Advertisement.Show() 函数之前,您可能没有使用isReady 来检查广告是否被读取以显示。

直接从 Unity 网站复制,下面的代码应该显示广告并等待要显示另一个广告,只需再次调用 ShowAd()

[SerializeField] string gameID = "33675";

void Awake()
{
    Advertisement.Initialize (gameID, true);
}

void Start()
{
    ShowAd();//Show ad
}

public void ShowAd(string zone = "")
{
    #if UNITY_EDITOR
        StartCoroutine(WaitForAd ());
    #endif

    if (string.Equals (zone, ""))
        zone = null;

    ShowOptions options = new ShowOptions ();
    options.resultCallback = AdCallbackhandler;

    if (Advertisement.isReady (zone))
        Advertisement.Show (zone, options);
}

void AdCallbackhandler (ShowResult result)
{
    switch(result)
    {
    case ShowResult.Finished:
        Debug.Log ("Ad Finished. Rewarding player...");
        break;
    case ShowResult.Skipped:
        Debug.Log ("Ad skipped. Son, I am dissapointed in you");
        break;
    case ShowResult.Failed:
        Debug.Log("I swear this has never happened to me before");
        break;
    }
}

IEnumerator WaitForAd()
{
    float currentTimeScale = Time.timeScale;
    Time.timeScale = 0f;
    yield return null;

    while (Advertisement.isShowing)
        yield return null;

    Time.timeScale = currentTimeScale;
}

【讨论】:

  • 感谢回复,但这是针对 Unity SDK 的,我使用的是 Android SDK 的统一广告。完成视频后,我还会检查 UnityAds.canShow(),但它是错误的,这意味着我无法再次直接调用 UnityAds.show()。
  • ??我知道这是针对 Unity SDK 的。上面的代码适用于 Unity Ad SDK。上面的代码应该可以做到。只需将gameID 更改为您的gameId,然后每次要展示广告时调用ShowAd()。上面的代码实现了在展示之前等待广告加载的方法。请在做进一步的 cmets 之前尝试一下。
  • 你没有正确理解我的意思!我的项目不是 Unity 项目,它是原生 android 项目。所以你的代码示例对我不可用。
  • 哦,我明白了。我读错了你的问题。我建议您在问题中标记 Java。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多