Je viens vous voir car j'ai un problème sur le plug in Google Admob, notamment j'ai suivi un tuto sur YTB , voilà jusqu'ici tout est OK, j'arrive à regarder des pubs (bannier, vidéo ...). Mais voilà j'ai un souci sur les récompenses, notamment sur les récompenses d'une vidéo, j'aimerais en mettre une sur mon jeu mais je ne comprends pas le système d’évents, j'ai fait quelque recherche et j'ai trouvé que ça s'appelait des delegate.
Voici mon code
Code : Tout sélectionner
using UnityEngine;
using GoogleMobileAds.Api;
using System;
public class ADManager : MonoBehaviour
{
private string APP_ID = "...";
private BannerView bannerAD;
private InterstitialAd interstitialAD;
private RewardBasedVideoAd rewardVideoAD;
// Start is called before the first frame update
void Start()
{
//MobileAds.Initialize(APP_ID);
RequestBannerAD();
RequestInterstitialAD();
RequestVideoAD();
}
void RequestBannerAD()
{
//string banner_ID = "...";
string banner_ID = "...";
bannerAD = new BannerView(banner_ID, AdSize.SmartBanner, AdPosition.Top);
}
void RequestInterstitialAD()
{
//string interstitial_ID = "...";
string interstitial_ID = "...";
interstitialAD = new InterstitialAd(interstitial_ID);
//Real APP
//AdRequest adRequest = new AdRequest.Builder().Build();
//Test
AdRequest adRequest = new AdRequest.Builder().AddTestDevice("...").Build();
interstitialAD.LoadAd(adRequest);
}
void RequestVideoAD()
{
//string video_ID = "...";
string video_ID = "...";
rewardVideoAD = RewardBasedVideoAd.Instance;
//Real APP
//AdRequest adRequest = new AdRequest.Builder().Build();
//Test
AdRequest adRequest = new AdRequest.Builder().AddTestDevice("...").Build();
rewardVideoAD.LoadAd(adRequest, video_ID);
}
public void Display_BannerAD()
{
//Real APP
//AdRequest adRequest = new AdRequest.Builder().Build();
//Test
AdRequest adRequest = new AdRequest.Builder().AddTestDevice("...").Build();
bannerAD.LoadAd(adRequest);
}
public void Display_InterstitialAD()
{
if (interstitialAD.IsLoaded())
{
interstitialAD.Show();
}
}
public void Display_Reward_Video()
{
if (rewardVideoAD.IsLoaded())
{
rewardVideoAD.Show();
}
}
//REWARD VIDEO
public void HandleRewardedAdLoaded(object sender, EventArgs args)
{
MonoBehaviour.print("HandleRewardedAdLoaded event received");
}
public void HandleRewardedAdFailedToLoad(object sender, AdErrorEventArgs args)
{
MonoBehaviour.print(
"HandleRewardedAdFailedToLoad event received with message: "
+ args.Message);
}
public void HandleRewardedAdOpening(object sender, EventArgs args)
{
MonoBehaviour.print("HandleRewardedAdOpening event received");
}
public void HandleRewardedAdFailedToShow(object sender, AdErrorEventArgs args)
{
MonoBehaviour.print(
"HandleRewardedAdFailedToShow event received with message: "
+ args.Message);
}
public void HandleRewardedAdClosed(object sender, EventArgs args)
{
Display_Reward_Video();
}
public void HandleUserEarnedReward(object sender, Reward args)
{
string type = args.Type;
double amount = args.Amount;
MonoBehaviour.print(
"HandleRewardedAdRewarded event received for "
+ amount.ToString() + " " + type);
}
}
Et voilà le code que je ne comprends pas notamment les events et ce qu'il y a dans Start() (j'ai pris ce code ici : https://developers.google.com/admob/uni ... rded-video ) :
Code : Tout sélectionner
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
private RewardBasedVideoAd rewardBasedVideo;
...
public void Start()
{
// 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();
}
private void RequestRewardBasedVideo()
{
#if 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
// 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");
}
}