146 lines
5.6 KiB
C#
146 lines
5.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
namespace AmazonAds
|
|
{
|
|
public class APSAdRequestExtra
|
|
{
|
|
private static readonly string ADMOB_SLOTUUID_KEY = "amazon_custom_event_slot_uuid";
|
|
private static readonly string ADMOB_REQUEST_ID_KEY = "amazon_custom_event_request_id";
|
|
private static readonly string APS_ADAPTER_VERSION = "amazon_custom_event_adapter_version";
|
|
private static readonly string ADMOB_ISVIDEO_KEY = "amazon_custom_event_is_video";
|
|
private static readonly string ADMOB_WIDTH_KEY = "amazon_custom_event_width";
|
|
private static readonly string ADMOB_HEIGHT_KEY = "amazon_custom_event_height";
|
|
private static readonly string APS_ADMOB_CONST_CCPA_APS_PRIVACY = "aps_privacy";
|
|
private static readonly string APS_ADMOB_CONST_CCPA_US_PRIVACY = "us_privacy";
|
|
private static readonly AndroidJavaClass dtbAdUtil = new AndroidJavaClass ("com.amazon.device.ads.DTBAdUtil");
|
|
|
|
private APSAdRequestExtra (Builder builder) {
|
|
this.SlotUUID = builder.SlotUUID;
|
|
this.BannerAdHeight = builder.AdHeight;
|
|
this.BannerAdWidth = builder.AdWidth;
|
|
this.CCPAPrivacy = builder.CCPAPrivacy;
|
|
}
|
|
|
|
public string SlotUUID { get; private set; }
|
|
public int BannerAdHeight { get; private set; }
|
|
public int BannerAdWidth { get; private set; }
|
|
public Dictionary<string, string> CCPAPrivacy { private get; set; }
|
|
|
|
public Dictionary<string, string> GetAdMobInterstitialRequestExtras ()
|
|
{
|
|
Dictionary<String, String> AdMobRequestExtras = createExtras ();
|
|
if (SlotUUID == null)
|
|
{
|
|
return AdMobRequestExtras;
|
|
}
|
|
|
|
#if UNITY_ANDROID
|
|
AndroidJavaObject bundle = dtbAdUtil.CallStatic<AndroidJavaObject>("createAdMobInterstitialVideoRequestBundle", SlotUUID);
|
|
AdMobRequestExtras.Add (ADMOB_SLOTUUID_KEY, bundle.Call<String>("getString", ADMOB_SLOTUUID_KEY));
|
|
AdMobRequestExtras.Add (ADMOB_REQUEST_ID_KEY, bundle.Call<String>("getString", ADMOB_REQUEST_ID_KEY));
|
|
AdMobRequestExtras.Add (APS_ADAPTER_VERSION, bundle.Call<String>("getString", APS_ADAPTER_VERSION));
|
|
#else
|
|
AdMobRequestExtras.Add (ADMOB_SLOTUUID_KEY, SlotUUID);
|
|
#endif
|
|
return AdMobRequestExtras;
|
|
|
|
}
|
|
|
|
public Dictionary<string, string> GetAdMobBannerRequestExtras ()
|
|
{
|
|
Dictionary<String, String> AdMobRequestExtras = createExtras();
|
|
if (SlotUUID == null || BannerAdWidth == 0 || BannerAdHeight == 0)
|
|
{
|
|
return AdMobRequestExtras;
|
|
}
|
|
|
|
#if UNITY_ANDROID
|
|
AndroidJavaObject bundle = dtbAdUtil.CallStatic<AndroidJavaObject> ("createAdMobBannerRequestBundle", SlotUUID, BannerAdWidth, BannerAdHeight);
|
|
AdMobRequestExtras.Add (ADMOB_SLOTUUID_KEY, bundle.Call<String>("getString", ADMOB_SLOTUUID_KEY));
|
|
AdMobRequestExtras.Add (ADMOB_HEIGHT_KEY, bundle.Call<int>("getInt", ADMOB_HEIGHT_KEY).ToString());
|
|
AdMobRequestExtras.Add (ADMOB_WIDTH_KEY, bundle.Call<int>("getInt", ADMOB_WIDTH_KEY).ToString());
|
|
AdMobRequestExtras.Add (ADMOB_REQUEST_ID_KEY, bundle.Call<String>("getString", ADMOB_REQUEST_ID_KEY));
|
|
AdMobRequestExtras.Add (APS_ADAPTER_VERSION, bundle.Call<String>("getString", APS_ADAPTER_VERSION));
|
|
#else
|
|
|
|
AdMobRequestExtras.Add (ADMOB_SLOTUUID_KEY, SlotUUID);
|
|
AdMobRequestExtras.Add (ADMOB_WIDTH_KEY, BannerAdWidth.ToString());
|
|
AdMobRequestExtras.Add (ADMOB_HEIGHT_KEY, BannerAdHeight.ToString());
|
|
|
|
#endif
|
|
|
|
return AdMobRequestExtras;
|
|
}
|
|
|
|
private Dictionary<String, String> createExtras()
|
|
{
|
|
Dictionary<String, String> extrasMap = new Dictionary<string, string>();
|
|
if (CCPAPrivacy != null)
|
|
{
|
|
if (CCPAPrivacy.TryGetValue (APS_ADMOB_CONST_CCPA_APS_PRIVACY, out string ccpa_aps_privacy))
|
|
{
|
|
extrasMap.Add (APS_ADMOB_CONST_CCPA_APS_PRIVACY, ccpa_aps_privacy);
|
|
}
|
|
if (CCPAPrivacy.TryGetValue (APS_ADMOB_CONST_CCPA_US_PRIVACY, out string ccpa_us_privacy))
|
|
{
|
|
extrasMap.Add (APS_ADMOB_CONST_CCPA_US_PRIVACY, ccpa_us_privacy);
|
|
}
|
|
|
|
}
|
|
return extrasMap;
|
|
|
|
}
|
|
|
|
|
|
public class Builder
|
|
{
|
|
public Builder()
|
|
{
|
|
this.SlotUUID = null;
|
|
this.AdHeight = 0;
|
|
this.AdWidth = 0;
|
|
this.CCPAPrivacy = new Dictionary<string, string>();
|
|
}
|
|
|
|
internal string SlotUUID { get; private set; }
|
|
internal int AdHeight { get; private set; }
|
|
internal int AdWidth { get; private set; }
|
|
internal Dictionary<string, string> CCPAPrivacy { get; private set; }
|
|
|
|
public Builder AddSlotUUID(string SlotUUID)
|
|
{
|
|
this.SlotUUID = SlotUUID;
|
|
return this;
|
|
}
|
|
|
|
public Builder AddHeight(int AdHeight)
|
|
{
|
|
this.AdHeight = AdHeight;
|
|
return this;
|
|
}
|
|
|
|
public Builder AddWidth(int AdWidth)
|
|
{
|
|
this.AdWidth = AdWidth;
|
|
return this;
|
|
}
|
|
|
|
public Builder AddCCPAPrivacy(Dictionary<string, string> CCPAPrivacy)
|
|
{
|
|
this.CCPAPrivacy = CCPAPrivacy;
|
|
return this;
|
|
}
|
|
|
|
public APSAdRequestExtra Build()
|
|
{
|
|
return new APSAdRequestExtra(this);
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
|