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; | |||
|  |         } | |||
|  |         | |||
|  |     } | |||
|  | } |