315 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			315 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using System; | |||
|  | using System.Collections; | |||
|  | using System.Collections.Generic; | |||
|  | using UnityEngine; | |||
|  | 
 | |||
|  | using AnyThinkAds.Common; | |||
|  | using AnyThinkAds.Api; | |||
|  | #pragma warning disable 0067 | |||
|  | namespace AnyThinkAds.Android | |||
|  | { | |||
|  |     public class ATBannerAdClient : AndroidJavaProxy, IATBannerAdClient | |||
|  |     { | |||
|  | 
 | |||
|  |         private Dictionary<string, AndroidJavaObject> bannerHelperMap = new Dictionary<string, AndroidJavaObject>(); | |||
|  | 
 | |||
|  |          | |||
|  |         private  ATBannerAdListener anyThinkListener; | |||
|  | 
 | |||
|  |          public event EventHandler<ATAdEventArgs> onAdLoadEvent; | |||
|  | 
 | |||
|  |         // triggers when a banner ad has failed to load | |||
|  |         public event EventHandler<ATAdErrorEventArgs> onAdLoadFailureEvent; | |||
|  | 
 | |||
|  |         // triggers when a banner ad generates an impression | |||
|  |         public event EventHandler<ATAdEventArgs> onAdImpressEvent; | |||
|  | 
 | |||
|  |         // triggers when the user clicks a banner ad | |||
|  |         public event EventHandler<ATAdEventArgs> onAdClickEvent; | |||
|  | 
 | |||
|  |         // triggers when the ad refreshes | |||
|  |         public event EventHandler<ATAdEventArgs> onAdAutoRefreshEvent; | |||
|  | 
 | |||
|  |         // triggers when the ad fails to auto refresh | |||
|  |         public event EventHandler<ATAdErrorEventArgs> onAdAutoRefreshFailureEvent; | |||
|  | 
 | |||
|  |         // triggers when the banner ad is closed | |||
|  |         public event EventHandler<ATAdEventArgs> onAdCloseEvent; | |||
|  | 
 | |||
|  |         // triggers when the users closes the ad via the button | |||
|  |         public event EventHandler<ATAdEventArgs> onAdCloseButtonTappedEvent; | |||
|  | 
 | |||
|  |         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; | |||
|  | 
 | |||
|  |         public ATBannerAdClient() : base("com.thinkup.unitybridge.banner.BannerListener") | |||
|  |         { | |||
|  |              | |||
|  |         } | |||
|  | 
 | |||
|  | 
 | |||
|  |         public void loadBannerAd(string placementId, string mapJson) | |||
|  |         { | |||
|  | 
 | |||
|  |             //如果不存在则直接创建对应广告位的helper | |||
|  |             if(!bannerHelperMap.ContainsKey(placementId)) | |||
|  |             { | |||
|  |                 AndroidJavaObject bannerHelper = new AndroidJavaObject( | |||
|  |                     "com.thinkup.unitybridge.banner.BannerHelper", this); | |||
|  |                 bannerHelper.Call("initBanner", placementId); | |||
|  |                 bannerHelperMap.Add(placementId, bannerHelper); | |||
|  |                 Debug.Log("ATBannerAdClient : no exit helper ,create helper "); | |||
|  |             } | |||
|  | 
 | |||
|  |             try | |||
|  |             { | |||
|  |                 Debug.Log("ATBannerAdClient : loadBannerAd "); | |||
|  |                 bannerHelperMap[placementId].Call("loadBannerAd", mapJson); | |||
|  |             } | |||
|  |             catch (System.Exception e) | |||
|  |             { | |||
|  |                 System.Console.WriteLine("Exception caught: {0}", e); | |||
|  |                 Debug.Log ("ATBannerAdClient :  error."+e.Message); | |||
|  |             } | |||
|  | 
 | |||
|  | 
 | |||
|  |         } | |||
|  | 
 | |||
|  |         public string checkAdStatus(string placementId) | |||
|  |         { | |||
|  |             string adStatusJsonString = ""; | |||
|  |             Debug.Log("ATBannerAdClient : checkAdStatus...."); | |||
|  |             try | |||
|  |             { | |||
|  |                 if (bannerHelperMap.ContainsKey(placementId)) | |||
|  |                 { | |||
|  |                     adStatusJsonString = bannerHelperMap[placementId].Call<string>("checkAdStatus"); | |||
|  |                 } | |||
|  |             } | |||
|  |             catch (System.Exception e) | |||
|  |             { | |||
|  |                 System.Console.WriteLine("Exception caught: {0}", e); | |||
|  |                 Debug.Log("ATBannerAdClient :  error." + e.Message); | |||
|  |             } | |||
|  | 
 | |||
|  |             return adStatusJsonString; | |||
|  |         } | |||
|  | 
 | |||
|  |         public string getValidAdCaches(string placementId) | |||
|  |         { | |||
|  |             string validAdCachesString = ""; | |||
|  |             Debug.Log("ATBannerAdClient : getValidAdCaches...."); | |||
|  |             try | |||
|  |             { | |||
|  |                 if (bannerHelperMap.ContainsKey(placementId)) | |||
|  |                 { | |||
|  |                     validAdCachesString = bannerHelperMap[placementId].Call<string>("getValidAdCaches"); | |||
|  |                 } | |||
|  |             } | |||
|  |             catch (System.Exception e) | |||
|  |             { | |||
|  |                 System.Console.WriteLine("Exception caught: {0}", e); | |||
|  |                 Debug.Log("ATBannerAdClient :  error." + e.Message); | |||
|  |             } | |||
|  | 
 | |||
|  |             return validAdCachesString; | |||
|  |         } | |||
|  | 
 | |||
|  | 
 | |||
|  |         public void setListener(ATBannerAdListener listener) | |||
|  |         { | |||
|  |             anyThinkListener = listener; | |||
|  |         } | |||
|  | 
 | |||
|  | 
 | |||
|  |         public void showBannerAd(string placementId, string position, string mapJson) | |||
|  |         { | |||
|  |             Debug.Log("ATBannerAdClient : showBannerAd by position" ); | |||
|  |             //todo | |||
|  |             try | |||
|  |             { | |||
|  |                 if (bannerHelperMap.ContainsKey(placementId)) | |||
|  |                 { | |||
|  |                     this.bannerHelperMap[placementId].Call("showBannerAd", position, mapJson); | |||
|  |                 } | |||
|  |             } | |||
|  |             catch (System.Exception e) | |||
|  |             { | |||
|  |                 System.Console.WriteLine("Exception caught: {0}", e); | |||
|  |                 Debug.Log("ATBannerAdClient :  error." + e.Message); | |||
|  |             } | |||
|  | 
 | |||
|  |         } | |||
|  |         | |||
|  | 
 | |||
|  | 		 | |||
|  |         public void showBannerAd(string placementId, ATRect rect, string mapJson) | |||
|  |         { | |||
|  |             Debug.Log("ATBannerAdClient : showBannerAd " ); | |||
|  | 
 | |||
|  | 			try{ | |||
|  |                 if (bannerHelperMap.ContainsKey(placementId)) { | |||
|  |                     this.bannerHelperMap[placementId].Call ("showBannerAd", rect.x, rect.y, rect.width, rect.height, mapJson, rect.usesPixel); | |||
|  | 				} | |||
|  | 			}catch(System.Exception e){ | |||
|  | 				System.Console.WriteLine("Exception caught: {0}", e); | |||
|  |                 Debug.Log ("ATBannerAdClient :  error."+e.Message); | |||
|  | 
 | |||
|  | 			} | |||
|  |         } | |||
|  | 
 | |||
|  |         public void cleanBannerAd(string placementId) | |||
|  |         { | |||
|  | 			 | |||
|  |             Debug.Log("ATBannerAdClient : cleanBannerAd" ); | |||
|  | 
 | |||
|  | 			try{ | |||
|  |                 if (bannerHelperMap.ContainsKey(placementId)) { | |||
|  |                     this.bannerHelperMap[placementId].Call ("cleanBannerAd"); | |||
|  | 				} | |||
|  | 			}catch(System.Exception e){ | |||
|  | 				System.Console.WriteLine("Exception caught: {0}", e); | |||
|  |                 Debug.Log ("ATBannerAdClient :  error."+e.Message); | |||
|  | 			} | |||
|  |         } | |||
|  | 
 | |||
|  |         public void hideBannerAd(string placementId)  | |||
|  |         { | |||
|  |             Debug.Log("ATBannerAdClient : hideBannerAd"); | |||
|  | 
 | |||
|  |             try | |||
|  |             { | |||
|  |                 if (bannerHelperMap.ContainsKey(placementId)) | |||
|  |                 { | |||
|  |                     this.bannerHelperMap[placementId].Call("hideBannerAd"); | |||
|  |                 } | |||
|  |             } | |||
|  |             catch (System.Exception e) | |||
|  |             { | |||
|  |                 System.Console.WriteLine("Exception caught: {0}", e); | |||
|  |                 Debug.Log("ATBannerAdClient :  error." + e.Message); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         //针对已有的进行展示,没有就调用该方法无效 | |||
|  |         public void showBannerAd(string placementId) | |||
|  |         { | |||
|  |             Debug.Log("ATBannerAdClient : showBannerAd "); | |||
|  | 
 | |||
|  |             try | |||
|  |             { | |||
|  |                 if (bannerHelperMap.ContainsKey(placementId)) | |||
|  |                 { | |||
|  |                     this.bannerHelperMap[placementId].Call("showBannerAd"); | |||
|  |                 } | |||
|  |             } | |||
|  |             catch (System.Exception e) | |||
|  |             { | |||
|  |                 System.Console.WriteLine("Exception caught: {0}", e); | |||
|  |                 Debug.Log("ATBannerAdClient :  error." + e.Message); | |||
|  | 
 | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         public void cleanCache(string placementId) | |||
|  |         { | |||
|  |              | |||
|  |         } | |||
|  | 
 | |||
|  |         | |||
|  |         //广告加载成功 | |||
|  |         public void onBannerLoaded(string placementId) | |||
|  |         { | |||
|  |             Debug.Log("onBannerLoaded...unity3d."); | |||
|  |             onAdLoadEvent?.Invoke(this, new ATAdEventArgs(placementId)); | |||
|  |         } | |||
|  | 
 | |||
|  |         //广告加载失败 | |||
|  |         public void onBannerFailed(string placementId,string code, string error) | |||
|  |         { | |||
|  |             Debug.Log("onBannerFailed...unity3d."); | |||
|  |             onAdLoadFailureEvent?.Invoke(this, new ATAdErrorEventArgs(placementId, code, error)); | |||
|  |         } | |||
|  | 
 | |||
|  |         //广告点击 | |||
|  |         public void onBannerClicked(string placementId, string callbackJson) | |||
|  |         { | |||
|  |             Debug.Log("onBannerClicked...unity3d."); | |||
|  |             onAdClickEvent?.Invoke(this, new ATAdEventArgs(placementId, callbackJson)); | |||
|  |         } | |||
|  | 
 | |||
|  |         //广告展示 | |||
|  |         public void onBannerShow(string placementId, string callbackJson) | |||
|  |         { | |||
|  |             Debug.Log("onBannerShow...unity3d."); | |||
|  |           onAdImpressEvent?.Invoke(this, new ATAdEventArgs(placementId, callbackJson)); | |||
|  |         } | |||
|  | 
 | |||
|  |         //广告关闭 | |||
|  |         public void onBannerClose(string placementId, string callbackJson) | |||
|  |         { | |||
|  |             Debug.Log("onBannerClose...unity3d."); | |||
|  |            onAdCloseEvent?.Invoke(this, new ATAdEventArgs(placementId, callbackJson)); | |||
|  |         } | |||
|  |         //广告关闭 | |||
|  |         public void onBannerAutoRefreshed(string placementId, string callbackJson) | |||
|  |         { | |||
|  |             Debug.Log("onBannerAutoRefreshed...unity3d."); | |||
|  |             onAdAutoRefreshEvent?.Invoke(this, new ATAdEventArgs(placementId, callbackJson)); | |||
|  |         } | |||
|  |         //广告自动刷新失败 | |||
|  |         public void onBannerAutoRefreshFail(string placementId, string code, string msg) | |||
|  |         { | |||
|  |             Debug.Log("onBannerAutoRefreshFail...unity3d."); | |||
|  |             onAdAutoRefreshFailureEvent?.Invoke(this, new ATAdErrorEventArgs(placementId, code, msg)); | |||
|  |         } | |||
|  | 
 | |||
|  |         // 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)); | |||
|  |         } | |||
|  | 
 | |||
|  |     } | |||
|  | } |