using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using GoogleMobileAds.Api;
using System;

public class GecisReklam  {

    public static GecisReklam sc;

    private InterstitialAd ads;
    private RewardBasedVideoAd rewardBasedVideo;
    private string reklamID;
    private string rewardedID;
    private string appId;

    public bool ReklamDurum = false;
    public bool ReklamDurum2 = false;

    void Awake ()
    {
        sc = this;
    }

    public void InitAds()
    {


#if UNITY_ANDROID
        reklamID = "ca-app-pub-XXXXXXXXXXXXXXXXXXX";
#elif UNITY_IPHONE
        reklamID = "ca-app-pub-XXXXXXXXXXXXXXX";
#else
        reklamID = "unexpected_platform";
#endif


        if (ads != null) ads.Destroy();
        ads = new InterstitialAd(reklamID);
        AdRequest request = new AdRequest.Builder().Build();
        ads.OnAdLoaded += Interstitial_OnAdLoaded;
        ads.LoadAd(request);
    }


    public void InitRewarded()
    {


#if UNITY_ANDROID
        appId = "ca-app-pub-XXXXXXXXXXXXXXXXXXX";
        rewardedID = "ca-app-pub-XXXXXXXXXXX/XXXXXXXXXXXXXXXX";
#elif UNITY_IPHONE
        appId = "ca-app-pub-XXXXXXXXXXXXXXX";
#else
        appId = "unexpected_platform";
#endif


        MobileAds.Initialize(appId);
        this.rewardBasedVideo = RewardBasedVideoAd.Instance;
        rewardBasedVideo.OnAdLoaded += HandleRewardBasedVideoLoaded;
        rewardBasedVideo.OnAdFailedToLoad += HandleRewardBasedVideoFailedToLoad;
        rewardBasedVideo.OnAdOpening += HandleRewardBasedVideoOpened;
        rewardBasedVideo.OnAdStarted += HandleRewardBasedVideoStarted;
        rewardBasedVideo.OnAdRewarded += HandleRewardBasedVideoRewarded;
        rewardBasedVideo.OnAdClosed += HandleRewardBasedVideoClosed;
        rewardBasedVideo.OnAdLeavingApplication += HandleRewardBasedVideoLeftApplication;
        AdRequest request = new AdRequest.Builder().Build();
        rewardBasedVideo.LoadAd(request, rewardedID);

    }


    public void HandleRewardBasedVideoLoaded(object sender, EventArgs args)
    {
        print("HandleRewardBasedVideoLoaded event received");
    }

    public void HandleRewardBasedVideoFailedToLoad(object sender, AdFailedToLoadEventArgs args)
    {
        print("HandleRewardBasedVideoFailedToLoad event received with message: "+ args.Message);
    }

    public void HandleRewardBasedVideoOpened(object sender, EventArgs args)
    {
        print("HandleRewardBasedVideoOpened event received");
    }

    public void HandleRewardBasedVideoStarted(object sender, EventArgs args)
    {
        print("HandleRewardBasedVideoStarted event received");
    }

    public void HandleRewardBasedVideoClosed(object sender, EventArgs args)
    {
        print("HandleRewardBasedVideoClosed event received");
    }

    public void HandleRewardBasedVideoRewarded(object sender, Reward args)
    {
        string type = args.Type;
        double amount = args.Amount;
        print("HandleRewardBasedVideoRewarded event received for " + amount.ToString() + " " + type);

        //PlayerPrefs.SetInt("playerChip", (int)amount);
    }

    public void HandleRewardBasedVideoLeftApplication(object sender, EventArgs args)
    {
        print("HandleRewardBasedVideoLeftApplication event received");
    }


    void Update()
    {
        if (ReklamDurum)
        {
            if (ads.IsLoaded())
            {
                ads.Show();
                ReklamDurum = false;

            }
        }

        if(ReklamDurum2)
        {
            if (rewardBasedVideo.IsLoaded())
            {
                rewardBasedVideo.Show();
                ReklamDurum2 = false;

            }
        }
    }


    private void Interstitial_OnAdLoaded(object sender, System.EventArgs e)
    {
        Debug.Log("interstitial yüklendi... - ");
    }

}

Bir gameobject oluşturup scripti ata.

Farklı classdan kullanmak için örnek :

GecisReklam.sc.InitAds();
GecisReklam.sc.ReklamDurum = true;