179 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			C#
		
	
	
			
		
		
	
	
			179 lines
		
	
	
		
			6.0 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) {
 | |
|             Debug.LogError("The API has been deprecated");
 | |
|         }
 | |
| 
 | |
|         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;
 | |
|         }
 | |
|     }
 | |
| } |