Unity ads not loading

So this applies for both rewarded and interstitial ads.
I have recently been busy integrating unity ads into my game as a form of monetization. For some reason, after I loaded up the editor to start working again, the ads would start loading but never finish.
I am using the exact same script from the unity documentation with an extra Start function that I was using while testing.

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Advertisements;

public class RewardedAdsButton : MonoBehaviour, IUnityAdsLoadListener, IUnityAdsShowListener
{
    [SerializeField] Button _showAdButton;
    [SerializeField] string _androidAdUnitId = "Rewarded_Android";
    [SerializeField] string _iOSAdUnitId = "Rewarded_iOS";
    string _adUnitId = null; // This will remain null for unsupported platforms

    void Awake()
    {
        // Get the Ad Unit ID for the current platform:
#if UNITY_IOS
        _adUnitId = _iOSAdUnitId;
#elif UNITY_ANDROID
        _adUnitId = _androidAdUnitId;
#endif

        //Disable the button until the ad is ready to show:
        _showAdButton.interactable = false;
    }
    private void Start()
    {
        LoadAd();
    }
    // Load content to the Ad Unit:
    public void LoadAd()
    {
        // IMPORTANT! Only load content AFTER initialization (in this example, initialization is handled in a different script).
        Advertisement.Load(_adUnitId);
        Debug.Log("Loading Ad: " + _adUnitId);
    }

    // If the ad successfully loads, add a listener to the button and enable it:
    public void OnUnityAdsAdLoaded(string adUnitId)
    {
        Debug.Log("Ad Loaded: " + adUnitId);

        if (adUnitId.Equals(_adUnitId))
        {
            // Configure the button to call the ShowAd() method when clicked:
            _showAdButton.onClick.AddListener(ShowAd);
            // Enable the button for users to click:
            _showAdButton.interactable = true;
        }
    }

    // Implement a method to execute when the user clicks the button:
    public void ShowAd()
    {
        // Disable the button:
        _showAdButton.interactable = false;
        // Then show the ad:
        Advertisement.Show(_adUnitId, this);
    }

    // Implement the Show Listener's OnUnityAdsShowComplete callback method to determine if the user gets a reward:
    public void OnUnityAdsShowComplete(string adUnitId, UnityAdsShowCompletionState showCompletionState)
    {
        if (adUnitId.Equals(_adUnitId) && showCompletionState.Equals(UnityAdsShowCompletionState.COMPLETED))
        {
            Debug.Log("Unity Ads Rewarded Ad Completed");
            // Grant a reward.

            // Load another ad:
            Advertisement.Load(_adUnitId, this);
        }
    }

    // Implement Load and Show Listener error callbacks:
    public void OnUnityAdsFailedToLoad(string adUnitId, UnityAdsLoadError error, string message)
    {
        Debug.Log($"Error loading Ad Unit {adUnitId}: {error.ToString()} - {message}");
        // Use the error details to determine whether to try to load another ad.
    }

    public void OnUnityAdsShowFailure(string adUnitId, UnityAdsShowError error, string message)
    {
        Debug.Log($"Error showing Ad Unit {adUnitId}: {error.ToString()} - {message}");
        // Use the error details to determine whether to try to load another ad.
    }

    public void OnUnityAdsShowStart(string adUnitId) { }
    public void OnUnityAdsShowClick(string adUnitId) { }
    void OnDestroy()
    {
        // Clean up the button listeners:
        _showAdButton.onClick.RemoveAllListeners();
    }
}

In here an ad would be loaded at the start (I get a debug for this) but never end (there is no debug from either the complete or failure methods).
I have checked the unit ids, the initialization in my AdsManager, tried new units, disabled and enabled the ads again, check the package to be up to date, restarted the editor, restarted my pc. Nothing worked.
I’ve searched for information but couldn’t find anything similar. I’ve also asked in many discords but I didn’t come to a solution.
Has someone had this issue before or does anyone know any possible fixes?

This question never got answered, and it’s been a year since then. But since I just came across this problem and managed to solve it, I’ll drop what I learned here for anyone that has this same issue.

The reason why the ads never finish loading was because I was calling the Load method before the AdInitializer had completed its initialization process.

The AdInitializer script provided by Unity in their guide has callback “OnInitializationComplete()”. And so, the solution was to call the Load method from within that callback.

Here’s my modified script:

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Advertisements;
 
public class AdsInitializer : MonoBehaviour, IUnityAdsInitializationListener
{
    [SerializeField] string _androidGameId;
    [SerializeField] string _iOSGameId;
    [SerializeField] bool _testMode = true;
    private string _gameId;
 
    private RewardedAdsButton[] _adUnits;

    void Awake()
    {
        InitializeAds();

        _adUnits = GetComponentsInChildren<RewardedAdsButton>();
    }
 
    public void InitializeAds()
    {
        _gameId = (Application.platform == RuntimePlatform.IPhonePlayer)
            ? _iOSGameId
            : _androidGameId;
        Advertisement.Initialize(_gameId, _testMode, this);
    }
 
    public void OnInitializationComplete()
    {
        Debug.Log("Unity Ads initialization complete.");
        
        for (int i=0; i<_adUnits.Length; i++)
            _adUnits*.LoadAd();*

}

public void OnInitializationFailed(UnityAdsInitializationError error, string message)
{
Debug.Log($“Unity Ads Initialization Failed: {error.ToString()} - {message}”);
}
}