无法在Unity Android游戏中放置奖励视频广告

时间:2018-11-14 09:57:22

标签: unity3d unityads

奖励视频广告无法在Android游戏中使用。它有一个按钮,用于观看广告和谋生。我是团结的新手,为了放置admob,我从Unity导入了一个程序包,并在清单文件中输入了我的应用ID。然后创建AdController脚本并将其附加到一个空的游戏对象。以下是AdController脚本。

 using UnityEngine;
 using UnityEngine.UI;
 using System.Collections;
 using UnityEngine.SceneManagement;
 using GoogleMobileAds.Api;
 using GoogleMobileAds;
 using System;

 public class AdController : MonoBehaviour
 {

     public static AdController instance;

     public RewardBasedVideoAd rewardBasedVideo;

     void Awake()
     {
         MakeSingleton();
     }

     void Start()
     {
        // MakeSingleton();

         //   string appId = "ca-app-pub-3940256099942544~3347511713";

         string appId = "ca-app-pub-5240144888396693~9879286538";


         // Initialize the Google Mobile Ads SDK.
         MobileAds.Initialize(appId);




         // Get singleton reward based video ad reference.
         this.rewardBasedVideo = RewardBasedVideoAd.Instance;

         // Called when an ad request has successfully loaded.
         rewardBasedVideo.OnAdLoaded += HandleRewardBasedVideoLoaded;
         // Called when an ad request failed to load.
         rewardBasedVideo.OnAdFailedToLoad += HandleRewardBasedVideoFailedToLoad;
         // Called when an ad is shown.
         rewardBasedVideo.OnAdOpening += HandleRewardBasedVideoOpened;
         // Called when the ad starts to play.
         rewardBasedVideo.OnAdStarted += HandleRewardBasedVideoStarted;
         // Called when the user should be rewarded for watching a video.
         rewardBasedVideo.OnAdRewarded += HandleRewardBasedVideoRewarded;
         // Called when the ad is closed.
         rewardBasedVideo.OnAdClosed += HandleRewardBasedVideoClosed;
         // Called when the ad click caused the user to leave the application.
         rewardBasedVideo.OnAdLeavingApplication += HandleRewardBasedVideoLeftApplication;



         this.RequestRewardBasedVideo();


     }

     void MakeSingleton()
     {
         if (instance != null)
         {
             Destroy(gameObject);
         }
         else
         {
             instance = this;
             DontDestroyOnLoad(gameObject);
         }
     }

     private void RequestRewardBasedVideo()
     {
        // string adUnitId = "ca-app-pub-3940256099942544/5224354917";
         string adUnitId = "ca-app-pub-5240144888396693/2240060544";


         // Create an empty ad request.
         AdRequest request = new AdRequest.Builder().Build();
         // Load the rewarded video ad with the request.
         this.rewardBasedVideo.LoadAd(request, adUnitId);
     }

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

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

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

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

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

     public void HandleRewardBasedVideoRewarded(object sender, Reward args)
     {
         string type = args.Type;
         double amount = args.Amount;
         MonoBehaviour.print(
             "HandleRewardBasedVideoRewarded event received for "
                         + amount.ToString() + " " + type);
     }

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




     public void ShowRewardBasedVideo()
     {
         if (this.rewardBasedVideo.IsLoaded())
         {
             MonoBehaviour.print("Reward based video ready");
             this.rewardBasedVideo.Show();
         }
         else
         {
             MonoBehaviour.print("Reward based video ad is not ready yet");
         }
     }


 }

然后在我的主脚本中,我调用了AdController脚本中创建的函数,以便在主脚本中单击“在广告按钮上显示广告”。

AdController.instance.ShowRewardBasedVideo();

但是它不起作用。日志显示成功,但未显示广告。我正在真实设备上进行测试。请帮助我,让我知道我做错了什么。过去几天一直在努力实施广告。

0 个答案:

没有答案