Witam,
mam problem z wyświetlaniem reklam video z nagrodami. Reklama ma dawać określoną ilość amunicji w grze w zamian za jej obejrzenie. Wszystko już zaimplementowałem i mogłoby się wydawać, że wszystko działa, ale niestety. W Unity widzę w logach, że reklama się zamyka i mogę dowolną ilość razu reklamę puszczać, ale niestety w telefonie już tak nie działa. Myślałem, że to wina tego, że wszystkie rodzaje reklam mam wbite w jedną funkcję. Rozdzieliłem to na osobne w taki sposób, że każdy przycisk od reklamy video jest obsługiwany przez osobną funkcję, ale nie pomogło. Załączam cały kod.
using System.Collections;
using System.Collections.Generic;
using GoogleMobileAds.Api;
using UnityEngine;
using UnityEngine.UI;
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
private InterstitialAd interstitial;
public float amo = 0;
public Text textAmo;
private RewardBasedVideoAd rewardBasedVideoAmo10, rewardBasedVideoAmo20, rewardBasedVideoAmo30, rewardBasedVideoAmo50, rewardBasedVideoAmo100;
//when publishing app
public bool publishingApp;
// Start is called before the first frame update
void Start()
{
if (publishingApp)
{
#if UNITY_ANDROID
string appId = "ca-app-pub-1155371345146551~6915234584";
#elif UNITY_IPHONE
string appId = "ca-app-pub-1155371345146551~6915234584";
#else
string appId = "unexpected_platform";
#endif
// Initialize the Google Mobile Ads SDK.
MobileAds.Initialize(appId);
}
//REWARDED ADS
//REQUEST VIDEO
this.RequestRewardBasedVideo();
RequestInterstitial();
}
private void RequestInterstitial()
{
#if UNITY_ANDROID
string adUnitId = "ca-app-pub-3940256099942544/1033173712";
#elif UNITY_IPHONE
string adUnitId = "ca-app-pub-3940256099942544/4411468910";
#else
string adUnitId = "unexpected_platform";
#endif
// Initialize an InterstitialAd.
this.interstitial = new InterstitialAd(adUnitId);
if (publishingApp)
{
// Create an empty ad request.
AdRequest request = new AdRequest.Builder().Build();
// Load the interstitial with the request.
this.interstitial.LoadAd(request);
}
else
{
// Create an empty ad request.
AdRequest request = new AdRequest.Builder()
.AddTestDevice("2077ef9a63d2b398840261c8221a0c9b").Build();
// Load the interstitial with the request.
this.interstitial.LoadAd(request);
}
}
private void RequestRewardBasedVideo()
{
#if UNITY_ANDROID
string adUnitIdAmo10 = "ca-app-pub-1155371345146551/6943154748";
string adUnitIdAmo20 = "ca-app-pub-1155371345146551/8205045772";
string adUnitIdAmo30 = "ca-app-pub-1155371345146551/8565219992";
string adUnitIdAmo50 = "ca-app-pub-1155371345146551/2167332600";
string adUnitIdAmo100 = "ca-app-pub-1155371345146551/4601924256";
#elif UNITY_IPHONE
string adUnitIdAmo10 = "ca-app-pub-1155371345146551/6943154748";
string adUnitIdAmo20 = "ca-app-pub-1155371345146551/8205045772";
string adUnitIdAmo30 = "ca-app-pub-1155371345146551/8565219992";
string adUnitIdAmo50 = "ca-app-pub-1155371345146551/2167332600";
string adUnitIdAmo100 = "ca-app-pub-1155371345146551/4601924256";
#else
string adUnitIdAmo10 = "unexpected_platform";
string adUnitIdAmo20 = "unexpected_platform";
string adUnitIdAmo30 = "unexpected_platform";
string adUnitIdAmo50 = "unexpected_platform";
string adUnitIdAmo100 = "unexpected_platform";
#endif
rewardBasedVideoAmo10 = RewardBasedVideoAd.Instance;
rewardBasedVideoAmo20 = RewardBasedVideoAd.Instance;
rewardBasedVideoAmo30 = RewardBasedVideoAd.Instance;
rewardBasedVideoAmo50 = RewardBasedVideoAd.Instance;
rewardBasedVideoAmo100 = RewardBasedVideoAd.Instance;
if (publishingApp)
{
// Create an empty ad request.
AdRequest request = new AdRequest.Builder().Build();
// Load the rewarded video ad with the request.
this.rewardBasedVideoAmo10.LoadAd(request, adUnitIdAmo10);
this.rewardBasedVideoAmo20.LoadAd(request, adUnitIdAmo20);
this.rewardBasedVideoAmo30.LoadAd(request, adUnitIdAmo30);
this.rewardBasedVideoAmo50.LoadAd(request, adUnitIdAmo50);
this.rewardBasedVideoAmo100.LoadAd(request, adUnitIdAmo100);
}
else
{
// Create an empty ad request.
AdRequest request = new AdRequest.Builder()
.AddTestDevice("2077ef9a63d2b398840261c8221a0c9b").Build();
// Load the rewarded video ad with the request.
this.rewardBasedVideoAmo10.LoadAd(request, adUnitIdAmo10);
this.rewardBasedVideoAmo20.LoadAd(request, adUnitIdAmo20);
this.rewardBasedVideoAmo30.LoadAd(request, adUnitIdAmo30);
this.rewardBasedVideoAmo50.LoadAd(request, adUnitIdAmo50);
this.rewardBasedVideoAmo100.LoadAd(request, adUnitIdAmo100);
}
}
public void LoadIntestellarAds()
{
if (this.interstitial.IsLoaded())
{
this.interstitial.Show();
}
}
public void DiplayRewardVideoAmo10() // amunicja + 10
{
amo = FindObjectOfType<weapon>().amunicja;
if (rewardBasedVideoAmo10.IsLoaded())
{
rewardBasedVideoAmo10.Show();
amo += 10;
textAmo.text = amo.ToString();
}
}
public void DiplayRewardVideoAmo20() // amunicja + 20
{
amo = FindObjectOfType<weapon>().amunicja;
if (rewardBasedVideoAmo20.IsLoaded())
{
rewardBasedVideoAmo20.Show();
amo += 20;
textAmo.text = amo.ToString();
}
}
public void DiplayRewardVideoAmo30() // amunicja + 30
{
amo = FindObjectOfType<weapon>().amunicja;
if (rewardBasedVideoAmo30.IsLoaded())
{
rewardBasedVideoAmo30.Show();
amo += 30;
textAmo.text = amo.ToString();
}
}
public void DiplayRewardVideoAmo50() // amunicja + 50
{
amo = FindObjectOfType<weapon>().amunicja;
if (rewardBasedVideoAmo50.IsLoaded())
{
rewardBasedVideoAmo50.Show();
amo += 50;
textAmo.text = amo.ToString();
}
}
public void DiplayRewardVideoAmo100() // amunicja + 100
{
amo = FindObjectOfType<weapon>().amunicja;
if (rewardBasedVideoAmo100.IsLoaded())
{
rewardBasedVideoAmo100.Show();
amo += 100;
textAmo.text = amo.ToString();
}
}
// Update is called once per frame
void Update()
{
}
}