126 lines
3.3 KiB
C#
126 lines
3.3 KiB
C#
|
using System;
|
|||
|
using System.Collections;
|
|||
|
using UnityEngine.Advertisements;
|
|||
|
using UnityEngine;
|
|||
|
|
|||
|
public class UnityAdsManager : MonoBehaviour, IUnityAdsInitializationListener, IUnityAdsLoadListener, IUnityAdsShowListener
|
|||
|
{
|
|||
|
public string GAME_ID = "3003911"; //replace with your gameID from dashboard. note: will be different for each platform.
|
|||
|
|
|||
|
private const string BANNER_PLACEMENT = "banner";
|
|||
|
private const string VIDEO_PLACEMENT = "video";
|
|||
|
private const string REWARDED_VIDEO_PLACEMENT = "rewardedVideo";
|
|||
|
|
|||
|
[SerializeField] private BannerPosition bannerPosition = BannerPosition.BOTTOM_CENTER;
|
|||
|
|
|||
|
private bool testMode = true;
|
|||
|
private bool showBanner = false;
|
|||
|
|
|||
|
//utility wrappers for debuglog
|
|||
|
public delegate void DebugEvent(string msg);
|
|||
|
public static event DebugEvent OnDebugLog;
|
|||
|
|
|||
|
public void Initialize()
|
|||
|
{
|
|||
|
if (Advertisement.isSupported)
|
|||
|
{
|
|||
|
DebugLog(Application.platform + " supported by Advertisement");
|
|||
|
}
|
|||
|
Advertisement.Initialize(GAME_ID, testMode, this);
|
|||
|
}
|
|||
|
|
|||
|
public void ToggleBanner()
|
|||
|
{
|
|||
|
showBanner = !showBanner;
|
|||
|
|
|||
|
if (showBanner)
|
|||
|
{
|
|||
|
Advertisement.Banner.SetPosition(bannerPosition);
|
|||
|
Advertisement.Banner.Show(BANNER_PLACEMENT);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
Advertisement.Banner.Hide(false);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public void LoadRewardedAd()
|
|||
|
{
|
|||
|
Advertisement.Load(REWARDED_VIDEO_PLACEMENT, this);
|
|||
|
}
|
|||
|
|
|||
|
public void ShowRewardedAd()
|
|||
|
{
|
|||
|
Advertisement.Show(REWARDED_VIDEO_PLACEMENT, this);
|
|||
|
}
|
|||
|
|
|||
|
public void LoadNonRewardedAd()
|
|||
|
{
|
|||
|
Advertisement.Load(VIDEO_PLACEMENT, this);
|
|||
|
}
|
|||
|
|
|||
|
public void ShowNonRewardedAd()
|
|||
|
{
|
|||
|
Advertisement.Show(VIDEO_PLACEMENT, this);
|
|||
|
}
|
|||
|
|
|||
|
#region Interface Implementations
|
|||
|
public void OnInitializationComplete()
|
|||
|
{
|
|||
|
DebugLog("Init Success");
|
|||
|
}
|
|||
|
|
|||
|
public void OnInitializationFailed(UnityAdsInitializationError error, string message)
|
|||
|
{
|
|||
|
DebugLog($"Init Failed: [{error}]: {message}");
|
|||
|
}
|
|||
|
|
|||
|
public void OnUnityAdsAdLoaded(string placementId)
|
|||
|
{
|
|||
|
DebugLog($"Load Success: {placementId}");
|
|||
|
}
|
|||
|
|
|||
|
public void OnUnityAdsFailedToLoad(string placementId, UnityAdsLoadError error, string message)
|
|||
|
{
|
|||
|
DebugLog($"Load Failed: [{error}:{placementId}] {message}");
|
|||
|
}
|
|||
|
|
|||
|
public void OnUnityAdsShowFailure(string placementId, UnityAdsShowError error, string message)
|
|||
|
{
|
|||
|
DebugLog($"OnUnityAdsShowFailure: [{error}]: {message}");
|
|||
|
}
|
|||
|
|
|||
|
public void OnUnityAdsShowStart(string placementId)
|
|||
|
{
|
|||
|
DebugLog($"OnUnityAdsShowStart: {placementId}");
|
|||
|
}
|
|||
|
|
|||
|
public void OnUnityAdsShowClick(string placementId)
|
|||
|
{
|
|||
|
DebugLog($"OnUnityAdsShowClick: {placementId}");
|
|||
|
}
|
|||
|
|
|||
|
public void OnUnityAdsShowComplete(string placementId, UnityAdsShowCompletionState showCompletionState)
|
|||
|
{
|
|||
|
DebugLog($"OnUnityAdsShowComplete: [{showCompletionState}]: {placementId}");
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
public void OnGameIDFieldChanged(string newInput)
|
|||
|
{
|
|||
|
GAME_ID = newInput;
|
|||
|
}
|
|||
|
|
|||
|
public void ToggleTestMode(bool isOn)
|
|||
|
{
|
|||
|
testMode = isOn;
|
|||
|
}
|
|||
|
|
|||
|
//wrapper around debug.log to allow broadcasting log strings to the UI
|
|||
|
void DebugLog(string msg)
|
|||
|
{
|
|||
|
OnDebugLog?.Invoke(msg);
|
|||
|
Debug.Log(msg);
|
|||
|
}
|
|||
|
}
|