185 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			C#
		
	
	
		
		
			
		
	
	
			185 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			C#
		
	
	
| 
								 | 
							
								using System;
							 | 
						|||
| 
								 | 
							
								using System.Collections;
							 | 
						|||
| 
								 | 
							
								using System.Runtime.InteropServices;
							 | 
						|||
| 
								 | 
							
								using UnityEngine;
							 | 
						|||
| 
								 | 
							
								namespace AmazonAds.IOS {
							 | 
						|||
| 
								 | 
							
								    public class DTBAdRequest : IAdRequest {
							 | 
						|||
| 
								 | 
							
								        private IntPtr adLoader;
							 | 
						|||
| 
								 | 
							
								        private string _slotGroupName = null;
							 | 
						|||
| 
								 | 
							
								        private IAdSize _bannerAdSize = null;
							 | 
						|||
| 
								 | 
							
								        private IInterstitialAdSize _interstitialAdSize = null;
							 | 
						|||
| 
								 | 
							
								        private IVideo _videoAdSize = null;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public DTBAdRequest () {
							 | 
						|||
| 
								 | 
							
								            adLoader = Externs._createAdLoader ();
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public DTBAdRequest (IntPtr adRequest) {
							 | 
						|||
| 
								 | 
							
								            adLoader = adRequest;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public IntPtr GetInstance(){
							 | 
						|||
| 
								 | 
							
								            return adLoader;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public override void DisposeAd () {
							 | 
						|||
| 
								 | 
							
								            if (fetchManager != null) {
							 | 
						|||
| 
								 | 
							
								                fetchManager.dispense();
							 | 
						|||
| 
								 | 
							
								            } else {
							 | 
						|||
| 
								 | 
							
								                UnityEngine.Debug.LogWarning ("FetchManager not Init. Please turn on auto-refresh.");
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public override void LoadAd (Amazon.OnFailureDelegate failure, Amazon.OnSuccessDelegate success) {
							 | 
						|||
| 
								 | 
							
								            requestHasBeenUsed = true;
							 | 
						|||
| 
								 | 
							
								            if (IsAutoRefreshAdMob ()) {
							 | 
						|||
| 
								 | 
							
								                Schedule.WaitForAdResponce (fetchManager, failure, success);
							 | 
						|||
| 
								 | 
							
								                return;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            DTBCallback callback = new DTBCallback (failure, success);
							 | 
						|||
| 
								 | 
							
								            Externs._loadAd (adLoader, callback.GetPtr ());
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public override void LoadSmartBanner (Amazon.OnFailureDelegate failure, Amazon.OnSuccessDelegate success) {
							 | 
						|||
| 
								 | 
							
								            requestHasBeenUsed = true;
							 | 
						|||
| 
								 | 
							
								            if (IsAutoRefreshAdMob ()) {
							 | 
						|||
| 
								 | 
							
								                Schedule.WaitForAdResponce (fetchManager, failure, success);
							 | 
						|||
| 
								 | 
							
								                return;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            DTBCallback callback = new DTBCallback (failure, success);
							 | 
						|||
| 
								 | 
							
								            Externs._loadSmartBanner (adLoader, callback.GetPtr ());
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public override void LoadAd (Amazon.OnFailureWithErrorDelegate failureWithError, Amazon.OnSuccessDelegate success) {
							 | 
						|||
| 
								 | 
							
								            requestHasBeenUsed = true;
							 | 
						|||
| 
								 | 
							
								            DTBCallback callback = new DTBCallback (failureWithError, success);
							 | 
						|||
| 
								 | 
							
								            Externs._loadAd (adLoader, callback.GetPtr ());
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public override void LoadSmartBanner (Amazon.OnFailureWithErrorDelegate failureWithError, Amazon.OnSuccessDelegate success) {
							 | 
						|||
| 
								 | 
							
								            requestHasBeenUsed = true;
							 | 
						|||
| 
								 | 
							
								            DTBCallback callback = new DTBCallback (failureWithError, success);
							 | 
						|||
| 
								 | 
							
								            Externs._loadSmartBanner (adLoader, callback.GetPtr ());
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public override void PutCustomTarget (string key, string value) {
							 | 
						|||
| 
								 | 
							
								            Externs._putCustomTarget (adLoader, key, value);
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public override void SetAutoRefresh() {
							 | 
						|||
| 
								 | 
							
								            Externs._setAutoRefreshNoArgs(adLoader);
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public override void SetAutoRefresh(int secs) {
							 | 
						|||
| 
								 | 
							
								            Externs._setAutoRefresh(adLoader,secs);
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public override void PauseAutoRefresh() {
							 | 
						|||
| 
								 | 
							
								            Externs._pauseAutoRefresh(adLoader);
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public override void StopAutoRefresh() {
							 | 
						|||
| 
								 | 
							
								            Externs._stopAutoRefresh(adLoader);
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public override void ResumeAutoRefresh() {
							 | 
						|||
| 
								 | 
							
								            Externs._resumeAutoRefresh(adLoader);
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public override void SetAutoRefreshMoPub (bool flag){
							 | 
						|||
| 
								 | 
							
								            SetAutoRefreshMoPub(flag, refreshTime);
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public override void SetAutoRefreshMoPub (bool flag, int refreshTime) {
							 | 
						|||
| 
								 | 
							
								            isAutoRefreshMoPub = flag;
							 | 
						|||
| 
								 | 
							
								            this.refreshTime = refreshTime;
							 | 
						|||
| 
								 | 
							
								            if(flag){
							 | 
						|||
| 
								 | 
							
								                if( requestHasBeenUsed ){
							 | 
						|||
| 
								 | 
							
								                    ResumeAutoRefresh();
							 | 
						|||
| 
								 | 
							
								                } else {
							 | 
						|||
| 
								 | 
							
								                    SetAutoRefresh(refreshTime);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            } else {
							 | 
						|||
| 
								 | 
							
								                PauseAutoRefresh();
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public override void SetAutoRefreshAdMob (bool flag, bool isSmartBanner = false) {
							 | 
						|||
| 
								 | 
							
								            isAutoRefreshAdMob = flag;
							 | 
						|||
| 
								 | 
							
								            if(flag){
							 | 
						|||
| 
								 | 
							
								                CreateFetchManager(isSmartBanner);
							 | 
						|||
| 
								 | 
							
								                StartFetchManager();
							 | 
						|||
| 
								 | 
							
								            } else {
							 | 
						|||
| 
								 | 
							
								                StopFetchManager();
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public override void SetRefreshFlag (bool flag) {
							 | 
						|||
| 
								 | 
							
								            Externs._setRefreshFlag(adLoader, flag);
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public override void StartFetchManager () {
							 | 
						|||
| 
								 | 
							
								            if (fetchManager != null){
							 | 
						|||
| 
								 | 
							
								                fetchManager.start ();
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public override void StopFetchManager () {
							 | 
						|||
| 
								 | 
							
								            if (fetchManager != null){
							 | 
						|||
| 
								 | 
							
								                fetchManager.stop ();
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public override void CreateFetchManager (bool isSmartBanner = false) {
							 | 
						|||
| 
								 | 
							
								            if (fetchManager == null){
							 | 
						|||
| 
								 | 
							
								                fetchManager = new DTBFetchManager(this, autoRefreshID, isSmartBanner);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public override void DestroyFetchManager () {
							 | 
						|||
| 
								 | 
							
								            if (fetchManager != null){
							 | 
						|||
| 
								 | 
							
								                ((AmazonAds.IOS.DTBFetchManager)fetchManager).destroy(autoRefreshID);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public override void SetSizes (IAdSize sizes) {
							 | 
						|||
| 
								 | 
							
								            _bannerAdSize = sizes;
							 | 
						|||
| 
								 | 
							
								            int height = sizes.GetHeight ();
							 | 
						|||
| 
								 | 
							
								            int width = sizes.GetWidth ();
							 | 
						|||
| 
								 | 
							
								            string slotType = "SLOT_" + width + "_" + height;
							 | 
						|||
| 
								 | 
							
								            autoRefreshID = slotType;
							 | 
						|||
| 
								 | 
							
								            Externs._setSizes (adLoader, ((DTBAdSize) sizes).GetInstance ());
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public override void SetSizes (IInterstitialAdSize sizes) {
							 | 
						|||
| 
								 | 
							
								            _interstitialAdSize = sizes;
							 | 
						|||
| 
								 | 
							
								            Externs._setSizes (adLoader, ((DTBAdSize.DTBInterstitialAdSize) sizes).GetInstance ());
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public override void SetSizes (IVideo sizes) {
							 | 
						|||
| 
								 | 
							
								            _videoAdSize = sizes;
							 | 
						|||
| 
								 | 
							
								            Externs._setSizes (adLoader, ((DTBAdSize.DTBVideo) sizes).GetInstance ());
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public override void SetSlotGroup (string slotGroupName) {
							 | 
						|||
| 
								 | 
							
								            _slotGroupName = slotGroupName;
							 | 
						|||
| 
								 | 
							
								            Externs._setSlotGroup (adLoader, slotGroupName);
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public IAdSize GetBannerAdSizes () {
							 | 
						|||
| 
								 | 
							
								            return _bannerAdSize;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public IInterstitialAdSize GetInterstitialSizes () {
							 | 
						|||
| 
								 | 
							
								            return _interstitialAdSize;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public IVideo GetVideoSizes () {
							 | 
						|||
| 
								 | 
							
								            return _videoAdSize;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public string GetSlotGroup () {
							 | 
						|||
| 
								 | 
							
								            return _slotGroupName;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 |