using System; using System.Collections.Generic; using Azerion.BlueStack.Common; using Azerion.BlueStack.Internal; using UnityEngine; // WIP namespace Azerion.BlueStack.API { public class NativeAdLoader { private IAdLoaderClient _adLoaderClient; public event EventHandler OnNativeAdFailedToLoad; public event EventHandler OnNativeAdLoaded; internal bool IsAdLoaded; internal GameObject AdGameObject; private NativeAd _nativeAd; public NativeAdLoader(string adUnitId) { AdUnitId = adUnitId; NativeUtils.CheckInitialization(); _nativeAd = new NativeAd(AdUnitId); _nativeAd.OnNativeAdDidFail += (sender, args) => { OnNativeAdFailedToLoad?.Invoke(this, args); }; _nativeAd.OnNativeAdDidLoad += (_sender, _args) => { NativeAdEventArgs nativeAdEventArgs = new NativeAdEventArgs { nativeAd = _nativeAd }; this.OnNativeAdLoaded?.Invoke(this, nativeAdEventArgs); }; } public string AdUnitId { get; private set; } public HashSet AdTypes { get; private set; } public HashSet FormatIds { get; private set; } internal int NumberOfAdsToLoad { get; private set; } public void Load() => this._nativeAd.Load(); public void Load(Preference preference) => this._nativeAd.Load(preference); public void Destroy() => this._nativeAd.Destroy(); } }