[英]Unity3d Admob rewarded video ads
我无法在Unity3d中显示来自admob插件的奖励视频广告。 首先,这是我的脚本:
using GoogleMobileAds.Api;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
public class AdManager : MonoBehaviour {
private RewardBasedVideoAd rewardBasedVideo;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
public void RequestRewardBasedVideo()
{
#if UNITY_EDITOR
string adUnitId = "unused";
#elif UNITY_ANDROID
string adUnitId = "INSERT_AD_UNIT_HERE";
#elif UNITY_IPHONE
string adUnitId = "INSERT_AD_UNIT_HERE";
#else
string adUnitId = "unexpected_platform";
#endif
RewardBasedVideoAd rewardBasedVideo = RewardBasedVideoAd.Instance;
AdRequest request = new AdRequest.Builder().Build();
rewardBasedVideo.LoadAd(request, adUnitId);
//Show Ad
showAdd(rewardBasedVideo);
}
private void showAdd(RewardBasedVideoAd rewardBasedVideo)
{
if (rewardBasedVideo.IsLoaded())
{
//Subscribe to Ad event
rewardBasedVideo.OnAdRewarded += HandleRewardBasedVideoRewarded;
rewardBasedVideo.Show();
}
}
private void HandleRewardBasedVideoRewarded(object sender, Reward e)
{
Debug.Log("30 monedas ;)");
Debug.Log(e);
}
}
我用一个按钮运行RequestRewardVideo()
方法,但是什么也没有发生。 我试图在start()
和showAdd()
表单中运行requestrewardvideo()
方法,但仅显示视频1/3次……这是怎么回事?
提前致谢
我用一个按钮运行RequestRewardVideo()
方法,但是什么也没有发生。
您必须在加载广告和显示广告之间保持一定的时间差,因为广告加载需要花费一些时间。 当您在加载rewardBasedVideo.IsLoaded()
之后刚刚调用showAd时,返回false。
于是呼requestrewardvideo()
从start()
和按钮单击调用showAdd()
private void showAdd(RewardBasedVideoAd rewardBasedVideo) {
if (rewardBasedVideo.IsLoaded())
{
//Subscribe to Ad event
rewardBasedVideo.OnAdRewarded += HandleRewardBasedVideoRewarded;
rewardBasedVideo.Show();
}else {
AdRequest request = new AdRequest.Builder().Build();
rewardBasedVideo.LoadAd(request, adUnitId);
}
}
当广告关闭并请求再次在此处加载广告时,也将广告作为监听器。 这样每次rewardBasedVideo.IsLoaded()
返回true时。
编辑
rewardBasedVideo.OnAdClosed += HandleOnAdClosed; //Ad listener to your rewardBasedVideo
public void HandleOnAdClosed(object sender, EventArgs args)
{
// Load it here
}
如果您使用的是此插件https://github.com/unity-plugins/Unity-Admob,则代码将如下所示。
载入影片
Admob.Instance().loadRewardedVideo("ca-app-pub-3940256099942544/1712485313");
在游戏结束时显示,在播放视频之前先检查其是否准备就绪:
if (Admob.Instance().isRewardedVideoReady()) {
Admob.Instance().showRewardedVideo();
}
处理广告事件
Admob.Instance().videoEventHandler += onInterstitialEvent;
void onInterstitialEvent(string eventName, string msg)
{
Debug.Log("handler onAdmobEvent---" + eventName + " " + msg);
if (eventName == AdmobEvent.onAdLoaded)
{
Admob.Instance().showRewardedVideo();
}
if(eventName==AdmobEvent.onAdFail){
Debug.log(msg);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.