using System.Collections; using System.Collections.Generic; using UnityEngine; using System.Runtime.InteropServices; using System; #if UNITY_IOS namespace AudienceNetwork { public static class AdSettings { [DllImport("__Internal")] private static extern void FBAdSettingsBridgeSetAdvertiserTrackingEnabled(bool advertiserTrackingEnabled); public static void SetAdvertiserTrackingEnabled(bool advertiserTrackingEnabled) { FBAdSettingsBridgeSetAdvertiserTrackingEnabled(advertiserTrackingEnabled); } } } #endif public partial class AdManager : BF.MonoSingleton { private const string Tag = "AdManager:"; // private const string Key = "9uHgeBwag3NXva9MC23ToO3q11Ve59bF1uwg4qGltdGmCQ7OSByFZ_3b1ZF7krMlkHQo5gXzIokVDsvg1rwbr-"; private const string Key = "9uHgeBwag3NXva9MC23ToO3q11Ve59bF1uwg4qGltdGmCQ7OSByFZ_3b1ZF7krMlkHQo5gXzIokVDsvg1rwbr-11"; string bannerAdUnitId = "YOUR_BANNER_AD_UNIT_ID"; // Retrieve the ID from your account string adInterstitialUnitId = "YOUR_AD_UNIT_ID"; string adRewardUnitId = "e54f27e345da90df"; // Start is called before the first frame update public void Init(string init = "") { #if UNITY_IOS || UNITY_IPHONE MaxSdkCallbacks.OnSdkInitializedEvent += (MaxSdkBase.SdkConfiguration sdkConfiguration) => { if (MaxSdkUtils.CompareVersions(UnityEngine.iOS.Device.systemVersion, "14.5") != MaxSdkUtils.VersionComparisonResult.Lesser) { // Note that App transparency tracking authorization can be checked via `sdkConfiguration.AppTrackingStatus` for Unity Editor and iOS targets // 1. Set Meta ATE flag here, THEN if (MaxSdkBase.AppTrackingStatus.Authorized == sdkConfiguration.AppTrackingStatus) AudienceNetwork.AdSettings.SetAdvertiserTrackingEnabled(true); else AudienceNetwork.AdSettings.SetAdvertiserTrackingEnabled(false); } // Show Mediation Debugger // MaxSdk.ShowMediationDebugger(); // MaxSdk.SetVerboseLogging(true); // AppLovin SDK is initialized, start loading ads LoadAds(); }; MaxSdk.SetSdkKey(Key); MaxSdk.SetUserId(SystemInfo.deviceUniqueIdentifier); // MaxSdk.SetVerboseLogging(true); MaxSdk.InitializeSdk(); #endif } private void LoadAds() { InitializeRewardedAds(); // InitializeBannerAds(); // InitializeInterstitialAds(); } public bool IsRewardedAdReady() { return MaxSdk.IsRewardedAdReady(adRewardUnitId); } public void ShowRewardedAd(Action callback = null) { #if UNITY_EDITOR callback?.Invoke(0); return; #endif if (MaxSdk.IsRewardedAdReady(adRewardUnitId)) { Debug.Log(Tag + "==================== ShowRewardedAd"); _rewardCallback = callback; _rewardOK = false; MaxSdk.ShowRewardedAd(adRewardUnitId); } } public bool IsInterstitialReady() { return MaxSdk.IsInterstitialReady(adInterstitialUnitId); } public void ShowInterstitial() { if (MaxSdk.IsInterstitialReady(adInterstitialUnitId)) { MaxSdk.ShowInterstitial(adInterstitialUnitId); } } public void ShowBanner() { MaxSdk.ShowBanner(bannerAdUnitId); } public void HideBanner() { MaxSdk.HideBanner(bannerAdUnitId); } }