using System; using System.Reflection; using GoogleMobileAds.Common; namespace GoogleMobileAds.Api { public class RewardedAd { public event EventHandler OnAdLoaded; public event EventHandler OnAdFailedToLoad; public event EventHandler OnAdFailedToShow; public event EventHandler OnAdOpening; public event EventHandler OnAdClosed; public event EventHandler OnUserEarnedReward; private IRewardedAdClient client; public RewardedAd(string adUnitId) { MethodInfo method = Type.GetType("GoogleMobileAds.GoogleMobileAdsClientFactory,Assembly-CSharp").GetMethod("BuildRewardedAdClient", BindingFlags.Static | BindingFlags.Public); this.client = (IRewardedAdClient)method.Invoke(null, null); this.client.CreateRewardedAd(adUnitId); this.client.OnAdLoaded += delegate(object sender, EventArgs args) { if (this.OnAdLoaded != null) { this.OnAdLoaded(this, args); } }; this.client.OnAdFailedToLoad += delegate(object sender, AdErrorEventArgs args) { if (this.OnAdFailedToLoad != null) { this.OnAdFailedToLoad(this, args); } }; this.client.OnAdFailedToShow += delegate(object sender, AdErrorEventArgs args) { if (this.OnAdFailedToShow != null) { this.OnAdFailedToShow(this, args); } }; this.client.OnAdOpening += delegate(object sender, EventArgs args) { if (this.OnAdOpening != null) { this.OnAdOpening(this, args); } }; this.client.OnAdClosed += delegate(object sender, EventArgs args) { if (this.OnAdClosed != null) { this.OnAdClosed(this, args); } }; this.client.OnUserEarnedReward += delegate(object sender, Reward args) { if (this.OnUserEarnedReward != null) { this.OnUserEarnedReward(this, args); } }; } public void LoadAd(AdRequest request) { this.client.LoadAd(request); } public bool IsLoaded() { return this.client.IsLoaded(); } public void Show() { this.client.Show(); } public void SetServerSideVerificationOptions(ServerSideVerificationOptions serverSideVerificationOptions) { this.client.SetServerSideVerificationOptions(serverSideVerificationOptions); } public string MediationAdapterClassName() { return this.client.MediationAdapterClassName(); } } }