185 lines
6.1 KiB
C#
185 lines
6.1 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Runtime.InteropServices;
|
|
using UnityEngine;
|
|
namespace AmazonAds.IOS {
|
|
public class DTBAdRequest : IAdRequest {
|
|
private IntPtr adLoader;
|
|
private string _slotGroupName = null;
|
|
private IAdSize _bannerAdSize = null;
|
|
private IInterstitialAdSize _interstitialAdSize = null;
|
|
private IVideo _videoAdSize = null;
|
|
|
|
public DTBAdRequest () {
|
|
adLoader = Externs._createAdLoader ();
|
|
}
|
|
|
|
public DTBAdRequest (IntPtr adRequest) {
|
|
adLoader = adRequest;
|
|
}
|
|
|
|
public IntPtr GetInstance(){
|
|
return adLoader;
|
|
}
|
|
|
|
public override void DisposeAd () {
|
|
if (fetchManager != null) {
|
|
fetchManager.dispense();
|
|
} else {
|
|
UnityEngine.Debug.LogWarning ("FetchManager not Init. Please turn on auto-refresh.");
|
|
}
|
|
}
|
|
|
|
public override void LoadAd (Amazon.OnFailureDelegate failure, Amazon.OnSuccessDelegate success) {
|
|
requestHasBeenUsed = true;
|
|
if (IsAutoRefreshAdMob ()) {
|
|
Schedule.WaitForAdResponce (fetchManager, failure, success);
|
|
return;
|
|
}
|
|
DTBCallback callback = new DTBCallback (failure, success);
|
|
Externs._loadAd (adLoader, callback.GetPtr ());
|
|
}
|
|
|
|
public override void LoadSmartBanner (Amazon.OnFailureDelegate failure, Amazon.OnSuccessDelegate success) {
|
|
requestHasBeenUsed = true;
|
|
if (IsAutoRefreshAdMob ()) {
|
|
Schedule.WaitForAdResponce (fetchManager, failure, success);
|
|
return;
|
|
}
|
|
DTBCallback callback = new DTBCallback (failure, success);
|
|
Externs._loadSmartBanner (adLoader, callback.GetPtr ());
|
|
}
|
|
|
|
public override void LoadAd (Amazon.OnFailureWithErrorDelegate failureWithError, Amazon.OnSuccessDelegate success) {
|
|
requestHasBeenUsed = true;
|
|
DTBCallback callback = new DTBCallback (failureWithError, success);
|
|
Externs._loadAd (adLoader, callback.GetPtr ());
|
|
}
|
|
|
|
public override void LoadSmartBanner (Amazon.OnFailureWithErrorDelegate failureWithError, Amazon.OnSuccessDelegate success) {
|
|
requestHasBeenUsed = true;
|
|
DTBCallback callback = new DTBCallback (failureWithError, success);
|
|
Externs._loadSmartBanner (adLoader, callback.GetPtr ());
|
|
}
|
|
|
|
public override void PutCustomTarget (string key, string value) {
|
|
Externs._putCustomTarget (adLoader, key, value);
|
|
}
|
|
|
|
public override void SetAutoRefresh() {
|
|
Externs._setAutoRefreshNoArgs(adLoader);
|
|
}
|
|
|
|
public override void SetAutoRefresh(int secs) {
|
|
Externs._setAutoRefresh(adLoader,secs);
|
|
}
|
|
|
|
public override void PauseAutoRefresh() {
|
|
Externs._pauseAutoRefresh(adLoader);
|
|
}
|
|
|
|
public override void StopAutoRefresh() {
|
|
Externs._stopAutoRefresh(adLoader);
|
|
}
|
|
|
|
public override void ResumeAutoRefresh() {
|
|
Externs._resumeAutoRefresh(adLoader);
|
|
}
|
|
|
|
public override void SetAutoRefreshMoPub (bool flag){
|
|
SetAutoRefreshMoPub(flag, refreshTime);
|
|
}
|
|
|
|
public override void SetAutoRefreshMoPub (bool flag, int refreshTime) {
|
|
isAutoRefreshMoPub = flag;
|
|
this.refreshTime = refreshTime;
|
|
if(flag){
|
|
if( requestHasBeenUsed ){
|
|
ResumeAutoRefresh();
|
|
} else {
|
|
SetAutoRefresh(refreshTime);
|
|
}
|
|
} else {
|
|
PauseAutoRefresh();
|
|
}
|
|
}
|
|
|
|
public override void SetAutoRefreshAdMob (bool flag, bool isSmartBanner = false) {
|
|
isAutoRefreshAdMob = flag;
|
|
if(flag){
|
|
CreateFetchManager(isSmartBanner);
|
|
StartFetchManager();
|
|
} else {
|
|
StopFetchManager();
|
|
}
|
|
}
|
|
|
|
public override void SetRefreshFlag (bool flag) {
|
|
Externs._setRefreshFlag(adLoader, flag);
|
|
}
|
|
|
|
public override void StartFetchManager () {
|
|
if (fetchManager != null){
|
|
fetchManager.start ();
|
|
}
|
|
}
|
|
|
|
public override void StopFetchManager () {
|
|
if (fetchManager != null){
|
|
fetchManager.stop ();
|
|
}
|
|
}
|
|
|
|
public override void CreateFetchManager (bool isSmartBanner = false) {
|
|
if (fetchManager == null){
|
|
fetchManager = new DTBFetchManager(this, autoRefreshID, isSmartBanner);
|
|
}
|
|
}
|
|
|
|
public override void DestroyFetchManager () {
|
|
if (fetchManager != null){
|
|
((AmazonAds.IOS.DTBFetchManager)fetchManager).destroy(autoRefreshID);
|
|
}
|
|
}
|
|
|
|
public override void SetSizes (IAdSize sizes) {
|
|
_bannerAdSize = sizes;
|
|
int height = sizes.GetHeight ();
|
|
int width = sizes.GetWidth ();
|
|
string slotType = "SLOT_" + width + "_" + height;
|
|
autoRefreshID = slotType;
|
|
Externs._setSizes (adLoader, ((DTBAdSize) sizes).GetInstance ());
|
|
}
|
|
|
|
public override void SetSizes (IInterstitialAdSize sizes) {
|
|
_interstitialAdSize = sizes;
|
|
Externs._setSizes (adLoader, ((DTBAdSize.DTBInterstitialAdSize) sizes).GetInstance ());
|
|
}
|
|
|
|
public override void SetSizes (IVideo sizes) {
|
|
_videoAdSize = sizes;
|
|
Externs._setSizes (adLoader, ((DTBAdSize.DTBVideo) sizes).GetInstance ());
|
|
}
|
|
|
|
public override void SetSlotGroup (string slotGroupName) {
|
|
_slotGroupName = slotGroupName;
|
|
Externs._setSlotGroup (adLoader, slotGroupName);
|
|
}
|
|
|
|
public IAdSize GetBannerAdSizes () {
|
|
return _bannerAdSize;
|
|
}
|
|
|
|
public IInterstitialAdSize GetInterstitialSizes () {
|
|
return _interstitialAdSize;
|
|
}
|
|
|
|
public IVideo GetVideoSizes () {
|
|
return _videoAdSize;
|
|
}
|
|
|
|
public string GetSlotGroup () {
|
|
return _slotGroupName;
|
|
}
|
|
}
|
|
} |