Есть 2 сцены - menu и game. При первом запуске приложения, всё работает, как часы. Реклама грузится, показывается, все события обрабатываются в хэндлерах. Но, стоит только покинуть вторую сцену, выйдя в меню и вернуться в неё обратно - все хэндлеры событий перестают срабатывать. AdMob больше не реагирует ни на одно событие, как-будто хэндлеров нет. 
Вот код:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System;
using GoogleMobileAds;
using GoogleMobileAds.Api;
public class RewardedVideo : MonoBehaviour {
	private const string admob_id = "/****тут мой id******/";
	private RewardBasedVideoAd videoAD;
	public GameObject Wait;
	public GameObject NoAdsFoundDialog;
	public Text ErrorMessage;
	public Console console;
	bool isAdLoading = false;
	bool ad_ready = false;
	bool failed = false;
	
	void Start () {
		videoAD = RewardBasedVideoAd.Instance;
		
		videoAD.OnAdLoaded += HandleOnAdLoaded;
		videoAD.OnAdFailedToLoad += HandleOnAdFailedToLoad;
		videoAD.OnAdOpening += HandleOnAdOpening;
		videoAD.OnAdStarted += HandleOnAdStarted;
		videoAD.OnAdClosed += HandleOnAdClosed;
		videoAD.OnAdRewarded += HandleOnAdRewarded;
		videoAD.OnAdLeavingApplication += HandleOnAdLeavingApplication;
		
		console.Print ("Trying to LoadVideoAd at Start()");
		LoadVideoAd ();
	}
	public void LoadVideoAd(){
		videoAD.LoadAd (new AdRequest.Builder ()
			.AddTestDevice (AdRequest.TestDeviceSimulator)
			.AddTestDevice (SystemInfo.deviceUniqueIdentifier.ToUpper())
			.Build (), admob_id);
		isAdLoading = true;
		console.Print ("Trying to LoadVideoAd");
		
	}
	public void Prepare(){
		Wait.SetActive (true);
	}
	public void showAd(){
		
		if (failed) {
			console.Print ("FAILED! Suspended until next request.");
			LoadVideoAd ();
			return;
		}
		if (ad_ready) {
			console.Print ("Trying to show video Ad");
			videoAD.Show ();
		}
		if (isAdLoading & !ad_ready & !failed) {
			console.Print ("Ad not loaded yet.");
			Invoke ("showAd", 3);
		}
		if(!isAdLoading & !ad_ready & !failed){
			console.Print ("No current requests found. Building new request");
			LoadVideoAd ();
			Invoke ("showAd", 4);
		}
	}
		
	public void HandleOnAdLoaded (object sender, EventArgs args){
		console.Print ("Ad Loaded! Ready to show");
		isAdLoading = false;
		ad_ready = true;
	}
	public void HandleOnAdFailedToLoad (object sender, AdFailedToLoadEventArgs args){
		isAdLoading = false;
		failed = true;
		console.Print ("Ad failed to load. Possible no network connection");
		switch (args.Message) {
		case "Network Error":
			ErrorMessage.text = "Не удалось подключиться к интернету. Проверьте соединение и повторите попытку";
			break;
		case "No fill":
			ErrorMessage.text = "Нет доступной к показу рекламы на данный момент. Попробуйте позже";
			break;
		default:
			ErrorMessage.text = args.Message + "\n" + "Попробуйте позже";
			break;
		}
		NoAdsFoundDialog.SetActive (true);
	}
	public void CloseErrorDialog(){
		NoAdsFoundDialog.SetActive (false);
		Wait.SetActive (false);
	}
	public void HandleOnAdOpening (object sender, EventArgs args){
		
	}
	public void HandleOnAdStarted (object sender, EventArgs args){
		
	}
	public void HandleOnAdClosed (object sender, EventArgs args){
		Wait.SetActive (false);
		console.Print ("HandleOnAdClosed was executed");
		ad_ready = false;
		LoadVideoAd ();
	}
	public void HandleOnAdRewarded (object sender, Reward args){
		console.Print ("Ad succesfully shown");
		console.Print("Gainded: " + ((int)(args.Amount)).ToString() + " " + args.Type);
		ad_ready = false;
	}
	public void HandleOnAdLeavingApplication(object sender, EventArgs args){
		Wait.SetActive (false);
		isAdLoading = false;
		ad_ready = false;
	}
}
При первом запуске сцены всё работает:

При втором уже не обрабатывается ни один хэндлер:


Всё делал по инструкции из оффициального видео гугла:
видео
В общем, долго не мог понять, что происходит, пока 
тут не наткнулся на статью от тех же гуглов, где расписана реализация rewarded video в юнити. Тут, в отличие от видео, уже появляется вот такая поправка:
// Reward based video instance is a singleton. Register handlers once to
// avoid duplicate events.
if (!rewardBasedEventHandlersSet)
{
    // Ad event fired when the rewarded video ad
    // has been received.
    rewardBasedVideo.OnAdLoaded += HandleRewardBasedVideoLoaded;
    // has failed to load.
    rewardBasedVideo.OnAdFailedToLoad += HandleRewardBasedVideoFailedToLoad;
    // is opened.
    rewardBasedVideo.OnAdOpening += HandleRewardBasedVideoOpened;
    // has started playing.
    rewardBasedVideo.OnAdStarted += HandleRewardBasedVideoStarted;
    // has rewarded the user.
    rewardBasedVideo.OnAdRewarded += HandleRewardBasedVideoRewarded;
    // is closed.
    rewardBasedVideo.OnAdClosed += HandleRewardBasedVideoClosed;
    // is leaving the application.
    rewardBasedVideo.OnAdLeavingApplication += HandleRewardBasedVideoLeftApplication;
    rewardBasedEventHandlersSet = true;
}
Since a rewarded video instance is a singleton object, we recommend registering for ad events only once to avoid duplicate events.
Видимо ошибка кроется где-то здесь. Сцена 2 удаляется, синглтон остаётся, а его хэндлеры дублируются при повторной загрузке сцены, поэтому ничего и не работает.
Хорошо, я попробовал добавить себе такую проверку, как в коде выше:
public class RewardedVideo : MonoBehaviour {
	private const string admob_id = "/****тут мой id******/";
	private RewardBasedVideoAd videoAD;
	public GameObject Wait;
	public GameObject NoAdsFoundDialog;
	public Text ErrorMessage;
	public Console console;
	bool isAdLoading = false;
	bool ad_ready = false;
	bool failed = false;
	public static bool isHandlers = false;
	void Start () {
		videoAD = RewardBasedVideoAd.Instance;
		if (!isHandlers) {
			videoAD.OnAdLoaded += HandleOnAdLoaded;
			videoAD.OnAdFailedToLoad += HandleOnAdFailedToLoad;
			videoAD.OnAdOpening += HandleOnAdOpening;
			videoAD.OnAdStarted += HandleOnAdStarted;
			videoAD.OnAdClosed += HandleOnAdClosed;
			videoAD.OnAdRewarded += HandleOnAdRewarded;
			videoAD.OnAdLeavingApplication += HandleOnAdLeavingApplication;
			isHandlers = true;
		}
		console.Print ("Trying to LoadVideoAd at Start()");
		LoadVideoAd ();
	}
Но мне это всё-равно не помогло. Хэндлеры после повторной загрузки сцены не работают. 
Что я делаю не так?