343 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			343 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C#
		
	
	
	
| using System;
 | |
| using System.Collections;
 | |
| using System.Collections.Generic;
 | |
| using UnityEngine;
 | |
| using AnyThinkAds.Common;
 | |
| using AnyThinkAds.Api;
 | |
| 
 | |
| namespace AnyThinkAds.Android
 | |
| {
 | |
|     public class ATNativeAdClient : AndroidJavaProxy, IATNativeAdClient
 | |
|     {
 | |
| 		public event EventHandler<ATAdEventArgs>            onAdLoadEvent;
 | |
|         public event EventHandler<ATAdErrorEventArgs>       onAdLoadFailureEvent;
 | |
|         public event EventHandler<ATAdEventArgs>            onAdImpressEvent;
 | |
|         public event EventHandler<ATAdEventArgs>            onAdClickEvent;
 | |
|         public event EventHandler<ATAdEventArgs>            onAdVideoStartEvent;
 | |
|         public event EventHandler<ATAdEventArgs>            onAdVideoEndEvent;
 | |
|         public event EventHandler<ATAdProgressEventArgs>    onAdVideoProgressEvent;
 | |
|         public event EventHandler<ATAdEventArgs>            onAdCloseEvent;
 | |
|         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> nativeAdHelperMap = new Dictionary<string, AndroidJavaObject>();
 | |
|         private ATNativeAdListener mlistener;
 | |
| 
 | |
|         public ATNativeAdClient(): base("com.thinkup.unitybridge.nativead.NativeListener")
 | |
|         {
 | |
| 
 | |
|         }
 | |
| 
 | |
|         public void loadNativeAd(string placementId, string mapJson)
 | |
|         {
 | |
| 			Debug.Log ("loadNativeAd....jsonmap:"+mapJson);
 | |
|             if(!nativeAdHelperMap.ContainsKey(placementId)){
 | |
|                 AndroidJavaObject nativeHelper = new AndroidJavaObject(
 | |
|                     "com.thinkup.unitybridge.nativead.NativeHelper", this);
 | |
|                 nativeHelper.Call("initNative", placementId);
 | |
|                 nativeAdHelperMap.Add(placementId, nativeHelper);
 | |
|             }
 | |
| 			try{
 | |
|                 if (nativeAdHelperMap.ContainsKey(placementId)) {
 | |
|                     nativeAdHelperMap[placementId].Call ("loadNative",mapJson);
 | |
| 				}
 | |
| 			}catch(System.Exception e){
 | |
| 				System.Console.WriteLine("Exception caught: {0}", e);
 | |
| 				Debug.Log ("ATNativeAdClient :  error."+e.Message);
 | |
| 			}
 | |
|         }
 | |
| 
 | |
| 
 | |
|         public bool hasAdReady(string placementId)
 | |
|         {
 | |
| 			bool isready = false;
 | |
| 			Debug.Log ("hasAdReady....");
 | |
| 			try{
 | |
|                 if (nativeAdHelperMap.ContainsKey(placementId)) {
 | |
|                     isready = nativeAdHelperMap[placementId].Call<bool> ("isAdReady");
 | |
| 				}
 | |
| 			}catch(System.Exception e){
 | |
| 				System.Console.WriteLine("Exception caught: {0}", e);
 | |
| 				Debug.Log ("ATNativeAdClient :  error."+e.Message);
 | |
| 			}
 | |
| 			return isready;   
 | |
|         }
 | |
|         
 | |
|         public void entryScenarioWithPlacementID(string placementId, string scenarioID){
 | |
|             Debug.Log("ATNativeAdClient : entryScenarioWithPlacementID....");
 | |
|             try
 | |
|             {
 | |
|                 if (nativeAdHelperMap.ContainsKey(placementId))
 | |
|                 {
 | |
|                     nativeAdHelperMap[placementId].Call("entryAdScenario", scenarioID);
 | |
|                 }
 | |
|             }
 | |
|             catch (System.Exception e)
 | |
|             {
 | |
|                 System.Console.WriteLine("Exception caught: {0}", e);
 | |
|                 Debug.Log("ATNativeAdClient entryScenarioWithPlacementID:  error." + e.Message);
 | |
|             }
 | |
| 
 | |
| 
 | |
|         }
 | |
| 
 | |
|         public string checkAdStatus(string placementId)
 | |
|         {
 | |
|             string adStatusJsonString = "";
 | |
|             Debug.Log("ATNativeAdClient : checkAdStatus....");
 | |
|             try
 | |
|             {
 | |
|                 if (nativeAdHelperMap.ContainsKey(placementId))
 | |
|                 {
 | |
|                     adStatusJsonString = nativeAdHelperMap[placementId].Call<string>("checkAdStatus");
 | |
|                 }
 | |
|             }
 | |
|             catch (System.Exception e)
 | |
|             {
 | |
|                 System.Console.WriteLine("Exception caught: {0}", e);
 | |
|                 Debug.Log("ATNativeAdClient :  error." + e.Message);
 | |
|             }
 | |
| 
 | |
|             return adStatusJsonString;
 | |
|         }
 | |
| 
 | |
|         public string getValidAdCaches(string placementId)
 | |
|         {
 | |
|             string validAdCachesString = "";
 | |
|             Debug.Log("ATNativeAdClient : getValidAdCaches....");
 | |
|             try
 | |
|             {
 | |
|                 if (nativeAdHelperMap.ContainsKey(placementId))
 | |
|                 {
 | |
|                     validAdCachesString = nativeAdHelperMap[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 setListener(ATNativeAdListener listener)
 | |
|         {
 | |
|             mlistener = listener;
 | |
|         }
 | |
| 
 | |
| 		public void renderAdToScene(string placementId, ATNativeAdView anyThinkNativeAdView, string mapJson)
 | |
|         {	
 | |
| 			string showconfig = anyThinkNativeAdView.toJSON ();
 | |
|             //暂未实现 show
 | |
| 			Debug.Log ("renderAdToScene....showconfig >>>:"+showconfig);
 | |
| 			try{
 | |
|                 if (nativeAdHelperMap.ContainsKey(placementId)) {
 | |
|                     nativeAdHelperMap[placementId].Call ("show",showconfig, mapJson);
 | |
| 				}
 | |
| 			}catch(System.Exception e){
 | |
| 				Debug.Log ("ATNativeAdClient :  error."+e.Message);
 | |
| 				System.Console.WriteLine("Exception caught: {0}", e);
 | |
| 			}
 | |
|         }
 | |
| 
 | |
|         public void cleanAdView(string placementId, ATNativeAdView anyThinkNativeAdView)
 | |
|         {
 | |
|            //
 | |
| 			Debug.Log ("cleanAdView.... ");
 | |
| 			try{
 | |
| 
 | |
| 				if (nativeAdHelperMap.ContainsKey(placementId)) {
 | |
| 					nativeAdHelperMap[placementId].Call ("cleanView");
 | |
| 				}
 | |
| 
 | |
| 			}catch(System.Exception e){
 | |
| 				System.Console.WriteLine("Exception caught: {0}", e);
 | |
| 				Debug.Log ("ATNativeAdClient :  error."+e.Message);
 | |
| 			}
 | |
|         }
 | |
| 
 | |
|         public void onApplicationForces(string placementId, ATNativeAdView anyThinkNativeAdView)
 | |
|         {
 | |
| 
 | |
| 
 | |
| 			Debug.Log ("onApplicationForces.... ");
 | |
| 			try{
 | |
| 
 | |
| 				if (nativeAdHelperMap.ContainsKey(placementId)) {
 | |
| 					nativeAdHelperMap[placementId].Call ("onResume");
 | |
| 				}
 | |
| 
 | |
| 			}catch(System.Exception e){
 | |
| 				System.Console.WriteLine("Exception caught: {0}", e);
 | |
| 				Debug.Log ("ATNativeAdClient :  error."+e.Message);
 | |
| 			}
 | |
|         }
 | |
| 
 | |
| 
 | |
|         public void onApplicationPasue(string placementId, ATNativeAdView anyThinkNativeAdView)
 | |
|         {
 | |
| 
 | |
| 			Debug.Log ("onApplicationPasue.... ");
 | |
| 			try{
 | |
| 				
 | |
| 
 | |
| 				if (nativeAdHelperMap.ContainsKey(placementId)) {
 | |
| 					nativeAdHelperMap[placementId].Call ("onPause");
 | |
| 				}
 | |
| 			}catch(System.Exception e){
 | |
| 				System.Console.WriteLine("Exception caught: {0}", e);
 | |
| 				Debug.Log ("ATNativeAdClient :  error."+e.Message);
 | |
| 			}
 | |
|         }
 | |
| 
 | |
|         public void cleanCache(string placementId)
 | |
|         {
 | |
| 			Debug.Log ("cleanCache....");
 | |
| 			try{
 | |
|                 if (nativeAdHelperMap.ContainsKey(placementId)) {
 | |
|                     nativeAdHelperMap[placementId].Call ("clean");
 | |
| 				}
 | |
| 			}catch(System.Exception e){
 | |
| 				System.Console.WriteLine("Exception caught: {0}", e);
 | |
| 				Debug.Log ("ATNativeAdClient :  error."+e.Message);
 | |
| 			}
 | |
|         }
 | |
| 
 | |
|         /**
 | |
|      * 广告展示回调
 | |
|      *
 | |
|      * @param view
 | |
|      */
 | |
|         public void onAdImpressed(string placementId, string callbackJson)
 | |
|         {
 | |
|             Debug.Log("onAdImpressed...unity3d.");
 | |
|             onAdImpressEvent?.Invoke(this, new ATAdEventArgs(placementId,callbackJson));
 | |
|         }
 | |
| 
 | |
|         /**
 | |
|      * 广告点击回调
 | |
|      *
 | |
|      * @param view
 | |
|      */
 | |
|         public void onAdClicked(string placementId, string callbackJson)
 | |
|         {
 | |
|             Debug.Log("onAdClicked...unity3d.");
 | |
|              onAdClickEvent?.Invoke(this, new ATAdEventArgs(placementId,callbackJson));
 | |
|          
 | |
|         }
 | |
| 
 | |
|         /**
 | |
|      * 广告视频开始回调
 | |
|      *
 | |
|      * @param view
 | |
|      */
 | |
|         public void onAdVideoStart(string placementId)
 | |
|         {
 | |
|             Debug.Log("onAdVideoStart...unity3d.");
 | |
|            onAdVideoStartEvent?.Invoke(this, new ATAdEventArgs(placementId));
 | |
|         }
 | |
| 
 | |
|         /**
 | |
|      * 广告视频结束回调
 | |
|      *
 | |
|      * @param view
 | |
|      */
 | |
|         public void onAdVideoEnd(string placementId)
 | |
|         {
 | |
|             Debug.Log("onAdVideoEnd...unity3d.");
 | |
|             onAdVideoEndEvent?.Invoke(this, new ATAdEventArgs(placementId,""));
 | |
|         }
 | |
| 
 | |
|         /**
 | |
|      * 广告视频进度回调
 | |
|      *
 | |
|      * @param view
 | |
|      */
 | |
|         public void onAdVideoProgress(string placementId,int progress)
 | |
|         {
 | |
|             Debug.Log("onAdVideoProgress...progress[" + progress + "]");
 | |
|            onAdVideoProgressEvent?.Invoke(this, new ATAdProgressEventArgs(placementId,"",progress));
 | |
|         }
 | |
| 
 | |
|         /**
 | |
|    * 广告视频进度回调
 | |
|    *
 | |
|    * @param view
 | |
|    */
 | |
|         public void onAdCloseButtonClicked(string placementId, string callbackJson)
 | |
|         {
 | |
|             Debug.Log("onAdCloseButtonClicked...unity3d");
 | |
|           onAdCloseEvent?.Invoke(this, new ATAdEventArgs(placementId,callbackJson));
 | |
|         }
 | |
| 
 | |
| 
 | |
|         /**
 | |
|      * 广告加载成功
 | |
|      */
 | |
|         public void onNativeAdLoaded(string placementId)
 | |
|         {
 | |
|             Debug.Log("onNativeAdLoaded...unity3d.");
 | |
|              onAdLoadEvent?.Invoke(this, new ATAdEventArgs(placementId,""));
 | |
| 
 | |
|         }
 | |
| 
 | |
|         /**
 | |
|      * 广告加载失败
 | |
|      */
 | |
|         public void onNativeAdLoadFail(string placementId,string code, string msg)
 | |
|         {
 | |
|             Debug.Log("onNativeAdLoadFail...unity3d. code:" + code + " msg:" + msg);
 | |
|             onAdLoadFailureEvent?.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));
 | |
|         }
 | |
| 
 | |
| 
 | |
|     }
 | |
| }
 |