428 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			428 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			C#
		
	
	
	
| using System;
 | |
| using System.Collections;
 | |
| using System.Collections.Generic;
 | |
| using UnityEngine;
 | |
| 
 | |
| using AnyThinkAds.Common;
 | |
| using AnyThinkAds.Api;
 | |
| using AnyThinkAds.ThirdParty.LitJson;
 | |
| namespace AnyThinkAds.Android
 | |
| {
 | |
|     public class ATInterstitialAdClient : AndroidJavaProxy,IATInterstitialAdClient
 | |
|     {
 | |
|         public event EventHandler<ATAdEventArgs>        onAdLoadEvent;
 | |
|         public event EventHandler<ATAdErrorEventArgs>   onAdLoadFailureEvent;
 | |
|         public event EventHandler<ATAdEventArgs>        onAdShowEvent;
 | |
|         public event EventHandler<ATAdErrorEventArgs>   onAdShowFailureEvent;
 | |
|         public event EventHandler<ATAdEventArgs>        onAdCloseEvent;
 | |
|         public event EventHandler<ATAdEventArgs>        onAdClickEvent;
 | |
|         public event EventHandler<ATAdEventArgs>        onAdVideoStartEvent;
 | |
|         public event EventHandler<ATAdErrorEventArgs>   onAdVideoFailureEvent;
 | |
|         public event EventHandler<ATAdEventArgs>        onAdVideoEndEvent;
 | |
|         public event EventHandler<ATAdEventArgs>        onAdSourceAttemptEvent;
 | |
|         public event EventHandler<ATAdEventArgs>        onAdSourceFilledEvent;
 | |
|         public event EventHandler<ATAdErrorEventArgs>   onAdSourceLoadFailureEvent;
 | |
|         public event EventHandler<ATAdEventArgs>        onAdSourceBiddingAttemptEvent;
 | |
|         public event EventHandler<ATAdEventArgs>        onAdSourceBiddingFilledEvent;
 | |
|         public event EventHandler<ATAdErrorEventArgs>   onAdSourceBiddingFailureEvent;
 | |
| 
 | |
|         private Dictionary<string, AndroidJavaObject> interstitialHelperMap = new Dictionary<string, AndroidJavaObject>();
 | |
| 
 | |
| 		//private  AndroidJavaObject videoHelper;
 | |
|         private  ATInterstitialAdListener anyThinkListener;
 | |
| 
 | |
|         private AndroidJavaObject interstitialAutoAdHelper;
 | |
| 
 | |
|         public ATInterstitialAdClient() : base("com.thinkup.unitybridge.interstitial.InterstitialListener")
 | |
|         {
 | |
|             interstitialAutoAdHelper = new AndroidJavaObject("com.thinkup.unitybridge.interstitial.InterstitialAutoAdHelper", this);
 | |
|         }
 | |
| 
 | |
| 
 | |
|         public void loadInterstitialAd(string placementId, string mapJson)
 | |
|         {
 | |
| 
 | |
|             //如果不存在则直接创建对应广告位的helper
 | |
|             if(!interstitialHelperMap.ContainsKey(placementId))
 | |
|             {
 | |
|                 AndroidJavaObject videoHelper = new AndroidJavaObject(
 | |
|                     "com.thinkup.unitybridge.interstitial.InterstitialHelper", this);
 | |
|                 videoHelper.Call("initInterstitial", placementId);
 | |
|                 interstitialHelperMap.Add(placementId, videoHelper);
 | |
|                 Debug.Log("ATInterstitialAdClient : no exit helper ,create helper ");
 | |
|             }
 | |
| 
 | |
|             try
 | |
|             {
 | |
|                 Debug.Log("ATInterstitialAdClient : loadInterstitialAd ");
 | |
|                 interstitialHelperMap[placementId].Call("loadInterstitialAd", mapJson);
 | |
|             }
 | |
|             catch (System.Exception e)
 | |
|             {
 | |
|                 System.Console.WriteLine("Exception caught: {0}", e);
 | |
| 				Debug.Log ("ATInterstitialAdClient :  error."+e.Message);
 | |
|             }
 | |
| 
 | |
| 
 | |
|         }
 | |
| 
 | |
|         public void setListener(ATInterstitialAdListener listener)
 | |
|         {
 | |
|             anyThinkListener = listener;
 | |
|         }
 | |
| 
 | |
|         public bool hasInterstitialAdReady(string placementId)
 | |
|         {
 | |
| 			bool isready = false;
 | |
| 			Debug.Log ("ATInterstitialAdClient : hasAdReady....");
 | |
| 			try{
 | |
|                 if (interstitialHelperMap.ContainsKey(placementId)) {
 | |
|                     isready = interstitialHelperMap[placementId].Call<bool> ("isAdReady");
 | |
| 				}
 | |
| 			}catch(System.Exception e){
 | |
| 				System.Console.WriteLine("Exception caught: {0}", e);
 | |
| 				Debug.Log ("ATInterstitialAdClient :  error."+e.Message);
 | |
| 			}
 | |
| 			return isready; 
 | |
|         }
 | |
| 
 | |
|         public string checkAdStatus(string placementId)
 | |
|         {
 | |
|             string adStatusJsonString = "";
 | |
|             Debug.Log("ATInterstitialAdClient : checkAdStatus....");
 | |
|             try
 | |
|             {
 | |
|                 if (interstitialHelperMap.ContainsKey(placementId))
 | |
|                 {
 | |
|                     adStatusJsonString = interstitialHelperMap[placementId].Call<string>("checkAdStatus");
 | |
|                 }
 | |
|             }
 | |
|             catch (System.Exception e)
 | |
|             {
 | |
|                 System.Console.WriteLine("Exception caught: {0}", e);
 | |
|                 Debug.Log("ATInterstitialAdClient :  error." + e.Message);
 | |
|             }
 | |
| 
 | |
|             return adStatusJsonString;
 | |
|         }
 | |
|         
 | |
|         public void entryScenarioWithPlacementID(string placementId, string scenarioID){
 | |
|             Debug.Log("ATInterstitialAdClient : entryScenarioWithPlacementID....");
 | |
|             try
 | |
|             {
 | |
|                 if (interstitialHelperMap.ContainsKey(placementId))
 | |
|                 {
 | |
|                     interstitialHelperMap[placementId].Call("entryAdScenario", scenarioID);
 | |
|                 }
 | |
|             }
 | |
|             catch (System.Exception e)
 | |
|             {
 | |
|                 System.Console.WriteLine("Exception caught: {0}", e);
 | |
|                 Debug.Log("ATInterstitialAdClient entryScenarioWithPlacementID:  error." + e.Message);
 | |
|             }
 | |
| 
 | |
| 
 | |
|         }
 | |
| 
 | |
| 
 | |
|         public string getValidAdCaches(string placementId)
 | |
|         {
 | |
|             string validAdCachesString = "";
 | |
|             Debug.Log("ATNativeAdClient : getValidAdCaches....");
 | |
|             try
 | |
|             {
 | |
|                 if (interstitialHelperMap.ContainsKey(placementId))
 | |
|                 {
 | |
|                     validAdCachesString = interstitialHelperMap[placementId].Call<string>("getValidAdCaches");
 | |
|                 }
 | |
|             }
 | |
|             catch (System.Exception e)
 | |
|             {
 | |
|                 System.Console.WriteLine("Exception caught: {0}", e);
 | |
|                 Debug.Log("ATNativeAdClient :  error." + e.Message);
 | |
|             }
 | |
| 
 | |
|             return validAdCachesString;
 | |
|         }
 | |
| 
 | |
|         public void showInterstitialAd(string placementId, string jsonmap)
 | |
|         {
 | |
| 			Debug.Log("ATInterstitialAdClient : showAd " );
 | |
| 
 | |
| 			try{
 | |
|                 if (interstitialHelperMap.ContainsKey(placementId)) {
 | |
|                     this.interstitialHelperMap[placementId].Call ("showInterstitialAd", jsonmap);
 | |
| 				}
 | |
| 			}catch(System.Exception e){
 | |
| 				System.Console.WriteLine("Exception caught: {0}", e);
 | |
| 				Debug.Log ("ATInterstitialAdClient :  error."+e.Message);
 | |
| 
 | |
| 			}
 | |
|         }
 | |
| 
 | |
| 
 | |
|         public void cleanCache(string placementId)
 | |
|         {
 | |
| 			
 | |
| 			Debug.Log("ATInterstitialAdClient : clean" );
 | |
| 
 | |
| 			try{
 | |
|                 if (interstitialHelperMap.ContainsKey(placementId)) {
 | |
|                     this.interstitialHelperMap[placementId].Call ("clean");
 | |
| 				}
 | |
| 			}catch(System.Exception e){
 | |
| 				System.Console.WriteLine("Exception caught: {0}", e);
 | |
| 				Debug.Log ("ATInterstitialAdClient :  error."+e.Message);
 | |
| 			}
 | |
|         }
 | |
| 
 | |
|         public void onApplicationForces(string placementId)
 | |
|         {
 | |
| 			Debug.Log ("onApplicationForces.... ");
 | |
| 			try{
 | |
| 				if (interstitialHelperMap.ContainsKey(placementId)) {
 | |
| 					this.interstitialHelperMap[placementId].Call ("onResume");
 | |
| 				}
 | |
| 			}catch(System.Exception e){
 | |
| 				System.Console.WriteLine("Exception caught: {0}", e);
 | |
| 				Debug.Log ("ATInterstitialAdClient :  error."+e.Message);
 | |
| 			}
 | |
|         }
 | |
| 
 | |
|         public void onApplicationPasue(string placementId)
 | |
|         {
 | |
| 			Debug.Log ("onApplicationPasue.... ");
 | |
| 			try{
 | |
| 				if (interstitialHelperMap.ContainsKey(placementId)) {
 | |
| 					this.interstitialHelperMap[placementId].Call ("onPause");
 | |
| 				}
 | |
| 			}catch(System.Exception e){
 | |
| 				System.Console.WriteLine("Exception caught: {0}", e);
 | |
| 				Debug.Log ("ATInterstitialAdClient :  error."+e.Message);
 | |
| 			}
 | |
|         }
 | |
| 
 | |
|         //广告加载成功
 | |
|         public void onInterstitialAdLoaded(string placementId)
 | |
|         {
 | |
|             Debug.Log("onInterstitialAdLoaded...unity3d.");
 | |
|              onAdLoadEvent?.Invoke(this, new ATAdEventArgs(placementId));
 | |
|         }
 | |
| 
 | |
|         //广告加载失败
 | |
|         public void onInterstitialAdLoadFail(string placementId,string code, string error)
 | |
|         {
 | |
|             Debug.Log("onInterstitialAdFailed...unity3d.");
 | |
|              onAdLoadFailureEvent?.Invoke(this, new ATAdErrorEventArgs(placementId, code, error));
 | |
|         }
 | |
| 
 | |
|         //开始播放
 | |
|         public void onInterstitialAdVideoStart(string placementId, string callbackJson)
 | |
|         {
 | |
|             Debug.Log("onInterstitialAdPlayStart...unity3d.");
 | |
|             onAdVideoStartEvent?.Invoke(this, new ATAdEventArgs(placementId, callbackJson));
 | |
|         }
 | |
| 
 | |
|         //结束播放
 | |
|         public void onInterstitialAdVideoEnd(string placementId, string callbackJson)
 | |
|         {
 | |
|             Debug.Log("onInterstitialAdPlayEnd...unity3d.");
 | |
|            onAdVideoEndEvent?.Invoke(this, new ATAdEventArgs(placementId, callbackJson));
 | |
|         }
 | |
| 
 | |
|         //播放失败
 | |
|         public void onInterstitialAdVideoError(string placementId,string code, string error)
 | |
|         {
 | |
|             Debug.Log("onInterstitialAdPlayFailed...unity3d.");
 | |
|             onAdVideoFailureEvent?.Invoke(this, new ATAdErrorEventArgs(placementId, code, error));
 | |
|         }
 | |
|         
 | |
|         //展示失败
 | |
|          public void OnInterstitialAdFailedToShow(string placementID) {
 | |
| 	    	Debug.Log("Unity: ATInterstitialAdClient::OnInterstitialAdFailedToShow()");
 | |
| 	        onAdShowFailureEvent?.Invoke(this, new ATAdErrorEventArgs(placementID, "-1", "Failed to show video ad"));
 | |
| 	    }
 | |
| 
 | |
| 
 | |
|         //广告关闭
 | |
|         public void onInterstitialAdClose(string placementId, string callbackJson)
 | |
|         {
 | |
|             Debug.Log("onInterstitialAdClosed...unity3d.");
 | |
|              onAdCloseEvent?.Invoke(this, new ATAdEventArgs(placementId, callbackJson));
 | |
|         }
 | |
|         //广告点击
 | |
|         public void onInterstitialAdClicked(string placementId, string callbackJson)
 | |
|         {
 | |
|             Debug.Log("onInterstitialAdClicked...unity3d.");
 | |
|             onAdClickEvent?.Invoke(this, new ATAdEventArgs(placementId, callbackJson));
 | |
|         }
 | |
| 
 | |
|         public void onInterstitialAdShow(string placementId, string callbackJson){
 | |
|             Debug.Log("onInterstitialAdShow...unity3d.");
 | |
|               onAdShowEvent?.Invoke(this, new ATAdEventArgs(placementId, callbackJson));
 | |
|         }
 | |
| 
 | |
|         // Adsource Listener
 | |
|         public void onAdSourceBiddingAttempt(string placementId, string callbackJson)
 | |
|         {
 | |
|             Debug.Log("onAdSourceBiddingAttempt...unity3d." + placementId + "," + callbackJson);
 | |
|             onAdSourceBiddingAttemptEvent?.Invoke(this, new ATAdEventArgs(placementId, callbackJson));
 | |
|         }
 | |
| 
 | |
|         public void onAdSourceBiddingFilled(string placementId, string callbackJson)
 | |
|         {
 | |
|             Debug.Log("onAdSourceBiddingFilled...unity3d." + placementId + "," + callbackJson);
 | |
|            
 | |
|             onAdSourceBiddingFilledEvent?.Invoke(this, new ATAdEventArgs(placementId, callbackJson));
 | |
|         }
 | |
| 
 | |
|         public void onAdSourceBiddingFail(string placementId, string callbackJson, string code, string error)
 | |
|         {
 | |
|             Debug.Log("onAdSourceBiddingFail...unity3d." + placementId + "," + code + "," + error + "," + callbackJson);
 | |
|            
 | |
|             onAdSourceBiddingFailureEvent?.Invoke(this, new ATAdErrorEventArgs(placementId, callbackJson, code, error));
 | |
|         }
 | |
| 
 | |
|         public void onAdSourceAttempt(string placementId, string callbackJson)
 | |
|         {
 | |
|             Debug.Log("onAdSourceAttempt...unity3d." + placementId + "," + callbackJson);
 | |
|             
 | |
|             onAdSourceAttemptEvent?.Invoke(this, new ATAdEventArgs(placementId, callbackJson));
 | |
|         }
 | |
| 
 | |
|         public void onAdSourceLoadFilled(string placementId, string callbackJson)
 | |
|         {
 | |
|             Debug.Log("onAdSourceLoadFilled...unity3d." + placementId + "," + callbackJson);
 | |
|            
 | |
|             onAdSourceFilledEvent?.Invoke(this, new ATAdEventArgs(placementId, callbackJson));
 | |
|         }
 | |
| 
 | |
|         public void onAdSourceLoadFail(string placementId, string callbackJson, string code, string error)
 | |
|         {
 | |
|             Debug.Log("onAdSourceLoadFail...unity3d." + placementId + "," + code + "," + error + "," + callbackJson);
 | |
|            
 | |
|             onAdSourceLoadFailureEvent?.Invoke(this, new ATAdErrorEventArgs(placementId, callbackJson, code, error));
 | |
|         }
 | |
| 
 | |
|         // Auto
 | |
|         public void addAutoLoadAdPlacementID(string[] placementIDList){
 | |
|             Debug.Log("Unity: ATInterstitialAdClient:addAutoLoadAdPlacementID()" + JsonMapper.ToJson(placementIDList));
 | |
|             try
 | |
|             {
 | |
|                 interstitialAutoAdHelper.Call("addPlacementIds", JsonMapper.ToJson(placementIDList));
 | |
|             }
 | |
|             catch (System.Exception e)
 | |
|             {
 | |
|                 System.Console.WriteLine("Exception caught: {0}", e);
 | |
|                 Debug.Log("Unity: ATInterstitialAdClient addAutoLoadAdPlacementID:  error." + e.Message);
 | |
|             }
 | |
|         }
 | |
| 
 | |
| 		public void removeAutoLoadAdPlacementID(string placementId) 
 | |
| 		{
 | |
|             Debug.Log("Unity: ATInterstitialAdClient:removeAutoLoadAdPlacementID()");
 | |
|             try
 | |
|             {
 | |
|                 interstitialAutoAdHelper.Call("removePlacementIds", placementId);
 | |
|             }
 | |
|             catch (System.Exception e)
 | |
|             {
 | |
|                 System.Console.WriteLine("Exception caught: {0}", e);
 | |
|                 Debug.Log("Unity: ATInterstitialAdClient removeAutoLoadAdPlacementID:  error." + e.Message);
 | |
|             }
 | |
|         }
 | |
| 
 | |
| 		public bool autoLoadInterstitialAdReadyForPlacementID(string placementId) 
 | |
| 		{
 | |
| 			Debug.Log("Unity: ATInterstitialAdClient:autoLoadInterstitialAdReadyForPlacementID()");
 | |
|             bool isready = false;
 | |
|             try
 | |
|             {
 | |
|                 isready = interstitialAutoAdHelper.Call<bool>("isAdReady", placementId);
 | |
|             }
 | |
|             catch (System.Exception e)
 | |
|             {
 | |
|                 System.Console.WriteLine("Exception caught: {0}", e);
 | |
|                 Debug.Log("ATInterstitialAdClient:autoLoadInterstitialAdReadyForPlacementID( :  error." + e.Message);
 | |
|             }
 | |
|             return isready;
 | |
|         }
 | |
| 		public string getAutoValidAdCaches(string placementId)
 | |
| 		{
 | |
| 			Debug.Log("Unity: ATInterstitialAdClient:getAutoValidAdCaches()");
 | |
|             string adStatusJsonString = "";
 | |
|             try
 | |
|             {
 | |
|                 adStatusJsonString = interstitialAutoAdHelper.Call<string>("getValidAdCaches", placementId);
 | |
|             }
 | |
|             catch (System.Exception e)
 | |
|             {
 | |
|                 System.Console.WriteLine("Exception caught: {0}", e);
 | |
|                 Debug.Log("ATInterstitialAdClient:getAutoValidAdCaches() :  error." + e.Message);
 | |
|             }
 | |
| 
 | |
|             return adStatusJsonString;
 | |
|         }
 | |
| 
 | |
|         public void setAutoLocalExtra(string placementId, string mapJson)
 | |
|         {
 | |
|             Debug.Log("Unity: ATInterstitialAdClient:setAutoLocalExtra()");
 | |
|             try
 | |
|             {
 | |
|                 interstitialAutoAdHelper.Call("setAdExtraData", placementId, mapJson);
 | |
|             }
 | |
|             catch (System.Exception e)
 | |
|             {
 | |
|                 System.Console.WriteLine("Exception caught: {0}", e);
 | |
|                 Debug.Log("ATInterstitialAdClient:setAutoLocalExtra() :  error." + e.Message);
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         public void entryAutoAdScenarioWithPlacementID(string placementId, string scenarioID) 
 | |
| 		{
 | |
| 			Debug.Log("Unity: ATInterstitialAdClient:entryAutoAdScenarioWithPlacementID()");
 | |
|             try
 | |
|             {
 | |
|                 interstitialAutoAdHelper.Call("entryAdScenario", placementId, scenarioID);
 | |
|             }
 | |
|             catch (System.Exception e)
 | |
|             {
 | |
|                 System.Console.WriteLine("Exception caught: {0}", e);
 | |
|                 Debug.Log("ATInterstitialAdClient:entryAutoAdScenarioWithPlacementID() :  error." + e.Message);
 | |
|             }
 | |
|         }
 | |
| 
 | |
| 		public void showAutoAd(string placementId, string mapJson) 
 | |
| 		{
 | |
| 	    	Debug.Log("Unity: ATInterstitialAdClient::showAutoAd()");
 | |
|             try
 | |
|             {
 | |
|                 interstitialAutoAdHelper.Call("show", placementId, mapJson);
 | |
|             }
 | |
|             catch (System.Exception e)
 | |
|             {
 | |
|                 System.Console.WriteLine("Exception caught: {0}", e);
 | |
|                 Debug.Log("Unity: ATInterstitialAdClient:showAutoAd() :  error." + e.Message);
 | |
|             }
 | |
|         }
 | |
|         
 | |
|         public string checkAutoAdStatus(string placementId)
 | |
|         {
 | |
|             Debug.Log("Unity: ATInterstitialAdClient:checkAutoAdStatus() : checkAutoAdStatus....");
 | |
|             string adStatusJsonString = "";
 | |
|             try
 | |
|             {
 | |
|                 adStatusJsonString = interstitialAutoAdHelper.Call<string>("checkAdStatus", placementId);
 | |
|             }
 | |
|             catch (System.Exception e)
 | |
|             {
 | |
|                 System.Console.WriteLine("Exception caught: {0}", e);
 | |
|                 Debug.Log("Unity: ATInterstitialAdClient:checkAutoAdStatus() :  error." + e.Message);
 | |
|             }
 | |
| 
 | |
|             return adStatusJsonString;
 | |
|         }
 | |
|        
 | |
|     }
 | |
| }
 |