using System; using System.Collections; using System.Collections.Generic; using GoogleMobileAds.Api; using UnityEngine; public class AdsManager : MonoBehaviour { // Start is called before the first frame update public static AdsManager instance; void Awake(){ if(instance!= null){Destroy(gameObject);} instance = this; } const string intAdId = "ca-app-pub-3966734202864173/9071918772"; const string rewardedAdId = "ca-app-pub-3966734202864173/7802288880"; void Start() { DontDestroyOnLoad(gameObject); // Initialize the Google Mobile Ads SDK. MobileAds.Initialize(initStatus => { Debug.Log("admob Init status : " + initStatus.ToString());}); StartCoroutine(ReloadAds(true)); } private InterstitialAd interstitialAd; /// /// Loads the interstitial ad. /// public void LoadInterstitialAd() { // Clean up the old ad before loading a new one. if (interstitialAd != null) { interstitialAd.Destroy(); interstitialAd = null; } Debug.Log("Loading the interstitial ad."); // create our request used to load the ad. var adRequest = new AdRequest.Builder() .AddKeyword("unity-admob-sample") .Build(); // send the request to load the ad. InterstitialAd.Load(intAdId, adRequest, (InterstitialAd ad, LoadAdError error) => { // if error is not null, the load request failed. if (error != null || ad == null) { Debug.LogError("interstitial ad failed to load an ad " + "with error : " + error); return; } Debug.Log("Interstitial ad loaded with response : " + ad.GetResponseInfo()); interstitialAd = ad; }); } public void ShowIntAd() { if (interstitialAd != null && interstitialAd.CanShowAd()) { Debug.Log("Showing interstitial ad."); interstitialAd.Show(); } else { Debug.LogError("Interstitial ad is not ready yet."); } StartCoroutine(ReloadAds(false)); } private RewardedAd rewardedAd; /// /// Loads the rewarded ad. /// public void LoadRewardedAd() { // Clean up the old ad before loading a new one. if (rewardedAd != null) { rewardedAd.Destroy(); rewardedAd = null; } Debug.Log("Loading the rewarded ad."); // create our request used to load the ad. var adRequest = new AdRequest.Builder().Build(); // send the request to load the ad. RewardedAd.Load(rewardedAdId, adRequest, (RewardedAd ad, LoadAdError error) => { // if error is not null, the load request failed. if (error != null || ad == null) { Debug.LogError("Rewarded ad failed to load an ad " + "with error : " + error); return; } Debug.Log("Rewarded ad loaded with response : " + ad.GetResponseInfo()); rewardedAd = ad; rewardedAd.OnAdPaid += OnRewardSuccess; }); } private void OnRewardSuccess(AdValue obj) { // GameManager.AdWatched(); } public void ShowRewardedAd() { const string rewardMsg = "Rewarded ad rewarded the user. Type: {0}, amount: {1}."; if (rewardedAd != null && rewardedAd.CanShowAd()) { rewardedAd.Show((Reward reward) => { // TODO: Reward the user. Debug.Log(String.Format(rewardMsg, reward.Type, reward.Amount)); }); } StartCoroutine(ReloadAds(true)); } IEnumerator ReloadAds(bool rewarded){ yield return new WaitForSeconds(2); LoadInterstitialAd(); if(rewarded){ LoadRewardedAd(); } } }