diff --git a/Assets/GoogleMobileAds/GoogleMobileAds.Android.dll b/Assets/GoogleMobileAds/GoogleMobileAds.Android.dll new file mode 100755 index 0000000..8692740 Binary files /dev/null and b/Assets/GoogleMobileAds/GoogleMobileAds.Android.dll differ diff --git a/Assets/GoogleMobileAds/GoogleMobileAds.Common.dll b/Assets/GoogleMobileAds/GoogleMobileAds.Common.dll new file mode 100755 index 0000000..a5c4a7c Binary files /dev/null and b/Assets/GoogleMobileAds/GoogleMobileAds.Common.dll differ diff --git a/Assets/GoogleMobileAds/GoogleMobileAds.Core.dll b/Assets/GoogleMobileAds/GoogleMobileAds.Core.dll new file mode 100755 index 0000000..21ab28d Binary files /dev/null and b/Assets/GoogleMobileAds/GoogleMobileAds.Core.dll differ diff --git a/Assets/GoogleMobileAds/GoogleMobileAds.Ump.Android.dll b/Assets/GoogleMobileAds/GoogleMobileAds.Ump.Android.dll new file mode 100755 index 0000000..3783a7b Binary files /dev/null and b/Assets/GoogleMobileAds/GoogleMobileAds.Ump.Android.dll differ diff --git a/Assets/GoogleMobileAds/GoogleMobileAds.Ump.Unity.dll b/Assets/GoogleMobileAds/GoogleMobileAds.Ump.Unity.dll new file mode 100755 index 0000000..39564fa Binary files /dev/null and b/Assets/GoogleMobileAds/GoogleMobileAds.Ump.Unity.dll differ diff --git a/Assets/GoogleMobileAds/GoogleMobileAds.Ump.dll b/Assets/GoogleMobileAds/GoogleMobileAds.Ump.dll new file mode 100755 index 0000000..66315e6 Binary files /dev/null and b/Assets/GoogleMobileAds/GoogleMobileAds.Ump.dll differ diff --git a/Assets/GoogleMobileAds/GoogleMobileAds.Unity.dll b/Assets/GoogleMobileAds/GoogleMobileAds.Unity.dll new file mode 100755 index 0000000..e331827 Binary files /dev/null and b/Assets/GoogleMobileAds/GoogleMobileAds.Unity.dll differ diff --git a/Assets/GoogleMobileAds/GoogleMobileAds.dll b/Assets/GoogleMobileAds/GoogleMobileAds.dll new file mode 100755 index 0000000..9901664 Binary files /dev/null and b/Assets/GoogleMobileAds/GoogleMobileAds.dll differ diff --git a/Assets/GoogleMobileAds/link.xml b/Assets/GoogleMobileAds/link.xml new file mode 100755 index 0000000..7db049d --- /dev/null +++ b/Assets/GoogleMobileAds/link.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/Assets/GoogleMobileAdsNative/Editor/GoogleMobileAdsNativeDependencies.xml b/Assets/GoogleMobileAdsNative/Editor/GoogleMobileAdsNativeDependencies.xml new file mode 100755 index 0000000..90dccc0 --- /dev/null +++ b/Assets/GoogleMobileAdsNative/Editor/GoogleMobileAdsNativeDependencies.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/Assets/GoogleMobileAdsNative/GoogleMobileAdsNative.Android.dll b/Assets/GoogleMobileAdsNative/GoogleMobileAdsNative.Android.dll new file mode 100755 index 0000000..e58f0a9 Binary files /dev/null and b/Assets/GoogleMobileAdsNative/GoogleMobileAdsNative.Android.dll differ diff --git a/Assets/GoogleMobileAdsNative/GoogleMobileAdsNative.Common.dll b/Assets/GoogleMobileAdsNative/GoogleMobileAdsNative.Common.dll new file mode 100755 index 0000000..4eff893 Binary files /dev/null and b/Assets/GoogleMobileAdsNative/GoogleMobileAdsNative.Common.dll differ diff --git a/Assets/GoogleMobileAdsNative/GoogleMobileAdsNative.dll b/Assets/GoogleMobileAdsNative/GoogleMobileAdsNative.dll new file mode 100755 index 0000000..ce93dea Binary files /dev/null and b/Assets/GoogleMobileAdsNative/GoogleMobileAdsNative.dll differ diff --git a/Assets/GoogleMobileAdsNative/link.xml b/Assets/GoogleMobileAdsNative/link.xml new file mode 100755 index 0000000..3940afc --- /dev/null +++ b/Assets/GoogleMobileAdsNative/link.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/Assets/Plugins/Android/TapsellMediationAdmobAdapterPlugin.androidlib/AndroidManifest.xml b/Assets/Plugins/Android/TapsellMediationAdmobAdapterPlugin.androidlib/AndroidManifest.xml new file mode 100755 index 0000000..6f0a631 --- /dev/null +++ b/Assets/Plugins/Android/TapsellMediationAdmobAdapterPlugin.androidlib/AndroidManifest.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Assets/Plugins/Android/TapsellMediationAdmobAdapterPlugin/AndroidManifest.xml b/Assets/Plugins/Android/TapsellMediationAdmobAdapterPlugin/AndroidManifest.xml new file mode 100644 index 0000000..6f0a631 --- /dev/null +++ b/Assets/Plugins/Android/TapsellMediationAdmobAdapterPlugin/AndroidManifest.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Assets/Plugins/Android/TapsellMediationApplovinAdapterPlugin.androidlib/AndroidManifest.xml b/Assets/Plugins/Android/TapsellMediationApplovinAdapterPlugin.androidlib/AndroidManifest.xml new file mode 100755 index 0000000..323ba7e --- /dev/null +++ b/Assets/Plugins/Android/TapsellMediationApplovinAdapterPlugin.androidlib/AndroidManifest.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Assets/Plugins/Android/TapsellMediationApplovinAdapterPlugin/AndroidManifest.xml b/Assets/Plugins/Android/TapsellMediationApplovinAdapterPlugin/AndroidManifest.xml new file mode 100644 index 0000000..323ba7e --- /dev/null +++ b/Assets/Plugins/Android/TapsellMediationApplovinAdapterPlugin/AndroidManifest.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Assets/Plugins/Android/TapsellMediationPlugin.androidlib/AndroidManifest.xml b/Assets/Plugins/Android/TapsellMediationPlugin.androidlib/AndroidManifest.xml index dc0bb13..2675ed1 100755 --- a/Assets/Plugins/Android/TapsellMediationPlugin.androidlib/AndroidManifest.xml +++ b/Assets/Plugins/Android/TapsellMediationPlugin.androidlib/AndroidManifest.xml @@ -1,6 +1,6 @@  - + \ No newline at end of file diff --git a/Assets/Plugins/Android/TapsellMediationPlugin/AndroidManifest.xml b/Assets/Plugins/Android/TapsellMediationPlugin/AndroidManifest.xml new file mode 100644 index 0000000..dc0bb13 --- /dev/null +++ b/Assets/Plugins/Android/TapsellMediationPlugin/AndroidManifest.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Assets/Plugins/Android/googlemobileads-native-unity.aar b/Assets/Plugins/Android/googlemobileads-native-unity.aar new file mode 100755 index 0000000..c9a5782 Binary files /dev/null and b/Assets/Plugins/Android/googlemobileads-native-unity.aar differ diff --git a/Assets/Plugins/Android/googlemobileads-unity.aar b/Assets/Plugins/Android/googlemobileads-unity.aar new file mode 100755 index 0000000..e2005d8 Binary files /dev/null and b/Assets/Plugins/Android/googlemobileads-unity.aar differ diff --git a/Assets/Plugins/Android/mainTemplate.gradle b/Assets/Plugins/Android/mainTemplate.gradle index 3231f50..1180ed4 100755 --- a/Assets/Plugins/Android/mainTemplate.gradle +++ b/Assets/Plugins/Android/mainTemplate.gradle @@ -4,8 +4,14 @@ apply plugin: 'com.android.library' dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) // Android Resolver Dependencies Start - implementation 'ir.tapsell.mediation.adapter:legacy-unity:1.0.1-beta04' // Assets/Tapsell/Mediation/Adapter/Legacy/Editor/LegacyAdapterDependencies.xml:3 - implementation 'ir.tapsell.mediation:tapsell-unity:1.0.1-beta04' // Assets/Tapsell/Mediation/Editor/MediationDependencies.xml:3 + implementation 'com.google.code.gson:gson:2.8.5' // Assets/GoogleMobileAdsNative/Editor/GoogleMobileAdsNativeDependencies.xml:3 + implementation 'ir.tapsell.mediation.adapter:admob-unity:1.0.1-beta07' // Assets/Tapsell/Mediation/Adapter/Admob/Editor/AdmobAdapterDependencies.xml:7 + implementation 'ir.tapsell.mediation.adapter:applovin-unity:1.0.1-beta07' // Assets/Tapsell/Mediation/Adapter/Applovin/Editor/ApplovinAdapterDependencies.xml:7 + implementation 'ir.tapsell.mediation.adapter:fyber-unity:1.0.1-beta07' // Assets/Tapsell/Mediation/Adapter/Fyber/Editor/FyberAdapterDependencies.xml:7 + implementation 'ir.tapsell.mediation.adapter:ironsource-unity:1.0.1-beta07' // Assets/Tapsell/Mediation/Adapter/IronSource/Editor/IronSourceAdapterDependencies.xml:3 + implementation 'ir.tapsell.mediation.adapter:legacy-unity:1.0.1-beta07' // Assets/Tapsell/Mediation/Adapter/Legacy/Editor/LegacyAdapterDependencies.xml:3 + implementation 'ir.tapsell.mediation.adapter:mintegral-unity:1.0.1-beta07' // Assets/Tapsell/Mediation/Adapter/Mintegral/Editor/MintegralAdapterDependencies.xml:8 + implementation 'ir.tapsell.mediation:tapsell-unity:1.0.1-beta07' // Assets/Tapsell/Mediation/Editor/MediationDependencies.xml:3 // Android Resolver Dependencies End **DEPS**} diff --git a/Assets/Plugins/Android/settingsTemplate.gradle b/Assets/Plugins/Android/settingsTemplate.gradle index 0cc1dea..06e558f 100755 --- a/Assets/Plugins/Android/settingsTemplate.gradle +++ b/Assets/Plugins/Android/settingsTemplate.gradle @@ -18,6 +18,12 @@ dependencyResolutionManagement { mavenCentral() // Android Resolver Repos Start def unityProjectPath = $/file:///**DIR_UNITYPROJECT**/$.replace("\\", "/") + maven { + url "https://android-sdk.is.com" // Assets/Tapsell/Mediation/Adapter/IronSource/Editor/IronSourceAdapterDependencies.xml:6, Assets/Tapsell/Mediation/Adapter/Admob/Editor/AdmobAdapterDependencies.xml:7, Assets/Tapsell/Mediation/Adapter/Applovin/Editor/ApplovinAdapterDependencies.xml:7, Assets/Tapsell/Mediation/Adapter/Fyber/Editor/FyberAdapterDependencies.xml:7, Assets/Tapsell/Mediation/Adapter/Mintegral/Editor/MintegralAdapterDependencies.xml:8 + } + maven { + url "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea" // Assets/Tapsell/Mediation/Adapter/Mintegral/Editor/MintegralAdapterDependencies.xml:8 + } mavenLocal() // Android Resolver Repos End flatDir { diff --git a/Assets/Plugins/Google.MiniJson.dll b/Assets/Plugins/Google.MiniJson.dll new file mode 100755 index 0000000..4ddf730 Binary files /dev/null and b/Assets/Plugins/Google.MiniJson.dll differ diff --git a/Assets/Sample/Scenes/MainScene.unity b/Assets/Sample/Scenes/MainScene.unity index 2b9da90..448e485 100644 --- a/Assets/Sample/Scenes/MainScene.unity +++ b/Assets/Sample/Scenes/MainScene.unity @@ -331,6 +331,7 @@ GameObject: - component: {fileID: 519420032} - component: {fileID: 519420031} - component: {fileID: 519420029} + - component: {fileID: 519420033} m_Layer: 0 m_Name: Main Camera m_TagString: MainCamera @@ -413,6 +414,18 @@ Transform: - {fileID: 444580470} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &519420033 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 837fb6d38bbd404d82cccfb5eee40333, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &604960663 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Sample/Scripts/BannerScene.cs b/Assets/Sample/Scripts/BannerScene.cs index 040dccd..0e30402 100644 --- a/Assets/Sample/Scripts/BannerScene.cs +++ b/Assets/Sample/Scripts/BannerScene.cs @@ -1,10 +1,11 @@ -using Tapsell.Mediation.Request; +using Sample.Scripts; +using Tapsell.Mediation.Request; using Tapsell.Mediation.Show.Banner; using UnityEngine; public class BannerScene : MonoBehaviour { - private const string ZoneID = "bbf65b62-293b-4a34-a39d-8b3acab15771"; + private const string ZoneID = TapsellMediationKeys.BANNER; private static string _adId; private static BannerPosition _position = BannerPosition.Top; private static BannerSize _size = BannerSize.Banner32050; diff --git a/Assets/Sample/Scripts/InterstitialScene.cs b/Assets/Sample/Scripts/InterstitialScene.cs index c007814..23c3a99 100644 --- a/Assets/Sample/Scripts/InterstitialScene.cs +++ b/Assets/Sample/Scripts/InterstitialScene.cs @@ -1,8 +1,9 @@ -using UnityEngine; +using Sample.Scripts; +using UnityEngine; public class InterstitialScene : MonoBehaviour { - private const string ZoneID = "313f90de-f6f0-4e37-a3b3-d9bacceba92f"; + private const string ZoneID = TapsellMediationKeys.INTERSTITIAL; private static string _adId = ""; public void Request() diff --git a/Assets/Sample/Scripts/MainScene.cs b/Assets/Sample/Scripts/MainScene.cs new file mode 100644 index 0000000..e4c04be --- /dev/null +++ b/Assets/Sample/Scripts/MainScene.cs @@ -0,0 +1,17 @@ +using System; +using UnityEngine; + +public class MainScene : MonoBehaviour +{ + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)] + private static void OnRuntimeInitialize() + { + // send result of user consent dialog to Tapsell. + SetUserConsent(); + } + + private static void SetUserConsent() + { + Tapsell.Mediation.Tapsell.SetUserConsent(true); + } +} \ No newline at end of file diff --git a/Assets/Sample/Scripts/NativeScene.cs b/Assets/Sample/Scripts/NativeScene.cs index f557ea1..0c9aef8 100644 --- a/Assets/Sample/Scripts/NativeScene.cs +++ b/Assets/Sample/Scripts/NativeScene.cs @@ -1,11 +1,11 @@ -using Tapsell.Mediation.Show.Native; +using Sample.Scripts; +using Tapsell.Mediation.Show.Native; using UnityEngine; public class NativeScene : MonoBehaviour { - private const string ZoneID = "a1822306-55be-4a30-aadd-368dba61a64e"; + private const string ZoneID = TapsellMediationKeys.NATIVE; private static string _adId; - private static int _viewType = 0; public void Request() diff --git a/Assets/Sample/Scripts/RewardedScene.cs b/Assets/Sample/Scripts/RewardedScene.cs index 06e4f68..826fb56 100644 --- a/Assets/Sample/Scripts/RewardedScene.cs +++ b/Assets/Sample/Scripts/RewardedScene.cs @@ -1,8 +1,9 @@ -using UnityEngine; +using Sample.Scripts; +using UnityEngine; public class RewardedScene : MonoBehaviour { - private const string ZoneID = "cce935f9-15a0-4cfa-98a6-3f3e3981bca0"; + private const string ZoneID = TapsellMediationKeys.REWARDED; private static string _adId; public void Request() diff --git a/Assets/Sample/Scripts/SceneManager.cs b/Assets/Sample/Scripts/SceneManager.cs index f40590f..a73a0ec 100644 --- a/Assets/Sample/Scripts/SceneManager.cs +++ b/Assets/Sample/Scripts/SceneManager.cs @@ -3,11 +3,6 @@ public class SceneManager : MonoBehaviour { - private void Start() - { - // send result of user consent dialog to Tapsell. - Tapsell.Mediation.Tapsell.SetUserConsent(true); - } public void ChangeScene(string sceneName) { diff --git a/Assets/Sample/Scripts/TapsellMediationKeys.cs b/Assets/Sample/Scripts/TapsellMediationKeys.cs new file mode 100644 index 0000000..792791a --- /dev/null +++ b/Assets/Sample/Scripts/TapsellMediationKeys.cs @@ -0,0 +1,70 @@ +using System; +namespace Sample.Scripts +{ + + public static class TapsellMediationKeys { + public const string REWARDED = "1d710cc7-5e96-46ac-a3e9-8463300333e6"; + public const string INTERSTITIAL = "b3972749-f62a-475a-9ff2-cfc9e2a40f87"; + public const string NATIVE = "d217e3e6-0070-4120-925d-5d39d0298893"; + public const string BANNER = "e3d5999c-5990-4e31-8ce9-642ce040a7f4"; + } + + public static class LegacyKeys { + public const string REWARDED = "63b92f04-3d0f-4805-84a4-abeccf4edc18"; + public const string INTERSTITIAL = "0c4e2849-feea-4688-8280-0b0ae2ee0728"; + public const string NATIVE = "b1b92bca-8a54-4b82-9f53-90ea2b1a912c"; + public const string BANNER = "4bf4e11d-0967-41e6-91f6-a128d9462f2a"; + } + + public static class AdmobKeys { + public const string REWARDED = "d8f4ff72-e2e9-4e67-9eb8-f6d75787ef09"; + public const string INTERSTITIAL = "48b73764-8025-4c9d-9507-ce7a2c7f32ef"; + public const string NATIVE = "15cacb1b-6598-4fe9-b2da-8b26b4c1bbc5"; + public const string BANNER = "f965455e-a37a-4732-a0b4-05fc39cae16e"; + } + + public static class ApplovinKeys { + public const string REWARDED = "1abf9ca9-4f93-4ead-a238-b2d0d3032a7a"; + public const string INTERSTITIAL = "8c33dc60-5911-4145-90b0-d8cce9594fed"; + public const string NATIVE = "2db08af5-54e3-458e-9399-1d365a7516c9"; + public const string BANNER = "1df4bf1e-4fef-4704-b776-7881bdad5303"; + } + + public static class MintegralKeys { + public const string REWARDED = "b4c24eba-b715-47aa-8e6e-641d19936765"; + public const string INTERSTITIAL = "b2ef073b-f9a1-4555-8450-ce30cf3cee98"; + public const string NATIVE = "1a744a71-5abe-4d4a-8323-3832c89495eb"; + public const string BANNER = "6c0b2878-c743-4668-b224-00b07ed66550"; + } + + public static class IronSourceKeys { + public const string REWARDED = "59ea106a-10c2-4711-9b50-38c73200f56a"; + public const string INTERSTITIAL = "e87e094b-1e51-468c-ba0c-b2752dc04d72"; + public const string BANNER = "33063aae-07c0-4571-aeac-842c0c7f6478"; + } + + public static class LiftoffKeys { + public const string REWARDED = "0f447ea1-6b11-4e39-b942-712e2d696d78"; + public const string INTERSTITIAL = "2316460a-fbcc-4e29-8a8e-f10ef5358b3b"; + public const string BANNER = "c066375e-da10-45a8-be3b-6edf5668a0e4"; + } + + public static class ChartBoostKeys { + public const string REWARDED = "3dde311c-daf5-4a6b-8ce7-08a4103cfb7f"; + public const string INTERSTITIAL = "0d3e6f6d-8a11-4c32-a076-4415c03132a9"; + public const string BANNER = "0d3e6f6d-8a11-4c32-a076-4415c03132a9"; + } + + public static class WortiseKeys { + public const string REWARDED = "4fcf71a4-afd1-412d-9b19-46dd85644f9d"; + public const string INTERSTITIAL = "4d268df4-7e8a-43d8-a014-02b4aeff1e72"; + public const string NATIVE = "88eab80b-113b-4856-8dc2-4aa571c4d7c3"; + public const string BANNER = "ddd6c321-1f1f-4396-8524-a4f760063b2f"; + } + + public static class FyberKeys { + public const string REWARDED = "1756532"; + public const string INTERSTITIAL = "1756532"; + public const string BANNER = "1756531"; + } +} \ No newline at end of file diff --git a/Assets/Tapsell/Mediation/Adapter/Admob/AdmobAndroidCaller.cs b/Assets/Tapsell/Mediation/Adapter/Admob/AdmobAndroidCaller.cs new file mode 100644 index 0000000..115007c --- /dev/null +++ b/Assets/Tapsell/Mediation/Adapter/Admob/AdmobAndroidCaller.cs @@ -0,0 +1,18 @@ +#if UNITY_ANDROID + +using UnityEngine; + +namespace Tapsell.Mediation.Adapter.Admob +{ + internal static class AdmobAndroidCaller + { + private static readonly AndroidJavaClass AndroidClass = new AndroidJavaClass("ir.tapsell.mediation.adapter.admob.unity.Admob"); + + internal static void Call(string methodName, params object[] args) + { + AndroidClass.CallStatic(methodName, args); + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/Tapsell/Mediation/Adapter/Admob/AdmobAndroidMessageListener.cs b/Assets/Tapsell/Mediation/Adapter/Admob/AdmobAndroidMessageListener.cs new file mode 100644 index 0000000..ee713d9 --- /dev/null +++ b/Assets/Tapsell/Mediation/Adapter/Admob/AdmobAndroidMessageListener.cs @@ -0,0 +1,25 @@ +using Tapsell.Mediation.Messaging; +using Tapsell.Mediation.Show.Native; +using UnityEngine; + +namespace Tapsell.Mediation.Adapter.Admob +{ + internal class AdmobAndroidMessageListener : TapsellAndroidMessageListener + { + public void OnAdmobNativeAdRequest(string response) + { + NativeAdapter.Get() + .RequestNativeAd(JsonUtility.FromJson(response)); + } + + public void OnAdmobNativeAdShow(string requestId) + { + NativeAdapter.Get().ShowNativeAd(requestId, NativeAdViewHolder.Get().GetNativeAdView(requestId)); + } + + public void OnAdmobNativeAdDestroy(string requestId) + { + NativeAdapter.Get().DestroyNativeAd(requestId); + } + } +} \ No newline at end of file diff --git a/Assets/Tapsell/Mediation/Adapter/Admob/AdmobInitializer.cs b/Assets/Tapsell/Mediation/Adapter/Admob/AdmobInitializer.cs new file mode 100644 index 0000000..06c0497 --- /dev/null +++ b/Assets/Tapsell/Mediation/Adapter/Admob/AdmobInitializer.cs @@ -0,0 +1,14 @@ +using Tapsell.Mediation.Messaging; +using UnityEngine; + +namespace Tapsell.Mediation.Adapter.Admob +{ + internal static class AdmobInitializer + { + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] + private static void OnRuntimeInitialize() + { + AndroidMessageReceiver.RegisterReceiver(); + } + } +} \ No newline at end of file diff --git a/Assets/Tapsell/Mediation/Adapter/Admob/Editor/AdmobAdapterDependencies.xml b/Assets/Tapsell/Mediation/Adapter/Admob/Editor/AdmobAdapterDependencies.xml new file mode 100644 index 0000000..3da0e0b --- /dev/null +++ b/Assets/Tapsell/Mediation/Adapter/Admob/Editor/AdmobAdapterDependencies.xml @@ -0,0 +1,9 @@ + + + + + https://android-sdk.is.com + + + + \ No newline at end of file diff --git a/Assets/Tapsell/Mediation/Adapter/Admob/Editor/AdmobManifestProcessor.cs b/Assets/Tapsell/Mediation/Adapter/Admob/Editor/AdmobManifestProcessor.cs new file mode 100755 index 0000000..73dd6b6 --- /dev/null +++ b/Assets/Tapsell/Mediation/Adapter/Admob/Editor/AdmobManifestProcessor.cs @@ -0,0 +1,43 @@ +#if UNITY_ANDROID + +using Tapsell.Mediation.Editor; +using Tapsell.Mediation.Editor.Utils; + +namespace Tapsell.Mediation.Adapter.Admob.Editor +{ + internal class AdmobManifestProcessor : ManifestProcessor + { + private protected override string PluginName() + { + return "TapsellMediationAdmobAdapter"; + } + + private protected override string ManifestRelativePath() + { +#if UNITY_2021_2_OR_NEWER + return "Plugins/Android/TapsellMediationAdmobAdapterPlugin/AndroidManifest.xml"; +#else + return "Plugins/Android/AndroidManifest.xml"; +#endif + } + + private protected override string MetadataApplicationKey() + { + return "com.google.android.gms.ads.APPLICATION_ID"; + } + + private protected override string MetadataApplicationValue() + { + return TapsellMediationSettings.LoadInstance().AdmobAdapterSignature; + } + + private protected override bool ShouldValidateMetadataApplicationValue() + { + return false; + } + + public override int callbackOrder => 1; + } +} + +#endif \ No newline at end of file diff --git a/Assets/Tapsell/Mediation/Adapter/Admob/NativeAdapter.cs b/Assets/Tapsell/Mediation/Adapter/Admob/NativeAdapter.cs new file mode 100644 index 0000000..5f2c158 --- /dev/null +++ b/Assets/Tapsell/Mediation/Adapter/Admob/NativeAdapter.cs @@ -0,0 +1,182 @@ +using System.Collections.Generic; +using GoogleMobileAds.Api; +using Tapsell.Mediation.Show.Native; +using Tapsell.Mediation.Utils; +using TMPro; +using UnityEngine; +using UnityEngine.UI; + +namespace Tapsell.Mediation.Adapter.Admob +{ + internal class NativeAdapter + { + private static NativeAdapter _instance; + + private readonly Dictionary _ads = new Dictionary(); + + // Since Admob impression callback is not always called, we call the listener in multiple triggers. + // This List is used to prevent multiple calls. + private readonly List _impressionCalled = new List(); + + // Since Admob click callback is not always called, we call the listener in both open and click triggers. + // For each filled ad there can be only one click source activated. + private readonly Dictionary _clickCallSources = new Dictionary(); + + private static class AndroidAPIs + { + public const string LoadSuccess = "nativeRequestSucceeded"; + public const string LoadFailure = "nativeRequestFailed"; + + public const string ShowFailure = "onNativeAdImpressionFailure"; + public const string Click = "onNativeAdClick"; + public const string Impression = "onNativeAdImpression"; + // not currently provided by Admob in Unity + public const string Revenue = "onNativeAdPaidEvent"; + } + + internal static NativeAdapter Get() + { + if (_instance != null) return _instance; + + _instance = new NativeAdapter(); + return _instance; + } + + internal void RequestNativeAd(NativeRequestInfo info) + { + var adLoader = new AdLoader.Builder(info.zoneId) + .ForNativeAd() + .Build(); + + adLoader.OnNativeAdLoaded += (_, args) => OnAdLoadSuccess(info.requestId, args.nativeAd); + adLoader.OnAdFailedToLoad += (_, args) => OnAdLoadFailure(info.requestId, args); + + adLoader.OnNativeAdClicked += (_, args) => OnAdClick(info.requestId); + adLoader.OnNativeAdImpression += (_, args) => OnAdImpression(info.requestId); + adLoader.OnNativeAdOpening += (_, args) => OnAdOpened(info.requestId); + + adLoader.LoadAd(new AdRequest()); + } + + internal void ShowNativeAd(string requestId, NativeAdView view) + { + // If any object is successfully registered to Admob, ad impression is triggered manually + var anyObjectRegistered = false; + + var ad = _ads[requestId]; + if (ad == null) + { + OnAdImpressionFailure(requestId, "Internal Error: No ad was not found for the provided id."); + return; + } + + var iconTexture = ad.GetIconTexture(); + if (iconTexture != null && view.IconImage != null) + { + ViewHelper.SetImage(iconTexture, view.IconImage); + if (ad.RegisterIconImageGameObject(view.IconImage)) anyObjectRegistered = true; + } + + var adChoicesTexture = ad.GetAdChoicesLogoTexture(); + if (adChoicesTexture != null && view.AdChoicesImage != null) + { + ViewHelper.SetImage(adChoicesTexture, view.AdChoicesImage); + if (ad.RegisterAdChoicesLogoGameObject(view.AdChoicesImage)) anyObjectRegistered = true; + } + + if (ad.GetImageTextures().Count > 0 && view.BannerImage != null) + { + var bannerTexture = ad.GetImageTextures()[0]; + ViewHelper.SetImage(bannerTexture, view.BannerImage); + if (ad.RegisterImageGameObjects(new List { view.BannerImage }) >= 1) anyObjectRegistered = true; + } + + var title = ad.GetHeadlineText(); + if (title != null && view.TitleText != null) + { + ViewHelper.SetText(title, view.TitleText); + if (ad.RegisterHeadlineTextGameObject(view.TitleText)) anyObjectRegistered = true; + } + + var description = ad.GetBodyText(); + if (description != null && view.DescriptionText != null) + { + ViewHelper.SetText(description, view.DescriptionText); + if (ad.RegisterBodyTextGameObject(view.DescriptionText)) anyObjectRegistered = true; + } + + var advertiser = ad.GetAdvertiserText(); + if (advertiser != null && view.AdvertiserText != null) + { + ViewHelper.SetText(advertiser, view.AdvertiserText); + if (ad.RegisterAdvertiserTextGameObject(view.AdvertiserText)) anyObjectRegistered = true; + } + + var ctaText = ad.GetCallToActionText(); + if (ctaText != null && view.CtaButton != null) + { + ViewHelper.SetButtonText(ctaText, view.CtaButton); + if (ad.RegisterCallToActionGameObject(view.CtaButton)) anyObjectRegistered = true; + } + + if (anyObjectRegistered) OnAdImpression(requestId); + } + + internal void DestroyNativeAd(string requestId) + { + _ads[requestId].Destroy(); + } + + private void OnAdLoadSuccess(string requestId, NativeAd ad) + { + _ads[requestId] = ad; + AdmobAndroidCaller.Call(AndroidAPIs.LoadSuccess, requestId); + } + + private void OnAdLoadFailure(string requestId, AdFailedToLoadEventArgs args) + { + AdmobAndroidCaller.Call(AndroidAPIs.LoadFailure, requestId, args.LoadAdError.ToString()); + } + + private void OnAdImpression(string requestId) + { + if (_impressionCalled.Contains(requestId)) return; + AdmobAndroidCaller.Call(AndroidAPIs.Impression, requestId); + _impressionCalled.Add(requestId); + } + + private void OnAdOpened(string requestId) + { + OnAdClick(requestId, ClickCallbackSource.Open); + } + + private void OnAdImpressionFailure(string requestId, string message) + { + AdmobAndroidCaller.Call(AndroidAPIs.ShowFailure, requestId, message); + } + + private void OnAdClick(string requestId, ClickCallbackSource source = ClickCallbackSource.Click) + { + if (ShouldCallClickListener(requestId, source)) + AdmobAndroidCaller.Call(AndroidAPIs.Click, requestId); + } + + private bool ShouldCallClickListener(string requestId, + ClickCallbackSource source = ClickCallbackSource.Click) + { + if (!_clickCallSources.ContainsKey(requestId)) + { + _clickCallSources[requestId] = source; + return true; + } + + return _clickCallSources[requestId] == source; + } + } + + enum ClickCallbackSource + { + Click, + Open + } +} \ No newline at end of file diff --git a/Assets/Tapsell/Mediation/Adapter/Admob/NativeRequestInfo.cs b/Assets/Tapsell/Mediation/Adapter/Admob/NativeRequestInfo.cs new file mode 100644 index 0000000..630c642 --- /dev/null +++ b/Assets/Tapsell/Mediation/Adapter/Admob/NativeRequestInfo.cs @@ -0,0 +1,17 @@ +using System; + +namespace Tapsell.Mediation.Adapter.Admob +{ + [Serializable] + public class NativeRequestInfo + { + public string requestId; + public string zoneId; + + public NativeRequestInfo(string requestId, string zoneId) + { + this.requestId = requestId; + this.zoneId = zoneId; + } + } +} \ No newline at end of file diff --git a/Assets/Tapsell/Mediation/Adapter/Applovin/Editor/ApplovinAdapterDependencies.xml b/Assets/Tapsell/Mediation/Adapter/Applovin/Editor/ApplovinAdapterDependencies.xml new file mode 100644 index 0000000..449a2ea --- /dev/null +++ b/Assets/Tapsell/Mediation/Adapter/Applovin/Editor/ApplovinAdapterDependencies.xml @@ -0,0 +1,9 @@ + + + + + https://android-sdk.is.com + + + + \ No newline at end of file diff --git a/Assets/Tapsell/Mediation/Adapter/Applovin/Editor/ApplovinManifestProcessor.cs b/Assets/Tapsell/Mediation/Adapter/Applovin/Editor/ApplovinManifestProcessor.cs new file mode 100755 index 0000000..163551d --- /dev/null +++ b/Assets/Tapsell/Mediation/Adapter/Applovin/Editor/ApplovinManifestProcessor.cs @@ -0,0 +1,44 @@ +#if UNITY_ANDROID + +using Tapsell.Mediation.Editor; +using Tapsell.Mediation.Editor.Utils; + +namespace Tapsell.Mediation.Adapter.Applovin.Editor +{ + internal class ApplovinManifestProcessor : ManifestProcessor + { + private protected override string PluginName() + { + return "TapsellMediationApplovinAdapter"; + } + + private protected override string ManifestRelativePath() + { +#if UNITY_2021_2_OR_NEWER + return "Plugins/Android/TapsellMediationApplovinAdapterPlugin/AndroidManifest.xml"; +#else + return "Plugins/Android/AndroidManifest.xml"; +#endif + + } + + private protected override string MetadataApplicationKey() + { + return "applovin.sdk.key"; + } + + private protected override string MetadataApplicationValue() + { + return TapsellMediationSettings.LoadInstance().ApplovinAdapterSignature; + } + + private protected override bool ShouldValidateMetadataApplicationValue() + { + return false; + } + + public override int callbackOrder => 1; + } +} + +#endif \ No newline at end of file diff --git a/Assets/Tapsell/Mediation/Adapter/Chartboost/Editor/ChartboostAdapterDependencies.xml b/Assets/Tapsell/Mediation/Adapter/Chartboost/Editor/ChartboostAdapterDependencies.xml new file mode 100644 index 0000000..15aefce --- /dev/null +++ b/Assets/Tapsell/Mediation/Adapter/Chartboost/Editor/ChartboostAdapterDependencies.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/Assets/Tapsell/Mediation/Adapter/Fyber/Editor/FyberAdapterDependencies.xml b/Assets/Tapsell/Mediation/Adapter/Fyber/Editor/FyberAdapterDependencies.xml new file mode 100644 index 0000000..ccc6d6b --- /dev/null +++ b/Assets/Tapsell/Mediation/Adapter/Fyber/Editor/FyberAdapterDependencies.xml @@ -0,0 +1,9 @@ + + + + + https://android-sdk.is.com + + + + \ No newline at end of file diff --git a/Assets/Tapsell/Mediation/Adapter/IronSource/Editor/IronSourceAdapterDependencies.xml b/Assets/Tapsell/Mediation/Adapter/IronSource/Editor/IronSourceAdapterDependencies.xml new file mode 100644 index 0000000..9452323 --- /dev/null +++ b/Assets/Tapsell/Mediation/Adapter/IronSource/Editor/IronSourceAdapterDependencies.xml @@ -0,0 +1,8 @@ + + + + + https://android-sdk.is.com + + + \ No newline at end of file diff --git a/Assets/Tapsell/Mediation/Adapter/Legacy/Editor/LegacyAdapterDependencies.xml b/Assets/Tapsell/Mediation/Adapter/Legacy/Editor/LegacyAdapterDependencies.xml index 813f6b7..48b2e5f 100644 --- a/Assets/Tapsell/Mediation/Adapter/Legacy/Editor/LegacyAdapterDependencies.xml +++ b/Assets/Tapsell/Mediation/Adapter/Legacy/Editor/LegacyAdapterDependencies.xml @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/Assets/Tapsell/Mediation/Adapter/Legacy/LegacyAndroidCaller.cs b/Assets/Tapsell/Mediation/Adapter/Legacy/LegacyAndroidCaller.cs index 79fe474..0af5225 100644 --- a/Assets/Tapsell/Mediation/Adapter/Legacy/LegacyAndroidCaller.cs +++ b/Assets/Tapsell/Mediation/Adapter/Legacy/LegacyAndroidCaller.cs @@ -6,7 +6,7 @@ namespace Tapsell.Mediation.Adapter.Legacy { internal static class LegacyAndroidCaller { - private static readonly AndroidJavaClass AndroidClass = new("ir.tapsell.mediation.adapter.legacy.unity.Legacy"); + private static readonly AndroidJavaClass AndroidClass = new AndroidJavaClass("ir.tapsell.mediation.adapter.legacy.unity.Legacy"); internal static void Call(string methodName, params object[] args) { diff --git a/Assets/Tapsell/Mediation/Adapter/Liftoff/Editor/LiftoffAdapterDependencies.xml b/Assets/Tapsell/Mediation/Adapter/Liftoff/Editor/LiftoffAdapterDependencies.xml new file mode 100644 index 0000000..5799a1e --- /dev/null +++ b/Assets/Tapsell/Mediation/Adapter/Liftoff/Editor/LiftoffAdapterDependencies.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/Assets/Tapsell/Mediation/Adapter/Mintegral/Editor/MintegralAdapterDependencies.xml b/Assets/Tapsell/Mediation/Adapter/Mintegral/Editor/MintegralAdapterDependencies.xml new file mode 100644 index 0000000..24e4b8f --- /dev/null +++ b/Assets/Tapsell/Mediation/Adapter/Mintegral/Editor/MintegralAdapterDependencies.xml @@ -0,0 +1,10 @@ + + + + + https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea + https://android-sdk.is.com + + + + \ No newline at end of file diff --git a/Assets/Tapsell/Mediation/Adapter/UnityAds/Editor/UnityAdsAdapterDependencies.xml b/Assets/Tapsell/Mediation/Adapter/UnityAds/Editor/UnityAdsAdapterDependencies.xml new file mode 100644 index 0000000..8a29c76 --- /dev/null +++ b/Assets/Tapsell/Mediation/Adapter/UnityAds/Editor/UnityAdsAdapterDependencies.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/Assets/Tapsell/Mediation/Adapter/Wortise/Editor/WortiseAdapterDependencies.xml b/Assets/Tapsell/Mediation/Adapter/Wortise/Editor/WortiseAdapterDependencies.xml new file mode 100644 index 0000000..c6c56bc --- /dev/null +++ b/Assets/Tapsell/Mediation/Adapter/Wortise/Editor/WortiseAdapterDependencies.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Assets/Tapsell/Mediation/Editor/GradleBuildPostProcessor.cs b/Assets/Tapsell/Mediation/Editor/GradleBuildPostProcessor.cs index 04b1d08..1ddd4f9 100644 --- a/Assets/Tapsell/Mediation/Editor/GradleBuildPostProcessor.cs +++ b/Assets/Tapsell/Mediation/Editor/GradleBuildPostProcessor.cs @@ -44,7 +44,7 @@ private static string AddPackageIfNotPresent(string currentValue, string newPack var trimmedValue = currentValue.Trim(); if (trimmedValue.Length == 0) return newPackage; - if (trimmedValue.Split(",").Any(package => package.Trim().Equals(newPackage))) + if (trimmedValue.Split(',').Any(package => package.Trim().Equals(newPackage))) { return currentValue; } diff --git a/Assets/Tapsell/Mediation/Editor/MediationDependencies.xml b/Assets/Tapsell/Mediation/Editor/MediationDependencies.xml index 7c2916a..c41b221 100644 --- a/Assets/Tapsell/Mediation/Editor/MediationDependencies.xml +++ b/Assets/Tapsell/Mediation/Editor/MediationDependencies.xml @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/Assets/Tapsell/Mediation/Editor/MediationManifestProcessor.cs b/Assets/Tapsell/Mediation/Editor/MediationManifestProcessor.cs index c2665cf..01cfbac 100755 --- a/Assets/Tapsell/Mediation/Editor/MediationManifestProcessor.cs +++ b/Assets/Tapsell/Mediation/Editor/MediationManifestProcessor.cs @@ -13,7 +13,11 @@ private protected override string PluginName() private protected override string ManifestRelativePath() { - return "Plugins/Android/TapsellMediationPlugin.androidlib/AndroidManifest.xml"; +#if UNITY_2021_2_OR_NEWER + return "Plugins/Android/TapsellMediationPlugin/AndroidManifest.xml"; +#else + return "Plugins/Android/AndroidManifest.xml"; +#endif } private protected override string MetadataApplicationKey() diff --git a/Assets/Tapsell/Mediation/Editor/Utils/PropertiesHelper.cs b/Assets/Tapsell/Mediation/Editor/Utils/PropertiesHelper.cs index 7356bdc..4a4914a 100644 --- a/Assets/Tapsell/Mediation/Editor/Utils/PropertiesHelper.cs +++ b/Assets/Tapsell/Mediation/Editor/Utils/PropertiesHelper.cs @@ -3,7 +3,6 @@ using System.IO; using System.Text; using System.Text.RegularExpressions; -using UnityEngine; namespace Tapsell.Mediation.Editor.Utils { @@ -99,11 +98,9 @@ public static IDictionary Load(TextReader reader) public static void Write(IDictionary properties, TextWriter writer) { - foreach(var (key, value) in properties) + foreach(KeyValuePair pair in properties) { - // print the key and value - // Debug.LogError("key: " + key + ", value: " + value); - writer.Write(key + "=" + value + "\n"); + writer.Write(pair.Key + "=" + pair.Value + "\n"); } } @@ -198,7 +195,18 @@ private static string RemoveLeadingWhiteSpaces(string str) private static string RemoveLastChar(string str) { +#if UNITY_2021_2_OR_NEWER return str[..^1]; +#else + if (str.Length > 0) + { + return str.Substring(0, str.Length - 1); + } + else + { + return str; + } +#endif } private static KeyValuePair? ParseLine(string line) @@ -409,12 +417,12 @@ private static string ExtractValue(string line, int index) private static bool IsWhiteSpace(char c) { - return c is ' ' or '\t' or '\f'; + return c == ' ' || c == '\t' || c == '\f'; } private static bool IsSeparator(char c) { - return c is '=' or ':'; + return c == '=' || c == ':'; } /// @@ -428,19 +436,19 @@ private static bool IsSeparator(char c) private static int? HexToInt(char c) { // 0-9 - if (c is >= '0' and <= '9') + if (c >= '0' && c <= '9') { return c - '0'; } // A-F - if (c is >= 'A' and <= 'F') + if (c >= 'A' && c <= 'F') { return c - 'A' + 10; } // a-f - if (c is >= 'a' and <= 'f') + if (c >= 'a' && c <= 'f') { return c - 'a' + 10; } diff --git a/Assets/Tapsell/Mediation/MediatorAndroidCaller.cs b/Assets/Tapsell/Mediation/MediatorAndroidCaller.cs index 2bfe066..b2c6f27 100644 --- a/Assets/Tapsell/Mediation/MediatorAndroidCaller.cs +++ b/Assets/Tapsell/Mediation/MediatorAndroidCaller.cs @@ -6,7 +6,7 @@ namespace Tapsell.Mediation { internal static class MediatorAndroidCaller { - private static readonly AndroidJavaClass AndroidClass = new("ir.tapsell.mediation.Tapsell"); + private static readonly AndroidJavaClass AndroidClass = new AndroidJavaClass("ir.tapsell.mediation.Tapsell"); internal static void Call(string methodName, params object[] args) { diff --git a/Assets/Tapsell/Mediation/Request/BannerSize.cs b/Assets/Tapsell/Mediation/Request/BannerSize.cs index cda032a..1900410 100644 --- a/Assets/Tapsell/Mediation/Request/BannerSize.cs +++ b/Assets/Tapsell/Mediation/Request/BannerSize.cs @@ -1,12 +1,14 @@ namespace Tapsell.Mediation.Request { public enum BannerSize { + Banner30050, Banner32050, Banner320100, Banner250250, Banner300250, Banner46860, Banner72890, - Banner160600 + Banner160600, + BannerAdaptive } } \ No newline at end of file diff --git a/Assets/Tapsell/Mediation/Request/RequestCourier.cs b/Assets/Tapsell/Mediation/Request/RequestCourier.cs index db1e520..f9c4787 100644 --- a/Assets/Tapsell/Mediation/Request/RequestCourier.cs +++ b/Assets/Tapsell/Mediation/Request/RequestCourier.cs @@ -6,7 +6,7 @@ namespace Tapsell.Mediation.Request internal class RequestCourier { private static RequestCourier _instance; - private readonly Dictionary _listeners = new(); + private readonly Dictionary _listeners = new Dictionary(); private static class NativeRequestAPIs { diff --git a/Assets/Tapsell/Mediation/Show/Native/NativeAdViewHolder.cs b/Assets/Tapsell/Mediation/Show/Native/NativeAdViewHolder.cs index e98d7de..769e562 100644 --- a/Assets/Tapsell/Mediation/Show/Native/NativeAdViewHolder.cs +++ b/Assets/Tapsell/Mediation/Show/Native/NativeAdViewHolder.cs @@ -9,7 +9,7 @@ internal class NativeAdViewHolder { private static NativeAdViewHolder _instance; - private readonly Dictionary _adViews = new(); + private readonly Dictionary _adViews = new Dictionary(); private NativeAdViewHolder() {} diff --git a/Assets/Tapsell/Mediation/Show/ShowCourier.cs b/Assets/Tapsell/Mediation/Show/ShowCourier.cs index 115ca0f..b28981b 100644 --- a/Assets/Tapsell/Mediation/Show/ShowCourier.cs +++ b/Assets/Tapsell/Mediation/Show/ShowCourier.cs @@ -7,7 +7,7 @@ namespace Tapsell.Mediation.Show internal class ShowCourier { private static ShowCourier _instance; - private readonly Dictionary _listeners = new(); + private readonly Dictionary _listeners = new Dictionary(); private static class NativeShowAPIs { diff --git a/Packages/manifest.json b/Packages/manifest.json index 0fc0d7a..c10274a 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -4,6 +4,7 @@ "com.unity.feature.2d": "2.0.0", "com.unity.ide.rider": "3.0.24", "com.unity.ide.visualstudio": "2.0.18", + "com.unity.mobile.android-logcat": "1.3.2", "com.unity.test-framework": "1.3.7", "com.unity.textmeshpro": "3.0.6", "com.unity.timeline": "1.8.2", diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json index 54a53cb..3389c7e 100644 --- a/Packages/packages-lock.json +++ b/Packages/packages-lock.json @@ -166,6 +166,13 @@ "dependencies": {}, "url": "https://packages.unity.com" }, + "com.unity.mobile.android-logcat": { + "version": "1.3.2", + "depth": 0, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, "com.unity.test-framework": { "version": "1.3.7", "depth": 0, diff --git a/ProjectSettings/AndroidResolverDependencies.xml b/ProjectSettings/AndroidResolverDependencies.xml index cdfa0e0..966bd11 100644 --- a/ProjectSettings/AndroidResolverDependencies.xml +++ b/ProjectSettings/AndroidResolverDependencies.xml @@ -1,7 +1,13 @@ - ir.tapsell.mediation.adapter:legacy-unity:1.0.1-beta04 - ir.tapsell.mediation:tapsell-unity:1.0.1-beta04 + com.google.code.gson:gson:2.8.5 + ir.tapsell.mediation.adapter:admob-unity:1.0.1-beta07 + ir.tapsell.mediation.adapter:applovin-unity:1.0.1-beta07 + ir.tapsell.mediation.adapter:fyber-unity:1.0.1-beta07 + ir.tapsell.mediation.adapter:ironsource-unity:1.0.1-beta07 + ir.tapsell.mediation.adapter:legacy-unity:1.0.1-beta07 + ir.tapsell.mediation.adapter:mintegral-unity:1.0.1-beta07 + ir.tapsell.mediation:tapsell-unity:1.0.1-beta07