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