Files
BallCrushBest_GP/Assets/ZrZYFo6bYXYM71YyLSDK/ThirdParty/KwaiAds/Scripts/KwaiInterAd.cs
T

134 lines
4.1 KiB
C#
Raw Normal View History

using System.Collections;
using System.Collections.Generic;
using KwaiAds.Scripts.Api;
using KwaiAds.Scripts.Api.Interstitial;
using UnityEngine;
public class KwaiInterAd
{
private IInterstitialAdController _kwaiInter;
private string _unitId;
private IKwaiAdListener _kwaiAdListener;
public IKwaiAdListener KwaiAdListener => _kwaiAdListener;
public KwaiInterAd(string unitId, IKwaiAdListener adListener)
{
_unitId = unitId;
_kwaiAdListener = adListener;
}
public void Load(string ecpmPrice = "0.01")
{
// 获取每次load都需要获取新的KwaiInterstitialAdController
if (_kwaiInter != null)
{
_kwaiInter.Destroy();
_kwaiInter = null;
}
_kwaiInter = KwaiAds.Scripts.Api.KwaiAdsSdk.SDK.getInterstitialAdController();
// 构建KwaiInterstitialAdRequest
KwaiInterstitialAdRequest interstitialRewardAdRequest = new KwaiInterstitialAdRequest(_unitId); // tagId必填
// 选填, 可以设置低价 单位是$(美元,ecpm)
interstitialRewardAdRequest.ExtParams[Constants.Request.BID_FLOOR_PRICE] = ecpmPrice;
// 加载过程接受三个参数,
// - KwaiInterstitialAdRequest 配置请求参数
// - IInterstitialAdListener 回调为插页点击、曝光状态
// - IInterstitialAdLoadListener 回调为插页加载状态
_kwaiInter.Load(interstitialRewardAdRequest, new InterstitialAdListener(this), new InterstitialAdLoadListener(this));
}
public void Show()
{
if (IsReady())
{
_kwaiInter.Show();
}
}
public bool IsReady()
{
return _kwaiInter != null && _kwaiInter.IsReady();
}
public void NotifyWin(string minWinPrice)
{
//_kwaiInter?.NotifyWin();//报错暂时屏蔽
_kwaiInter?.NotifyWin(minWinPrice);
}
public void NotifyLoss(string winPrice)
{
//_kwaiInter?.NotifyLoss();
_kwaiInter?.NotifyLoss(winPrice);
}
private class InterstitialAdListener : IInterstitialAdListener
{
private KwaiInterAd _kwaiInterAd;
public InterstitialAdListener(KwaiInterAd interAd)
{
_kwaiInterAd = interAd;
}
public void OnAdClick()
{
KwaiLog.Log($"#Kwai OnAdClick");
_kwaiInterAd?.KwaiAdListener?.OnClick();
}
public void OnAdClose()
{
KwaiLog.Log($"#Kwai OnAdClose");
_kwaiInterAd?.KwaiAdListener?.OnClosed();
}
public void OnAdPlayComplete()
{
KwaiLog.Log($"#Kwai OnAdPlayComplete");
}
public void OnAdShow()
{
KwaiLog.Log($"#Kwai OnAdShow");
_kwaiInterAd?.KwaiAdListener?.OnShow();
}
public void OnAdShowFailed(int code, string msg)
{
KwaiLog.Log($"#Kwai OnAdShowFailed code = {code}, msg = {msg}");
_kwaiInterAd?.KwaiAdListener?.OnShowFailed(code, msg);
}
}
private class InterstitialAdLoadListener : IInterstitialAdLoadListener
{
private KwaiInterAd _kwaiInterAd;
public InterstitialAdLoadListener(KwaiInterAd interAd)
{
_kwaiInterAd = interAd;
}
public void OnAdLoadFailed(string trackId, int code, string msg)
{
KwaiLog.Log($"#Kwai OnAdLoadFailed trackId = {trackId}, code = {code}, msg = {msg}");
_kwaiInterAd?.KwaiAdListener?.OnLoadFailed(trackId, code, msg);
}
public void OnAdLoadStart(string trackId)
{
KwaiLog.Log($"#Kwai OnAdLoadStart trackId = {trackId}");
}
public void OnAdLoadSuccess(string trackId, string price)
{
KwaiLog.Log($"#Kwai OnAdLoadSuccess trackId = {trackId}, price = {price}");
_kwaiInterAd?.KwaiAdListener?.OnLoaded(trackId, price);
}
}
}