SDK_UnityMoney/Assets/ThinkupTpnPlugin/AnyThinkAds/Platform/Android/ATInterstitialAdClient.cs

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