奖励视频广告事件未在Unity和Admob中触发

时间:2019-12-23 05:51:38

标签: c# unity3d admob

我正在使用Unity 2019.2.8f1,并且准备在Google Play商店中发布我的第一款游戏。不幸的是,在观看奖励的广告之后没有将奖励给予用户。每当用户观看奖励广告时,都应该获得额外的生活。

这是我的广告管理系统脚本。我正在使用虚拟ID进行测试。

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

public class AdManager : MonoBehaviour
{

public static AdManager instance;
private string AppId = "ca-app-pub-3940256099942544~3347511713";
private BannerView banner;
private string bannerID = "ca-app-pub-3940256099942544/6300978111";
private InterstitialAd videoAD;
private string videoID = "ca-app-pub-3940256099942544/1033173712";
private int showing, video;
private RewardBasedVideoAd rewardedAds;
private string rewardedID = "ca-app-pub-3940256099942544/5224354917";
public bool RewardTaken;




public void HandleRewardBasedVideoClosed(object sender, EventArgs args)
{
    Debug.Log("HandleRewardBasedVideoClosed event received");
    RequestRewardedAD();


}

public void HandleRewardBasedVideoRewarded(object sender, Reward args)
{

    UIManager.variable.RewardPanel.SetActive(true);
    UIManager.variable.gameOver.SetActive(false);
}


private void Awake()
{

   rewardedAds = RewardBasedVideoAd.Instance;
    showing = PlayerPrefs.GetInt("show");
    video = PlayerPrefs.GetInt("video");

    MobileAds.Initialize(AppId);
    RequestvideoAD();

    if (instance == null)
    {
        instance = this;
    }
    else
    {
        Destroy(this);
    }
}

private void Start()
{
    RewardTaken = false;
    if (video == 1)
    {
        ShowvideoAD();

    }


    if (showing == 1)
    {
        requestBanner();

    }
    RequestRewardedAD();

    // Called when the user should be rewarded for watching a video.
    rewardedAds.OnAdRewarded += HandleRewardBasedVideoRewarded;
    // Called when the ad is closed.
    rewardedAds.OnAdClosed += HandleRewardBasedVideoClosed;


}

public void requestBanner()
{
    banner = new BannerView(bannerID, AdSize.Banner, AdPosition.Bottom);
    AdRequest request = new AdRequest.Builder().Build();
    banner.LoadAd(request);
    banner.Show();
}


public void RequestvideoAD()
{
    videoAD = new InterstitialAd(videoID);
    AdRequest request = new AdRequest.Builder().Build();
    videoAD.LoadAd(request);


}
public void ShowvideoAD()
{
    if (videoAD.IsLoaded())
    {
        videoAD.Show();
    }
    else
    {
        Debug.Log("FullscreenADNotLoaded");

    }

}
public void RequestRewardedAD()
{
    AdRequest request = new AdRequest.Builder().Build();
    rewardedAds.LoadAd(request,rewardedID);
}
public void ShowRewardedAD()
{
    if(rewardedAds.IsLoaded())
    {
        rewardedAds.Show();
        Debug.Log("Ads Are Working");
    }
    else
    {
        Debug.Log("Rewarded Ads not laded properly");
    }
}

public void HideAD()
{
    banner.Hide();
}


}

即使控制台没有显示我想在测试中显示的任何消息。经过几次尝试,我决定删除调试文本。

1 个答案:

答案 0 :(得分:0)

您似乎将回调附加到其他广告对象,并且正在从其他对象加载广告。

尝试使用奖励广告

加载广告

list = ['Cristiano Ronaldo', 'L. Messi', 'M. Neuer', 'L. Suarez', 'De Gea', 'Z. Ibrahimovic', 'G. Bale', 'J. Boateng', 'R. Lewandowski']

for item in list:
    print(item)
    print(re.findall(r'(\s(.*))', item))