diff --git a/Assets/Scripts/Common/SDK/BFIronSourceSDKManager.cs b/Assets/Scripts/Common/SDK/BFIronSourceSDKManager.cs
index 95f76bc94..f310845b7 100644
--- a/Assets/Scripts/Common/SDK/BFIronSourceSDKManager.cs
+++ b/Assets/Scripts/Common/SDK/BFIronSourceSDKManager.cs
@@ -33,8 +33,10 @@ namespace BF
BFLog.Log("unity-script: IronSource.Agent.init");
IronSource.Agent.init(appKey);
IronSource.Agent.setManualLoadRewardedVideo(true);
+ IronSourceAdQuality.Initialize(appKey);
#elif UNITY_IPHONE
// string appKey = "8545d445";
+ // IronSourceAdQuality.Initialize(appKey);
#else
// string appKey = "unexpected_platform";
#endif
diff --git a/Assets/ThirdParty/IronSourceAdQuality.meta b/Assets/ThirdParty/IronSourceAdQuality.meta
new file mode 100644
index 000000000..ec98210ed
--- /dev/null
+++ b/Assets/ThirdParty/IronSourceAdQuality.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: cd642f9c5d7126f47898e5dc9520a8ff
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ThirdParty/IronSourceAdQuality/Editor.meta b/Assets/ThirdParty/IronSourceAdQuality/Editor.meta
new file mode 100644
index 000000000..a6ad52ddf
--- /dev/null
+++ b/Assets/ThirdParty/IronSourceAdQuality/Editor.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6ee27eb8be2558e4482bcaa12bbd4781
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ThirdParty/IronSourceAdQuality/Editor/IronSourceAdQualityDependencies.xml b/Assets/ThirdParty/IronSourceAdQuality/Editor/IronSourceAdQualityDependencies.xml
new file mode 100644
index 000000000..f8ac959ac
--- /dev/null
+++ b/Assets/ThirdParty/IronSourceAdQuality/Editor/IronSourceAdQualityDependencies.xml
@@ -0,0 +1,36 @@
+
+ 7.13.0
+
+
+
+
+ https://android-sdk.is.com/
+
+
+
+
+
+
+
+ https://android-sdk.is.com/
+
+
+
+
+
+
+
diff --git a/Assets/ThirdParty/IronSourceAdQuality/Editor/IronSourceAdQualityDependencies.xml.meta b/Assets/ThirdParty/IronSourceAdQuality/Editor/IronSourceAdQualityDependencies.xml.meta
new file mode 100644
index 000000000..2f3127d38
--- /dev/null
+++ b/Assets/ThirdParty/IronSourceAdQuality/Editor/IronSourceAdQualityDependencies.xml.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 0caf106b327a046c5b374834523d4477
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ThirdParty/IronSourceAdQuality/Scripts.meta b/Assets/ThirdParty/IronSourceAdQuality/Scripts.meta
new file mode 100644
index 000000000..f24ec6fc2
--- /dev/null
+++ b/Assets/ThirdParty/IronSourceAdQuality/Scripts.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c104a6ee5617fb048acdd3b2f1cbc512
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality.meta b/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality.meta
new file mode 100644
index 000000000..5d1a0e574
--- /dev/null
+++ b/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ae460004d99634df8a86e07e1a01faa5
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISADQualityDeviceIdType.cs b/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISADQualityDeviceIdType.cs
new file mode 100644
index 000000000..440d98b9b
--- /dev/null
+++ b/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISADQualityDeviceIdType.cs
@@ -0,0 +1,6 @@
+using System;
+public enum ISAdQualityDeviceIdType {
+ NONE = 0,
+ GAID = 1,
+ IDFA = 2
+};
\ No newline at end of file
diff --git a/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISADQualityDeviceIdType.cs.meta b/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISADQualityDeviceIdType.cs.meta
new file mode 100644
index 000000000..85e540337
--- /dev/null
+++ b/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISADQualityDeviceIdType.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 92d1c3826af024ff1a77c6c7d7983c7d
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityAdType.cs b/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityAdType.cs
new file mode 100644
index 000000000..5c409a88b
--- /dev/null
+++ b/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityAdType.cs
@@ -0,0 +1,16 @@
+using System;
+public enum ISAdQualityAdType {
+ UNKNOWN = -1,
+ RICH_MEDIA = 0,
+ INTERSTITIAL = 1,
+ APP_WALL = 2,
+ VIDEO = 3,
+ REWARDED_VIDEO = 4,
+ NATIVE = 5,
+ BANNER = 6,
+ OFFER_WALL = 7,
+ NATIVE_HTML = 8,
+ EXTERNAL = 9,
+ REWARDED = 10,
+ INTERACTIVE = 11
+};
\ No newline at end of file
diff --git a/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityAdType.cs.meta b/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityAdType.cs.meta
new file mode 100644
index 000000000..4b33fe796
--- /dev/null
+++ b/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityAdType.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 08e1a7bef35354a1883fab85829a4273
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityAndroidInitHandler.cs b/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityAndroidInitHandler.cs
new file mode 100644
index 000000000..c5a78fd8c
--- /dev/null
+++ b/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityAndroidInitHandler.cs
@@ -0,0 +1,53 @@
+#if UNITY_ANDROID
+using System;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.Scripting;
+
+[Preserve]
+public class ISAdQualityAndroidInitHandler : AndroidJavaProxy
+{
+ private const string IRON_SOURCE_AD_QUALITY_CLASS = "com.ironsource.adqualitysdk.sdk.unity.IronSourceAdQuality";
+ private const string UNITY_IS_AD_QUALITY_INIT_LISTENER = "com.ironsource.adqualitysdk.sdk.unity.UnityISAdQualityInitListener";
+
+ public event Action OnAdQualitySdkInitSuccess = delegate { };
+ public event Action OnAdQualitySdkInitFailed = delegate { };
+
+ //implements UnityISAdQualityInitListener java interface
+ public ISAdQualityAndroidInitHandler(): base(UNITY_IS_AD_QUALITY_INIT_LISTENER)
+ {
+#if !UNITY_EDITOR
+ try
+ {
+ using (var jniAdQualityClass = new AndroidJavaClass(IRON_SOURCE_AD_QUALITY_CLASS))
+ {
+ jniAdQualityClass.CallStatic("setUnityISAdQualityInitListener", this);
+ }
+ }
+ catch(Exception e)
+ {
+ Debug.LogError("setUnityISAdQualityInitListener method doesn't exist, error: " + e.Message);
+ }
+#endif
+ }
+
+ [Preserve]
+ public void adQualitySdkInitSuccess()
+ {
+ if (this.OnAdQualitySdkInitSuccess != null)
+ {
+ this.OnAdQualitySdkInitSuccess();
+ }
+
+ }
+
+ [Preserve]
+ public void adQualitySdkInitFailed(int adQualitySdkInitError, string errorMessage)
+ {
+ if (this.OnAdQualitySdkInitFailed != null)
+ {
+ this.OnAdQualitySdkInitFailed((ISAdQualityInitError)adQualitySdkInitError, errorMessage);
+ }
+ }
+}
+#endif
\ No newline at end of file
diff --git a/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityAndroidInitHandler.cs.meta b/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityAndroidInitHandler.cs.meta
new file mode 100644
index 000000000..91fe16490
--- /dev/null
+++ b/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityAndroidInitHandler.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: c70eb41427c4848d391fa9e66f60daf3
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityConfig.cs b/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityConfig.cs
new file mode 100644
index 000000000..ae3272ec8
--- /dev/null
+++ b/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityConfig.cs
@@ -0,0 +1,118 @@
+using System;
+using UnityEngine;
+
+public class ISAdQualityConfig
+{
+ private String userId;
+ private bool userIdSet;
+ private bool testMode;
+ private ISAdQualityInitCallback adQualityInitCallback;
+ private ISAdQualityLogLevel logLevel;
+ private String initializationSource;
+ private bool coppa;
+ private ISAdQualityDeviceIdType deviceIdType;
+
+ public ISAdQualityConfig()
+ {
+ userId = null;
+ testMode = false;
+ userIdSet = false;
+ logLevel = ISAdQualityLogLevel.INFO;
+ coppa = false;
+ deviceIdType = ISAdQualityDeviceIdType.NONE;
+ initializationSource = null;
+ }
+
+ public String UserId
+ {
+ get
+ {
+ return userId;
+ }
+ set
+ {
+ userIdSet = true;
+ userId = value;
+ }
+ }
+
+ internal bool UserIdSet
+ {
+ get
+ {
+ return userIdSet;
+ }
+ }
+
+ public bool TestMode
+ {
+ get
+ {
+ return testMode;
+ }
+ set
+ {
+ testMode = value;
+ }
+ }
+
+ public ISAdQualityLogLevel LogLevel
+ {
+ get
+ {
+ return logLevel;
+ }
+ set
+ {
+ logLevel = value;
+ }
+ }
+
+ public ISAdQualityInitCallback AdQualityInitCallback
+ {
+ get
+ {
+ return adQualityInitCallback;
+ }
+ set
+ {
+ adQualityInitCallback = value;
+ }
+ }
+
+ public String InitializationSource
+ {
+ get
+ {
+ return initializationSource;
+ }
+ set
+ {
+ initializationSource = value;
+ }
+ }
+
+ public bool Coppa
+ {
+ get
+ {
+ return coppa;
+ }
+ set
+ {
+ coppa = value;
+ }
+ }
+
+ public ISAdQualityDeviceIdType DeviceIdType
+ {
+ get
+ {
+ return deviceIdType;
+ }
+ set
+ {
+ deviceIdType = value;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityConfig.cs.meta b/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityConfig.cs.meta
new file mode 100644
index 000000000..41950121c
--- /dev/null
+++ b/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 6ee3acefb6d46481191afc81fb1e4865
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityCustomMediationRevenue.cs b/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityCustomMediationRevenue.cs
new file mode 100644
index 000000000..39c399c3e
--- /dev/null
+++ b/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityCustomMediationRevenue.cs
@@ -0,0 +1,66 @@
+using System;
+using UnityEngine;
+
+public class ISAdQualityCustomMediationRevenue
+{
+ private ISAdQualityMediationNetwork mediationNetwork;
+ private ISAdQualityAdType adType;
+ private double revenue;
+ private String placement;
+
+ public ISAdQualityCustomMediationRevenue()
+ {
+ mediationNetwork = ISAdQualityMediationNetwork.UNKNOWN;
+ adType = ISAdQualityAdType.UNKNOWN;
+ revenue = 0;
+ placement = null;
+ }
+
+ public ISAdQualityMediationNetwork MediationNetwork
+ {
+ get
+ {
+ return mediationNetwork;
+ }
+ set
+ {
+ mediationNetwork = value;
+ }
+ }
+
+ public ISAdQualityAdType AdType
+ {
+ get
+ {
+ return adType;
+ }
+ set
+ {
+ adType = value;
+ }
+ }
+
+ public double Revenue
+ {
+ get
+ {
+ return revenue;
+ }
+ set
+ {
+ revenue = value;
+ }
+ }
+
+ public String Placement
+ {
+ get
+ {
+ return placement;
+ }
+ set
+ {
+ placement = value;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityCustomMediationRevenue.cs.meta b/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityCustomMediationRevenue.cs.meta
new file mode 100644
index 000000000..fb691684c
--- /dev/null
+++ b/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityCustomMediationRevenue.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 8bb7937cdf9c640cf8ee92ed1fa34227
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityInitCallback.cs b/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityInitCallback.cs
new file mode 100644
index 000000000..a953c9995
--- /dev/null
+++ b/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityInitCallback.cs
@@ -0,0 +1,8 @@
+using System;
+using UnityEngine;
+
+public interface ISAdQualityInitCallback
+{
+ void adQualitySdkInitSuccess();
+ void adQualitySdkInitFailed(ISAdQualityInitError adQualityInitError, string errorMessage);
+}
\ No newline at end of file
diff --git a/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityInitCallback.cs.meta b/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityInitCallback.cs.meta
new file mode 100644
index 000000000..7b30f4ce9
--- /dev/null
+++ b/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityInitCallback.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 894fc956cbe6c43e385333baa4651e56
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityInitCallbackWrapper.cs b/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityInitCallbackWrapper.cs
new file mode 100644
index 000000000..566a72c63
--- /dev/null
+++ b/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityInitCallbackWrapper.cs
@@ -0,0 +1,88 @@
+using UnityEngine;
+using System;
+
+public class ISAdQualityInitCallbackWrapper : MonoBehaviour
+{
+ private ISAdQualityInitCallback mCallback;
+
+#if UNITY_ANDROID
+ private ISAdQualityAndroidInitHandler adQualityAndroidInitHandler;
+#endif
+
+#if UNITY_IPHONE || UNITY_IOS
+ private ISAdQualityiOSInitHandler adQualityiOSInitHandler;
+#endif
+
+ public ISAdQualityInitCallback AdQualityInitCallback
+ {
+ set
+ {
+ mCallback = value;
+ }
+ get
+ {
+ return mCallback;
+ }
+ }
+
+ void Awake ()
+ {
+#if UNITY_ANDROID
+ adQualityAndroidInitHandler = new ISAdQualityAndroidInitHandler(); //sets this.adQualityAndroidInitHandler as listener for init events on the bridge
+ registerAdQualityAndroidInitEvents();
+#endif
+
+#if UNITY_IPHONE || UNITY_IOS
+ registerAdQualityiOSInitEvents();
+ adQualityiOSInitHandler = new ISAdQualityiOSInitHandler(); //sets this.adQualityiOSInit as listener for init events on the bridge
+#endif
+ DontDestroyOnLoad(gameObject); //Makes the object not be destroyed automatically when loading a new scene.
+ }
+
+ private void adQualitySdkInitSuccess()
+ {
+ if (mCallback != null)
+ {
+ mCallback.adQualitySdkInitSuccess();
+ }
+ }
+
+ private void onAdQualitySdkInitFailed(ISAdQualityInitError sdkInitError, string errorMsg)
+ {
+ if (mCallback != null)
+ {
+ mCallback.adQualitySdkInitFailed(sdkInitError, errorMsg);
+ }
+ }
+
+#if UNITY_ANDROID
+ //subscribe to ISAdQualityAndroidInitHandler events
+ private void registerAdQualityAndroidInitEvents() {
+ adQualityAndroidInitHandler.OnAdQualitySdkInitSuccess += () =>
+ {
+ adQualitySdkInitSuccess();
+ };
+
+ adQualityAndroidInitHandler.OnAdQualitySdkInitFailed += (sdkInitError, errorMsg) =>
+ {
+ onAdQualitySdkInitFailed(sdkInitError, errorMsg);
+ };
+ }
+#endif
+
+#if UNITY_IPHONE || UNITY_IOS
+ //subscribe to ISAdQualityiOSInitHandler events
+ private void registerAdQualityiOSInitEvents() {
+ ISAdQualityiOSInitHandler.OnAdQualitySdkInitSuccess += () =>
+ {
+ adQualitySdkInitSuccess();
+ };
+
+ ISAdQualityiOSInitHandler.OnAdQualitySdkInitFailed += (sdkInitError, errorMsg) =>
+ {
+ onAdQualitySdkInitFailed(sdkInitError, errorMsg);
+ };
+ }
+#endif
+
+}
\ No newline at end of file
diff --git a/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityInitCallbackWrapper.cs.meta b/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityInitCallbackWrapper.cs.meta
new file mode 100644
index 000000000..b1a998fbb
--- /dev/null
+++ b/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityInitCallbackWrapper.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 1f5c838c5a8ff40529569d29728deec4
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityInitError.cs b/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityInitError.cs
new file mode 100644
index 000000000..d8d1ef423
--- /dev/null
+++ b/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityInitError.cs
@@ -0,0 +1,14 @@
+using System;
+
+public enum ISAdQualityInitError {
+ AD_QUALITY_SDK_WAS_SHUTDOWN = 0,
+ ILLEGAL_USER_ID = 1,
+ ILLEGAL_APP_KEY = 2,
+ EXCEPTION_ON_INIT = 3,
+ NO_NETWORK_CONNECTION = 4,
+ CONFIG_LOAD_TIMEOUT = 5,
+ CONNECTOR_LOAD_TIMEOUT = 6,
+ AD_NETWORK_VERSION_NOT_SUPPORTED_YET = 7,
+ AD_NETWORK_SDK_REQUIRES_NEWER_AD_QUALITY_SDK = 8,
+ AD_QUALITY_ALREADY_INITIALIZED = 9
+};
\ No newline at end of file
diff --git a/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityInitError.cs.meta b/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityInitError.cs.meta
new file mode 100644
index 000000000..88213d265
--- /dev/null
+++ b/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityInitError.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 6da8d8e07e45042f197fc5f6304a9d62
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityJSON.cs b/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityJSON.cs
new file mode 100644
index 000000000..265f875c8
--- /dev/null
+++ b/Assets/ThirdParty/IronSourceAdQuality/Scripts/AdQuality/ISAdQualityJSON.cs
@@ -0,0 +1,495 @@
+/*
+ * Based on the miniJSON by Calvin Rien
+ */
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Globalization;
+using System.IO;
+using System.Text;
+
+namespace ISAdQualityJSON
+{
+ public static class Json
+ {
+ public static object Deserialize (string json)
+ {
+ if (json == null) {
+ return null;
+ }
+ return Parser.Parse (json);
+ }
+
+ sealed class Parser : IDisposable
+ {
+ const string WHITE_SPACE = " \t\n\r";
+ const string WORD_BREAK = " \t\n\r{}[],:\"";
+
+ enum TOKEN
+ {
+ NONE,
+ CURLY_OPEN,
+ CURLY_CLOSE,
+ SQUARED_OPEN,
+ SQUARED_CLOSE,
+ COLON,
+ COMMA,
+ STRING,
+ NUMBER,
+ TRUE,
+ FALSE,
+ NULL
+ }
+ ;
+
+ StringReader json;
+
+ Parser (string jsonString)
+ {
+ json = new StringReader (jsonString);
+ }
+
+ public static object Parse (string jsonString)
+ {
+ using (var instance = new Parser(jsonString)) {
+ return instance.ParseValue ();
+ }
+ }
+
+ public void Dispose ()
+ {
+ json.Dispose ();
+ json = null;
+ }
+
+ Dictionary ParseObject ()
+ {
+ Dictionary table = new Dictionary ();
+
+ // ditch opening brace
+ json.Read ();
+
+ // {
+ while (true) {
+ switch (NextToken) {
+ case TOKEN.NONE:
+ return null;
+ case TOKEN.COMMA:
+ continue;
+ case TOKEN.CURLY_CLOSE:
+ return table;
+ default:
+ // name
+ string name = ParseString ();
+ if (name == null) {
+ return null;
+ }
+
+ // :
+ if (NextToken != TOKEN.COLON) {
+ return null;
+ }
+ // ditch the colon
+ json.Read ();
+
+ // value
+ table [name] = ParseValue ();
+ break;
+ }
+ }
+ }
+
+ List