Max Plugin
Đây là 1 Plugin có các Class Base để phục vụ Init, Load và Show Ads của Max và 1 một số tracking tự động với GSM
Last updated
Đây là 1 Plugin có các Class Base để phục vụ Init, Load và Show Ads của Max và 1 một số tracking tự động với GSM
Last updated
using GSM.Ads;
using GSM.Core;
using System.Collections;
using UnityEngine;
public class MaxAdsController : BaseMaxAdsController, IAdsInterface
{
private static MaxAdsController _instance;
public static MaxAdsController Instance => _instance;
private string AD_REWARD_UNIT_ID, AD_FULL_UNIT_ID;
protected override void Awake()
{
if (_instance == null)
{
_instance = this;
DontDestroyOnLoad(this.gameObject);
}
else
{
Destroy(gameObject);
}
GetAdSettingGSM();
//InitializeBannerAdCallBacks();
base.Awake();
OnSdkInitializedEvent += MaxAdsController_OnSdkInitializedEvent;
}
private void MaxAdsController_OnSdkInitializedEvent(MaxSdkBase.SdkConfiguration sdkConfiguration)
{
//Có thể khởi tạo thêm các loại Ad khác như: Banner, Mrec ...
//InitializeBannerAds();
}
#region Base
private void GetAdSettingGSM()
{
GSMSettings settings = GSMInitialization.GsmSettings;
if (settings != null)
{
var rewardAdUnit = settings.GetMAXAdUnit("Reward");
if (rewardAdUnit != null)
{
AD_REWARD_UNIT_ID = rewardAdUnit.adUnitId;
}
var interAdUnit = settings.GetMAXAdUnit("Inter");
if (interAdUnit != null)
{
AD_FULL_UNIT_ID = interAdUnit.adUnitId;
}
}
else
{
Debug.LogError("GSMSettings not found");
}
}
public override string GetRewardVideoAdUnitId()
{
return AD_REWARD_UNIT_ID;
}
public override string GetInterstitialAdUnitId()
{
return AD_FULL_UNIT_ID;
}
protected override string GetTargetLevel()
{
return <Xử lý logic trả về Level Hiện tại của user>
}
protected override string GetGroup()
{
return string.Empty;
}
protected override string GetSubGroup()
{
return string.Empty;
}
protected override string GetUserType()
{
return string.Empty;
}
#endregion
}
public void ShowVideoReward(System.Action onUserEarnedReward, System.Action onAdClosed)
{
GSMMaxCounterLog.CounterFirstRewardedShow();
if (IsRewardVideoAdsReady())
{
base.ShowVideoAds(onUserEarnedReward, onAdClosed);
return;
}
}
public void ShowInterstitial(Action onIntersAdsClosed)
{
GSMMaxCounterLog.CounterFirstInterShow();
if (Application.internetReachability != NetworkReachability.NotReachable /*&& IronsourceAdsController.Instance != null*/)
{
if (IsInterstitialReady())
{
base.ShowInterstitial(onIntersAdsClosed);
}
}
}