Я пытаюсь интегрировать рекламу, но проблема в том, что вознаграждение не показывается. Однако рекламное объявление работает. Сцена ждет 2,3 секунды и показывает промежуточную рекламу, но не показывает вознагражденную рекламу, хотя в журнале она показывает «SHOW AD XXX».
Вот сценарий игры:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Gamescript: MonoBehaviour {
public static bool isGameover;
// Use this for initialization
void Start() {
isGameover = false;
Invoke("GameOver", 2);
}
// Update is called once per frame
void Update() {
}
void GameOver() {
isGameover = true;
Debug.Log("Game Over");
}
}
и вот мой вознагражденный рекламный скрипт:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using GoogleMobileAds.Api;
public class Newreward: MonoBehaviour {
private RewardBasedVideoAd rewardBasedVideo;
bool hasShownAdOneTime;
// Use this for initialization
void Start() {
rewardBasedVideo = RewardBasedVideoAd.Instance;
// Called when the user should be rewarded for watching a video.
rewardBasedVideo.OnAdRewarded += HandleRewardBasedVideoRewarded;
// Called when the ad is closed.
rewardBasedVideo.OnAdClosed += HandleRewardBasedVideoClosed;
LoadRewardBasedAd();
}
// Update is called once per frame
void Update() {
if (Gamescript.isGameover) {
if (!hasShownAdOneTime) {
hasShownAdOneTime = true;
Invoke("ShowRewardBasedAd", 3);
}
}
}
public void LoadRewardBasedAd() {
#if UNITY_EDITOR
string adUnitId = "unused";
#elif UNITY_ANDROID
string adUnitId = "ca-app-pub-3940256099942544/5224354917";
#elif UNITY_IPHONE
string adUnitId = "ca-app-pub-3940256099942544/1712485313";
#else
string adUnitId = "unexpected_platform";
#endif
rewardBasedVideo.LoadAd(new AdRequest.Builder().Build(), adUnitId);
}
public void ShowRewardBasedAd() {
if (rewardBasedVideo.IsLoaded()) {
rewardBasedVideo.OnAdRewarded += HandleRewardBasedVideoRewarded;
rewardBasedVideo.Show();
Debug.Log("SHOW AD XXX");
} else {
MonoBehaviour.print("Dude no ad");
}
}
public void HandleRewardBasedVideoClosed(object sender, System.EventArgs args) {
this.LoadRewardBasedAd();
}
public void HandleRewardBasedVideoRewarded(object sender, Reward args) {
string type = args.Type;
double amount = args.Amount;
MonoBehaviour.print("HandleRewardBasedVideoRewarded event received for " + amount.ToString() + " " + type);
}
}
любая помощь будет оценена