Unity Admob非页内广告未显示

时间:2018-08-15 14:48:30

标签: unity3d admob interstitial

我知道这个问题已经被问过几次了,但是即使我已经实施并尝试了所有解决方案,但我还是被卡住了。我会按照本教程中的插页广告来显示:

https://developers.google.com/admob/unity/interstitial

我的主要目标是在用户点击游戏的“重新启动”按钮时展示广告。

这是我的主要广告管理器类(与游戏对象链接):

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

public class AdManager : MonoBehaviour {

    public string interstitial_id;
    public string app_id;
    public InterstitialAd interstitial;

    // Use this for initialization
    void Start () {
        //MobileAds.Initialize(app_id);
        DontDestroyOnLoad(this);
        Prepare_Video();
        Debug.Log("Admob ilklendirildi: " + interstitial.ToString());
    }


    public void Show_Video()
    {
        Debug.Log("Reklam hazırlık durumu: " + interstitial.IsLoaded());
        if (interstitial.IsLoaded()) {
            Debug.Log("Reklam hazır, gösterilecek");
            interstitial.Show();
        }
        else
        {
            Prepare_Video();
            interstitial.Show();
        }
    }

    public void Destroy_Video()
    {
        if(interstitial != null)
        {
            interstitial.Destroy();
        }
    }

    public void Prepare_Video()
    {
        interstitial = new InterstitialAd(interstitial_id);
        AdRequest request = new AdRequest.Builder().Build();
        interstitial.LoadAd(request);
    }

}

我在重启操作中调用show方法:

  public void RestartScene()
    {
        GameStatusText.gameObject.SetActive(false);
        RestartButton.gameObject.SetActive(false);
        MeterText.gameObject.SetActive(false);
        MeterTextTop.text = "";
        Time.timeScale = 1;
        TimeController.TimeLeft = 50f;
        FindObjectOfType<AdManager>().Show_Video();
        SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
    }

3 个答案:

答案 0 :(得分:1)

您需要先初始化admob

答案 1 :(得分:0)

检查分配给AdManager的场景的情况,以及场景是否有变化,并且您的游戏中是否安装了Google Ads unity资源?

答案 2 :(得分:0)

我已经重新安装了admob插件,并从一开始就按照说明进行操作。有效。看来我的插件包已损坏,并且缺少一些文件。