From 79f989f4ed4c39d898ac276d05927e4e97474c7e Mon Sep 17 00:00:00 2001 From: tech Date: Mon, 2 Mar 2026 17:27:36 +0800 Subject: [PATCH] [U] appsFlyer 6.17.1 --- sdk-intergration/Assets/AppsFlyer.meta | 2 +- .../Assets/AppsFlyer/AFAdRevenueData.cs | 71 ++ ..._Suite.cs.meta => AFAdRevenueData.cs.meta} | 2 +- .../Assets/AppsFlyer/AFAdRevenueEvent.cs | 34 - .../Assets/AppsFlyer/AFInAppEvents.cs | 1 - .../Assets/AppsFlyer/AFMiniJSON.cs | 0 .../AppsFlyer/AFPurchaseDetailsAndroid.cs | 9 +- .../AppsFlyer/AFSDKPurchaseDetailsIOS.cs | 23 +- .../Assets/AppsFlyer/AppsFlyer.cs | 24 +- .../Assets/AppsFlyer/AppsFlyerAdRevenue.cs | 178 ---- .../Assets/AppsFlyer/AppsFlyerAndroid.cs | 86 +- .../Assets/AppsFlyer/AppsFlyerConsent.cs | 54 +- .../AppsFlyer/AppsFlyerPurchaseConnector.cs | 426 +++++++++ ...eta => AppsFlyerPurchaseConnector.cs.meta} | 2 +- .../Assets/AppsFlyer/AppsFlyeriOS.cs | 36 +- .../Editor/AppsFlyerAdRevenueDependencies.xml | 13 - .../AppsFlyerAdRevenueDependencies.xml.meta | 7 - .../Editor/AppsFlyerDependencies.xml | 14 +- .../AppsFlyer/IAppsFlyerAndroidBridge.cs | 2 +- .../Assets/AppsFlyer/IAppsFlyerIOSBridge.cs | 2 +- .../AppsFlyer/IAppsFlyerNativeBridge.cs | 2 + .../AppsFlyer/IAppsFlyerPurchaseValidation.cs | 8 + ...a => IAppsFlyerPurchaseValidation.cs.meta} | 2 +- .../Mac/AppsFlyerBundle.bundle/Contents.meta | 8 - .../Contents/Info.plist.meta | 7 - .../Contents/MacOS.meta | 8 - .../Contents/MacOS/AppsFlyerBundle | Bin .../Contents/MacOS/AppsFlyerBundle.meta | 7 - .../Contents/_CodeSignature.meta | 8 - .../_CodeSignature/CodeResources.meta | 7 - .../Plugins/iOS/AFUnityStoreKit2Bridge.swift | 79 ++ .../iOS/AFUnityStoreKit2Bridge.swift.meta | 2 + .../AppsFlyer/Plugins/iOS/AFUnityUtils.h | 2 + .../AppsFlyer/Plugins/iOS/AFUnityUtils.mm | 66 ++ .../Plugins/iOS/AppsFlyer+AppController.m | 32 + .../Plugins/iOS/AppsFlyerAdRevenueWrapper.h | 16 - .../iOS/AppsFlyerAdRevenueWrapper.h.meta | 27 - .../Plugins/iOS/AppsFlyerAdRevenueWrapper.mm | 51 -- .../iOS/AppsFlyerAdRevenueWrapper.mm.meta | 37 - .../Plugins/iOS/AppsFlyerAppController.mm | 5 + .../Plugins/iOS/AppsFlyeriOSWrapper.h | 23 +- .../Plugins/iOS/AppsFlyeriOSWrapper.mm | 286 ++++++- .../AppsFlyer/Plugins/iOS/SwiftForUnity.swift | 1 - .../Plugins/iOS/SwiftForUnity.swift.meta | 37 - .../Assets/AppsFlyer/ProductPurchase.cs | 184 ++++ .../Assets/AppsFlyer/ProductPurchase.cs.meta | 11 + sdk-intergration/Assets/AppsFlyer/Tests.meta | 8 - .../Assets/AppsFlyer/Tests/Castle.Core.dll | Bin 442368 -> 0 bytes .../AppsFlyer/Tests/Castle.Core.dll.meta | 33 - .../Assets/AppsFlyer/Tests/NSubstitute.dll | Bin 152064 -> 0 bytes .../AppsFlyer/Tests/NSubstitute.dll.meta | 33 - ...System.Runtime.CompilerServices.Unsafe.dll | Bin 18024 -> 0 bytes ...m.Runtime.CompilerServices.Unsafe.dll.meta | 33 - .../System.Threading.Tasks.Extensions.dll | Bin 25984 -> 0 bytes ...System.Threading.Tasks.Extensions.dll.meta | 33 - .../Assets/AppsFlyer/Tests/Tests.asmdef | 24 - .../Assets/AppsFlyer/Tests/Tests.asmdef.meta | 7 - .../Assets/AppsFlyer/Tests/Tests_Suite.cs | 810 ------------------ .../Assets/AppsFlyer/package.json | 2 +- .../Plugins/Android/mainTemplate.gradle | 9 +- .../Assets/Scripts/AFDeepLinkHelper.cs | 2 +- sdk-intergration/Assets/Scripts/SDKTest.cs | 2 +- .../AndroidResolverDependencies.xml | 7 +- 63 files changed, 1381 insertions(+), 1524 deletions(-) create mode 100644 sdk-intergration/Assets/AppsFlyer/AFAdRevenueData.cs rename sdk-intergration/Assets/AppsFlyer/{Tests/Tests_Suite.cs.meta => AFAdRevenueData.cs.meta} (83%) delete mode 100644 sdk-intergration/Assets/AppsFlyer/AFAdRevenueEvent.cs mode change 100644 => 100755 sdk-intergration/Assets/AppsFlyer/AFMiniJSON.cs delete mode 100644 sdk-intergration/Assets/AppsFlyer/AppsFlyerAdRevenue.cs create mode 100644 sdk-intergration/Assets/AppsFlyer/AppsFlyerPurchaseConnector.cs rename sdk-intergration/Assets/AppsFlyer/{AFAdRevenueEvent.cs.meta => AppsFlyerPurchaseConnector.cs.meta} (83%) delete mode 100644 sdk-intergration/Assets/AppsFlyer/Editor/AppsFlyerAdRevenueDependencies.xml delete mode 100644 sdk-intergration/Assets/AppsFlyer/Editor/AppsFlyerAdRevenueDependencies.xml.meta create mode 100644 sdk-intergration/Assets/AppsFlyer/IAppsFlyerPurchaseValidation.cs rename sdk-intergration/Assets/AppsFlyer/{AppsFlyerAdRevenue.cs.meta => IAppsFlyerPurchaseValidation.cs.meta} (83%) delete mode 100644 sdk-intergration/Assets/AppsFlyer/Mac/AppsFlyerBundle.bundle/Contents.meta delete mode 100644 sdk-intergration/Assets/AppsFlyer/Mac/AppsFlyerBundle.bundle/Contents/Info.plist.meta delete mode 100644 sdk-intergration/Assets/AppsFlyer/Mac/AppsFlyerBundle.bundle/Contents/MacOS.meta mode change 100644 => 100755 sdk-intergration/Assets/AppsFlyer/Mac/AppsFlyerBundle.bundle/Contents/MacOS/AppsFlyerBundle delete mode 100644 sdk-intergration/Assets/AppsFlyer/Mac/AppsFlyerBundle.bundle/Contents/MacOS/AppsFlyerBundle.meta delete mode 100644 sdk-intergration/Assets/AppsFlyer/Mac/AppsFlyerBundle.bundle/Contents/_CodeSignature.meta delete mode 100644 sdk-intergration/Assets/AppsFlyer/Mac/AppsFlyerBundle.bundle/Contents/_CodeSignature/CodeResources.meta create mode 100644 sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AFUnityStoreKit2Bridge.swift create mode 100644 sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AFUnityStoreKit2Bridge.swift.meta delete mode 100644 sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AppsFlyerAdRevenueWrapper.h delete mode 100644 sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AppsFlyerAdRevenueWrapper.h.meta delete mode 100644 sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AppsFlyerAdRevenueWrapper.mm delete mode 100644 sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AppsFlyerAdRevenueWrapper.mm.meta delete mode 100644 sdk-intergration/Assets/AppsFlyer/Plugins/iOS/SwiftForUnity.swift delete mode 100644 sdk-intergration/Assets/AppsFlyer/Plugins/iOS/SwiftForUnity.swift.meta create mode 100644 sdk-intergration/Assets/AppsFlyer/ProductPurchase.cs create mode 100644 sdk-intergration/Assets/AppsFlyer/ProductPurchase.cs.meta delete mode 100644 sdk-intergration/Assets/AppsFlyer/Tests.meta delete mode 100644 sdk-intergration/Assets/AppsFlyer/Tests/Castle.Core.dll delete mode 100644 sdk-intergration/Assets/AppsFlyer/Tests/Castle.Core.dll.meta delete mode 100644 sdk-intergration/Assets/AppsFlyer/Tests/NSubstitute.dll delete mode 100644 sdk-intergration/Assets/AppsFlyer/Tests/NSubstitute.dll.meta delete mode 100644 sdk-intergration/Assets/AppsFlyer/Tests/System.Runtime.CompilerServices.Unsafe.dll delete mode 100644 sdk-intergration/Assets/AppsFlyer/Tests/System.Runtime.CompilerServices.Unsafe.dll.meta delete mode 100644 sdk-intergration/Assets/AppsFlyer/Tests/System.Threading.Tasks.Extensions.dll delete mode 100644 sdk-intergration/Assets/AppsFlyer/Tests/System.Threading.Tasks.Extensions.dll.meta delete mode 100644 sdk-intergration/Assets/AppsFlyer/Tests/Tests.asmdef delete mode 100644 sdk-intergration/Assets/AppsFlyer/Tests/Tests.asmdef.meta delete mode 100644 sdk-intergration/Assets/AppsFlyer/Tests/Tests_Suite.cs diff --git a/sdk-intergration/Assets/AppsFlyer.meta b/sdk-intergration/Assets/AppsFlyer.meta index 00aa988..2a71bd2 100644 --- a/sdk-intergration/Assets/AppsFlyer.meta +++ b/sdk-intergration/Assets/AppsFlyer.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: da76ae4f9ba92124087139583d0dd929 +guid: 7863556d88b814e09ba9cfc75a91d655 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/sdk-intergration/Assets/AppsFlyer/AFAdRevenueData.cs b/sdk-intergration/Assets/AppsFlyer/AFAdRevenueData.cs new file mode 100644 index 0000000..64d53de --- /dev/null +++ b/sdk-intergration/Assets/AppsFlyer/AFAdRevenueData.cs @@ -0,0 +1,71 @@ +using System; +using System.Collections.Generic; + +namespace AppsFlyerSDK +{ + public enum MediationNetwork : ulong + { + GoogleAdMob = 1, + IronSource = 2, + ApplovinMax = 3, + Fyber = 4, + Appodeal = 5, + Admost = 6, + Topon = 7, + Tradplus = 8, + Yandex = 9, + ChartBoost = 10, + Unity = 11, + ToponPte = 12, + Custom = 13, + DirectMonetization = 14 + } + + public static class AdRevenueScheme + { + /** + * code ISO 3166-1 format + */ + public const string COUNTRY = "country"; + + /** + * ID of the ad unit for the impression + */ + public const string AD_UNIT = "ad_unit"; + + /** + * Format of the ad + */ + public const string AD_TYPE = "ad_type"; + + /** + * ID of the ad placement for the impression + */ + public const string PLACEMENT = "placement"; + } + + /// + // Data class representing ad revenue information. + // + // @property monetizationNetwork The name of the network that monetized the ad. + // @property mediationNetwork An instance of MediationNetwork representing the mediation service used. + // @property currencyIso4217Code The ISO 4217 currency code describing the currency of the revenue. + // @property eventRevenue The amount of revenue generated by the ad. + /// + public class AFAdRevenueData + { + public string monetizationNetwork { get; private set; } + public MediationNetwork mediationNetwork { get; private set; } + public string currencyIso4217Code { get; private set; } + public double eventRevenue { get; private set; } + + public AFAdRevenueData(string monetization, MediationNetwork mediation, string currency, double revenue) + { + monetizationNetwork = monetization; + mediationNetwork = mediation; + currencyIso4217Code = currency; + eventRevenue = revenue; + } + } + +} \ No newline at end of file diff --git a/sdk-intergration/Assets/AppsFlyer/Tests/Tests_Suite.cs.meta b/sdk-intergration/Assets/AppsFlyer/AFAdRevenueData.cs.meta similarity index 83% rename from sdk-intergration/Assets/AppsFlyer/Tests/Tests_Suite.cs.meta rename to sdk-intergration/Assets/AppsFlyer/AFAdRevenueData.cs.meta index c20a62c..3106aae 100644 --- a/sdk-intergration/Assets/AppsFlyer/Tests/Tests_Suite.cs.meta +++ b/sdk-intergration/Assets/AppsFlyer/AFAdRevenueData.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 1b1a24aa01166451d804d7c03c14a3db +guid: 49e1906ae949e4bfea400bd1da9f7e39 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/sdk-intergration/Assets/AppsFlyer/AFAdRevenueEvent.cs b/sdk-intergration/Assets/AppsFlyer/AFAdRevenueEvent.cs deleted file mode 100644 index 6ed2afb..0000000 --- a/sdk-intergration/Assets/AppsFlyer/AFAdRevenueEvent.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System.Collections; -using UnityEngine; - -public class AFAdRevenueEvent { - - /** - *Pre-defined keys for non-mandatory dictionary - *Code ISO 3166-1 format - **/ - public const string COUNTRY = "country"; - - /** - *ID of the ad unit for the impression - **/ - public const string AD_UNIT = "ad_unit"; - - /** - *Format of the ad - **/ - public const string AD_TYPE = "ad_type"; - - /** - *ID of the ad placement for the impression - **/ - public const string PLACEMENT = "placement"; - - /** - *Provided by Facebook Audience Network only, and will be reported to publishers - *approved by Facebook Audience Network within the closed beta - **/ - public const string ECPM_PAYLOAD = "ecpm_payload"; - - -} diff --git a/sdk-intergration/Assets/AppsFlyer/AFInAppEvents.cs b/sdk-intergration/Assets/AppsFlyer/AFInAppEvents.cs index daa7602..1f6d1fe 100644 --- a/sdk-intergration/Assets/AppsFlyer/AFInAppEvents.cs +++ b/sdk-intergration/Assets/AppsFlyer/AFInAppEvents.cs @@ -28,7 +28,6 @@ public class AFInAppEvents { public const string LOCATION_CHANGED = "af_location_changed"; public const string LOCATION_COORDINATES = "af_location_coordinates"; public const string ORDER_ID = "af_order_id"; - public const string GA = "af_ga_event"; /** * Event Parameter Name * **/ diff --git a/sdk-intergration/Assets/AppsFlyer/AFMiniJSON.cs b/sdk-intergration/Assets/AppsFlyer/AFMiniJSON.cs old mode 100644 new mode 100755 diff --git a/sdk-intergration/Assets/AppsFlyer/AFPurchaseDetailsAndroid.cs b/sdk-intergration/Assets/AppsFlyer/AFPurchaseDetailsAndroid.cs index 6762c97..d149885 100644 --- a/sdk-intergration/Assets/AppsFlyer/AFPurchaseDetailsAndroid.cs +++ b/sdk-intergration/Assets/AppsFlyer/AFPurchaseDetailsAndroid.cs @@ -10,24 +10,19 @@ namespace AppsFlyerSDK } /// - // + /// Purchase details class matching Android SDK AFPurchaseDetails /// public class AFPurchaseDetailsAndroid - { public AFPurchaseType purchaseType { get; private set; } public string purchaseToken { get; private set; } public string productId { get; private set; } - public string price { get; private set; } - public string currency { get; private set; } - public AFPurchaseDetailsAndroid(AFPurchaseType type, String purchaseToken, String productId, String price, String currency) + public AFPurchaseDetailsAndroid(AFPurchaseType type, String purchaseToken, String productId) { this.purchaseType = type; this.purchaseToken = purchaseToken; this.productId = productId; - this.price = price; - this.currency = currency; } } diff --git a/sdk-intergration/Assets/AppsFlyer/AFSDKPurchaseDetailsIOS.cs b/sdk-intergration/Assets/AppsFlyer/AFSDKPurchaseDetailsIOS.cs index f159eea..0dcde3a 100644 --- a/sdk-intergration/Assets/AppsFlyer/AFSDKPurchaseDetailsIOS.cs +++ b/sdk-intergration/Assets/AppsFlyer/AFSDKPurchaseDetailsIOS.cs @@ -4,26 +4,33 @@ using System.Collections.Generic; namespace AppsFlyerSDK { /// - // + /// Purchase type enum matching iOS SDK AFSDKPurchaseType + /// + public enum AFSDKPurchaseType + { + Subscription, + OneTimePurchase + } + + /// + /// Purchase details class matching iOS SDK AFSDKPurchaseDetails /// public class AFSDKPurchaseDetailsIOS { public string productId { get; private set; } - public string price { get; private set; } - public string currency { get; private set; } public string transactionId { get; private set; } + public AFSDKPurchaseType purchaseType { get; private set; } - private AFSDKPurchaseDetailsIOS(string productId, string price, string currency, string transactionId) + private AFSDKPurchaseDetailsIOS(string productId, string transactionId, AFSDKPurchaseType purchaseType) { this.productId = productId; - this.price = price; - this.currency = currency; this.transactionId = transactionId; + this.purchaseType = purchaseType; } - public static AFSDKPurchaseDetailsIOS Init(string productId, string price, string currency, string transactionId) + public static AFSDKPurchaseDetailsIOS Init(string productId, string transactionId, AFSDKPurchaseType purchaseType) { - return new AFSDKPurchaseDetailsIOS(productId, price, currency, transactionId); + return new AFSDKPurchaseDetailsIOS(productId, transactionId, purchaseType); } } diff --git a/sdk-intergration/Assets/AppsFlyer/AppsFlyer.cs b/sdk-intergration/Assets/AppsFlyer/AppsFlyer.cs index 670932a..f2f3678 100644 --- a/sdk-intergration/Assets/AppsFlyer/AppsFlyer.cs +++ b/sdk-intergration/Assets/AppsFlyer/AppsFlyer.cs @@ -6,8 +6,7 @@ namespace AppsFlyerSDK { public class AppsFlyer : MonoBehaviour { - - public static readonly string kAppsFlyerPluginVersion = "6.14.3"; + public static readonly string kAppsFlyerPluginVersion = "6.17.7"; public static string CallBackObjectName = null; private static EventHandler onRequestResponse; private static EventHandler onInAppResponse; @@ -333,6 +332,19 @@ namespace AppsFlyerSDK } } + /// + /// Logs ad revenue data along with additional parameters if provided. + /// + /// instance of AFAdRevenueData containing ad revenue information. + /// An optional map of additional parameters to be logged with ad revenue data. This can be null if there are no additional parameters. + public static void logAdRevenue(AFAdRevenueData adRevenueData, Dictionary additionalParameters) + { + if (instance != null) + { + instance.logAdRevenue(adRevenueData, additionalParameters); + } + } + /// /// Manually record the location of the user. /// @@ -766,12 +778,12 @@ namespace AppsFlyerSDK } // V2 - public static void validateAndSendInAppPurchase(AFSDKPurchaseDetailsIOS details, Dictionary extraEventValues, MonoBehaviour gameObject) + public static void validateAndSendInAppPurchase(AFSDKPurchaseDetailsIOS details, Dictionary purchaseAdditionalDetails, MonoBehaviour gameObject) { if (instance != null && instance is IAppsFlyerIOSBridge) { IAppsFlyerIOSBridge appsFlyeriOSInstance = (IAppsFlyerIOSBridge)instance; - appsFlyeriOSInstance.validateAndSendInAppPurchase(details, extraEventValues, gameObject); + appsFlyeriOSInstance.validateAndSendInAppPurchase(details, purchaseAdditionalDetails, gameObject); } } @@ -785,12 +797,12 @@ namespace AppsFlyerSDK } // V2 - public static void validateAndSendInAppPurchase(AFPurchaseDetailsAndroid details, Dictionary additionalParameters, MonoBehaviour gameObject) + public static void validateAndSendInAppPurchase(AFPurchaseDetailsAndroid details, Dictionary purchaseAdditionalDetails, MonoBehaviour gameObject) { if (instance != null && instance is IAppsFlyerAndroidBridge) { IAppsFlyerAndroidBridge appsFlyerAndroidInstance = (IAppsFlyerAndroidBridge)instance; - appsFlyerAndroidInstance.validateAndSendInAppPurchase(details, additionalParameters, gameObject); + appsFlyerAndroidInstance.validateAndSendInAppPurchase(details, purchaseAdditionalDetails, gameObject); } } diff --git a/sdk-intergration/Assets/AppsFlyer/AppsFlyerAdRevenue.cs b/sdk-intergration/Assets/AppsFlyer/AppsFlyerAdRevenue.cs deleted file mode 100644 index 1c9baf1..0000000 --- a/sdk-intergration/Assets/AppsFlyer/AppsFlyerAdRevenue.cs +++ /dev/null @@ -1,178 +0,0 @@ -using System.Collections.Generic; -using UnityEngine; -using System.Runtime.InteropServices; -using System; - -namespace AppsFlyerSDK -{ - public class AppsFlyerAdRevenue : MonoBehaviour - { - - public static readonly string kAppsFlyerAdRevenueVersion = "6.14.3"; - -#if UNITY_ANDROID && !UNITY_EDITOR - private static AndroidJavaClass appsFlyerAndroid = new AndroidJavaClass("com.appsflyer.unity.afunityadrevenuegenericplugin.AdRevenueUnityWrapper"); -#endif - - public static void start() - { -#if UNITY_IOS && !UNITY_EDITOR - - _start(); - -#elif UNITY_ANDROID && !UNITY_EDITOR - - using(AndroidJavaClass cls_UnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) { - - using(AndroidJavaObject cls_Activity = cls_UnityPlayer.GetStatic("currentActivity")) { - - AndroidJavaObject cls_Application = cls_Activity.Call("getApplication"); - - appsFlyerAndroid.CallStatic("start", cls_Application); - } - } - -#else - -#endif - } - - - public static void setIsDebug(bool isDebug) - { -#if UNITY_IOS && !UNITY_EDITOR - _setIsDebugAdrevenue(isDebug); -#elif UNITY_ANDROID && !UNITY_EDITOR - -#else - -#endif - } - - public static void logAdRevenue(string monetizationNetwork, - AppsFlyerAdRevenueMediationNetworkType mediationNetwork, - double eventRevenue, - string revenueCurrency, - Dictionary additionalParameters) - { -#if UNITY_IOS && !UNITY_EDITOR - - _logAdRevenue(monetizationNetwork, mediationNetwork, eventRevenue, revenueCurrency, AFMiniJSON.Json.Serialize(additionalParameters)); - -#elif UNITY_ANDROID && !UNITY_EDITOR - - int mediationNetworkAndroid = setMediationNetworkTypeAndroid(mediationNetwork); - if (mediationNetworkAndroid == -1) - { - Debug.Log("Please choose a valid mediationNetwork"); - } else - { - appsFlyerAndroid.CallStatic("logAdRevenue", - monetizationNetwork, - mediationNetworkAndroid, - revenueCurrency, - eventRevenue, - convertDictionaryToJavaMap(additionalParameters)); - - } -#else - -#endif - } - -#if UNITY_IOS && !UNITY_EDITOR - - [DllImport("__Internal")] - private static extern void _start(); - - [DllImport("__Internal")] - private static extern void _setIsDebugAdrevenue(bool isDebug); - - [DllImport("__Internal")] - private static extern void _logAdRevenue(string monetizationNetwork, - AppsFlyerAdRevenueMediationNetworkType mediationNetwork, - double eventRevenue, - string revenueCurrency, - string additionalParameters); - -#elif UNITY_ANDROID && !UNITY_EDITOR - -#else - -#endif - private static int setMediationNetworkTypeAndroid(AppsFlyerAdRevenueMediationNetworkType mediationNetwork) - { - switch (mediationNetwork) - { - case AppsFlyerAdRevenueMediationNetworkType.AppsFlyerAdRevenueMediationNetworkTypeIronSource: - return 0; - case AppsFlyerAdRevenueMediationNetworkType.AppsFlyerAdRevenueMediationNetworkTypeApplovinMax: - return 1; - case AppsFlyerAdRevenueMediationNetworkType.AppsFlyerAdRevenueMediationNetworkTypeGoogleAdMob: - return 2; - case AppsFlyerAdRevenueMediationNetworkType.AppsFlyerAdRevenueMediationNetworkTypeFyber: - return 3; - case AppsFlyerAdRevenueMediationNetworkType.AppsFlyerAdRevenueMediationNetworkTypeAppodeal: - return 4; - case AppsFlyerAdRevenueMediationNetworkType.AppsFlyerAdRevenueMediationNetworkTypeAdmost: - return 5; - case AppsFlyerAdRevenueMediationNetworkType.AppsFlyerAdRevenueMediationNetworkTypeTopon: - return 6; - case AppsFlyerAdRevenueMediationNetworkType.AppsFlyerAdRevenueMediationNetworkTypeTradplus: - return 7; - case AppsFlyerAdRevenueMediationNetworkType.AppsFlyerAdRevenueMediationNetworkTypeYandex: - return 8; - case AppsFlyerAdRevenueMediationNetworkType.AppsFlyerAdRevenueMediationNetworkTypeChartBoost: - return 9; - case AppsFlyerAdRevenueMediationNetworkType.AppsFlyerAdRevenueMediationNetworkTypeUnity: - return 10; - case AppsFlyerAdRevenueMediationNetworkType.AppsFlyerAdRevenueMediationNetworkTypeCustomMediation: - return 11; - case AppsFlyerAdRevenueMediationNetworkType.AppsFlyerAdRevenueMediationNetworkTypedirectMonetization: - return 12; - default: - return -1; - } - - } - private static AndroidJavaObject convertDictionaryToJavaMap(Dictionary dictionary) - { - AndroidJavaObject map = new AndroidJavaObject("java.util.HashMap"); - IntPtr putMethod = AndroidJNIHelper.GetMethodID(map.GetRawClass(), "put", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"); - jvalue[] val; - if (dictionary != null) - { - foreach (var entry in dictionary) - { - val = AndroidJNIHelper.CreateJNIArgArray(new object[] { entry.Key, entry.Value }); - AndroidJNI.CallObjectMethod(map.GetRawObject(), putMethod, val); - AndroidJNI.DeleteLocalRef(val[0].l); - AndroidJNI.DeleteLocalRef(val[1].l); - } - } - - return map; - } - } - - - public enum AppsFlyerAdRevenueMediationNetworkType - { - AppsFlyerAdRevenueMediationNetworkTypeGoogleAdMob = 1, - AppsFlyerAdRevenueMediationNetworkTypeIronSource = 2, - AppsFlyerAdRevenueMediationNetworkTypeApplovinMax = 3, - AppsFlyerAdRevenueMediationNetworkTypeFyber = 4, - AppsFlyerAdRevenueMediationNetworkTypeAppodeal = 5, - AppsFlyerAdRevenueMediationNetworkTypeAdmost = 6, - AppsFlyerAdRevenueMediationNetworkTypeTopon = 7, - AppsFlyerAdRevenueMediationNetworkTypeTradplus = 8, - AppsFlyerAdRevenueMediationNetworkTypeYandex = 9, - AppsFlyerAdRevenueMediationNetworkTypeChartBoost = 10, - AppsFlyerAdRevenueMediationNetworkTypeUnity = 11, - AppsFlyerAdRevenueMediationNetworkTypeCustomMediation = 12, - AppsFlyerAdRevenueMediationNetworkTypedirectMonetization = 13 - } - - - -} \ No newline at end of file diff --git a/sdk-intergration/Assets/AppsFlyer/AppsFlyerAndroid.cs b/sdk-intergration/Assets/AppsFlyer/AppsFlyerAndroid.cs index 0e085f6..695b4a2 100644 --- a/sdk-intergration/Assets/AppsFlyer/AppsFlyerAndroid.cs +++ b/sdk-intergration/Assets/AppsFlyer/AppsFlyerAndroid.cs @@ -398,7 +398,23 @@ namespace AppsFlyerSDK public void setConsentData(AppsFlyerConsent appsFlyerConsent) { #if !UNITY_EDITOR - appsFlyerAndroid.CallStatic("setConsentData", appsFlyerConsent.isUserSubjectToGDPR, appsFlyerConsent.hasConsentForDataUsage, appsFlyerConsent.hasConsentForAdsPersonalization); + string isUserSubjectToGDPR = appsFlyerConsent.isUserSubjectToGDPR?.ToString().ToLower() ?? "null"; + string hasConsentForDataUsage = appsFlyerConsent.hasConsentForDataUsage?.ToString().ToLower() ?? "null"; + string hasConsentForAdsPersonalization = appsFlyerConsent.hasConsentForAdsPersonalization?.ToString().ToLower() ?? "null"; + string hasConsentForAdStorage = appsFlyerConsent.hasConsentForAdStorage?.ToString().ToLower() ?? "null"; + + appsFlyerAndroid.CallStatic("setConsentData", isUserSubjectToGDPR, hasConsentForDataUsage, hasConsentForAdsPersonalization, hasConsentForAdStorage); +#endif + } + + /// + /// Logs ad revenue data along with additional parameters if provided. + /// instance of AFAdRevenueData containing ad revenue information. + /// An optional map of additional parameters to be logged with ad revenue data. This can be null if there are no additional parameters. + public void logAdRevenue(AFAdRevenueData adRevenueData, Dictionary additionalParameters) + { +#if !UNITY_EDITOR + appsFlyerAndroid.CallStatic("logAdRevenue", adRevenueData.monetizationNetwork, getMediationNetwork(adRevenueData.mediationNetwork), adRevenueData.currencyIso4217Code, adRevenueData.eventRevenue, convertDictionaryToJavaMap(additionalParameters)); #endif } @@ -489,11 +505,11 @@ namespace AppsFlyerSDK /// An af_purchase event with the relevant values will be automatically sent if the validation is successful. /// /// AFPurchaseDetailsAndroid instance. - /// additionalParameters Freehand parameters to be sent with the purchase (if validated). - public void validateAndSendInAppPurchase(AFPurchaseDetailsAndroid details, Dictionary additionalParameters, MonoBehaviour gameObject) + /// purchaseAdditionalDetails Freehand parameters to be sent with the purchase (if validated). + public void validateAndSendInAppPurchase(AFPurchaseDetailsAndroid details, Dictionary purchaseAdditionalDetails, MonoBehaviour gameObject) { #if !UNITY_EDITOR - appsFlyerAndroid.CallStatic("validateAndTrackInAppPurchaseV2", (int)details.purchaseType, details.purchaseToken, details.productId, details.price, details.currency, convertDictionaryToJavaMap(additionalParameters), gameObject ? gameObject.name : null); + appsFlyerAndroid.CallStatic("validateAndTrackInAppPurchaseV2", (int)details.purchaseType, details.purchaseToken, details.productId, convertDictionaryToJavaMap(purchaseAdditionalDetails), gameObject ? gameObject.name : null); #endif } @@ -749,6 +765,65 @@ namespace AppsFlyerSDK return emailsCryptType; } + /// + /// Internal Helper Method. + /// + private static AndroidJavaObject getMediationNetwork(MediationNetwork mediationNetwork) + { + AndroidJavaClass mediationNetworkEnumClass = new AndroidJavaClass("com.appsflyer.MediationNetwork"); + AndroidJavaObject mediationNetworkObject; + + switch (mediationNetwork) + { + case MediationNetwork.IronSource: + mediationNetworkObject = mediationNetworkEnumClass.GetStatic("IRONSOURCE"); + break; + case MediationNetwork.ApplovinMax: + mediationNetworkObject = mediationNetworkEnumClass.GetStatic("APPLOVIN_MAX"); + break; + case MediationNetwork.GoogleAdMob: + mediationNetworkObject = mediationNetworkEnumClass.GetStatic("GOOGLE_ADMOB"); + break; + case MediationNetwork.Fyber: + mediationNetworkObject = mediationNetworkEnumClass.GetStatic("FYBER"); + break; + case MediationNetwork.Appodeal: + mediationNetworkObject = mediationNetworkEnumClass.GetStatic("APPODEAL"); + break; + case MediationNetwork.Admost: + mediationNetworkObject = mediationNetworkEnumClass.GetStatic("ADMOST"); + break; + case MediationNetwork.Topon: + mediationNetworkObject = mediationNetworkEnumClass.GetStatic("TOPON"); + break; + case MediationNetwork.Tradplus: + mediationNetworkObject = mediationNetworkEnumClass.GetStatic("TRADPLUS"); + break; + case MediationNetwork.Yandex: + mediationNetworkObject = mediationNetworkEnumClass.GetStatic("YANDEX"); + break; + case MediationNetwork.ChartBoost: + mediationNetworkObject = mediationNetworkEnumClass.GetStatic("CHARTBOOST"); + break; + case MediationNetwork.Unity: + mediationNetworkObject = mediationNetworkEnumClass.GetStatic("UNITY"); + break; + case MediationNetwork.ToponPte: + mediationNetworkObject = mediationNetworkEnumClass.GetStatic("TOPON_PTE"); + break; + case MediationNetwork.Custom: + mediationNetworkObject = mediationNetworkEnumClass.GetStatic("CUSTOM_MEDIATION"); + break; + case MediationNetwork.DirectMonetization: + mediationNetworkObject = mediationNetworkEnumClass.GetStatic("DIRECT_MONETIZATION_NETWORK"); + break; + default: + mediationNetworkObject = mediationNetworkEnumClass.GetStatic("NONE"); + break; + } + return mediationNetworkObject; + } + /// /// Internal Helper Method. /// @@ -771,9 +846,6 @@ namespace AppsFlyerSDK return map; } } - #endif - - } \ No newline at end of file diff --git a/sdk-intergration/Assets/AppsFlyer/AppsFlyerConsent.cs b/sdk-intergration/Assets/AppsFlyer/AppsFlyerConsent.cs index 341e530..feb448d 100644 --- a/sdk-intergration/Assets/AppsFlyer/AppsFlyerConsent.cs +++ b/sdk-intergration/Assets/AppsFlyer/AppsFlyerConsent.cs @@ -10,26 +10,45 @@ namespace AppsFlyerSDK // This class should be used to notify and record the user's applicability // under GDPR, their general consent to data usage, and their consent to personalized // advertisements based on user data. - - // Note that the consent for data usage and ads personalization pair is only applicable when the user is - // subject to GDPR guidelines. Therefore, the following factory methods should be used accordingly: - // - Use [forGDPRUser] when the user is subject to GDPR. - // - Use [forNonGDPRUser] when the user is not subject to GDPR. - // @property isUserSubjectToGDPR Indicates whether GDPR regulations apply to the user (true if the user is - // a subject of GDPR). It also serves as a flag for compliance with relevant aspects of DMA regulations. - // @property hasConsentForDataUsage Indicates whether the user has consented to the use of their data for advertising - // purposes under both GDPR and DMA guidelines (true if the user has consented, nullable if not subject to GDPR). - // @property hasConsentForAdsPersonalization Indicates whether the user has consented to the use of their data for - // personalized advertising within the boundaries of GDPR and DMA rules (true if the user has consented to - // personalized ads, nullable if not subject to GDPR). + /// ## Properties: + /// - `isUserSubjectToGDPR` (optional) - Indicates whether GDPR regulations apply to the user. + /// This may also serve as a general compliance flag for other regional regulations. + /// - `hasConsentForDataUsage` (optional) - Indicates whether the user consents to the processing + /// of their data for advertising purposes. + /// - `hasConsentForAdsPersonalization` (optional) - Indicates whether the user consents to the + /// use of their data for personalized advertising. + /// - `hasConsentForAdStorage` (optional) - Indicates whether the user consents to ad-related storage access. + /// + /// **Usage Example:** + /// ```csharp + /// var consent = new AppsFlyerConsent( + /// isUserSubjectToGDPR: true, + /// hasConsentForDataUsage: true, + /// hasConsentForAdsPersonalization: false, + /// hasConsentForAdStorage: true + /// ); + /// **Deprecated APIs:** + /// - `ForGDPRUser(...)` and `ForNonGDPRUser(...)` should no longer be used. + /// - Use `new AppsFlyerConsent(...)` instead with relevant consent fields. + /// /// public class AppsFlyerConsent { - public bool isUserSubjectToGDPR { get; private set; } - public bool hasConsentForDataUsage { get; private set; } - public bool hasConsentForAdsPersonalization { get; private set; } + public bool? isUserSubjectToGDPR { get; private set; } + public bool? hasConsentForDataUsage { get; private set; } + public bool? hasConsentForAdsPersonalization { get; private set; } + public bool? hasConsentForAdStorage { get; private set; } + public AppsFlyerConsent( bool? isUserSubjectToGDPR = null, bool? hasConsentForDataUsage = null, bool? hasConsentForAdsPersonalization = null, bool? hasConsentForAdStorage = null) + { + this.isUserSubjectToGDPR = isUserSubjectToGDPR; + this.hasConsentForDataUsage = hasConsentForDataUsage; + this.hasConsentForAdsPersonalization = hasConsentForAdsPersonalization; + this.hasConsentForAdStorage = hasConsentForAdStorage; + } + + [Obsolete("Use the new constructor with optional booleans instead.")] private AppsFlyerConsent(bool isGDPR, bool hasForDataUsage, bool hasForAdsPersonalization) { isUserSubjectToGDPR = isGDPR; @@ -37,15 +56,16 @@ namespace AppsFlyerSDK hasConsentForAdsPersonalization = hasForAdsPersonalization; } + [Obsolete("Use new AppsFlyerConsent(...) instead.")] public static AppsFlyerConsent ForGDPRUser(bool hasConsentForDataUsage, bool hasConsentForAdsPersonalization) { return new AppsFlyerConsent(true, hasConsentForDataUsage, hasConsentForAdsPersonalization); } + [Obsolete("Use new AppsFlyerConsent(...) instead.")] public static AppsFlyerConsent ForNonGDPRUser() { - return new AppsFlyerConsent(false, false, false); + return new AppsFlyerConsent(false); } } - } \ No newline at end of file diff --git a/sdk-intergration/Assets/AppsFlyer/AppsFlyerPurchaseConnector.cs b/sdk-intergration/Assets/AppsFlyer/AppsFlyerPurchaseConnector.cs new file mode 100644 index 0000000..ee43009 --- /dev/null +++ b/sdk-intergration/Assets/AppsFlyer/AppsFlyerPurchaseConnector.cs @@ -0,0 +1,426 @@ +using System.Collections.Generic; +using System.Runtime.InteropServices; +using UnityEngine; +using System; + +namespace AppsFlyerSDK +{ + + public interface IAppsFlyerPurchaseRevenueDataSource + { + Dictionary PurchaseRevenueAdditionalParametersForProducts(HashSet products, HashSet transactions); + } + + public interface IAppsFlyerPurchaseRevenueDataSourceStoreKit2 + { + Dictionary PurchaseRevenueAdditionalParametersStoreKit2ForProducts(HashSet products, HashSet transactions); + } + + public class AppsFlyerPurchaseRevenueBridge : MonoBehaviour + { + #if UNITY_IOS && !UNITY_EDITOR +[DllImport("__Internal")] +private static extern void RegisterUnityPurchaseRevenueParamsCallback(Func callback); + +[DllImport("__Internal")] +private static extern void RegisterUnityPurchaseRevenueParamsCallbackSK2(Func callback); +#endif + + private static IAppsFlyerPurchaseRevenueDataSource _dataSource; + private static IAppsFlyerPurchaseRevenueDataSourceStoreKit2 _dataSourceSK2; + + public static void RegisterDataSource(IAppsFlyerPurchaseRevenueDataSource dataSource) + { + _dataSource = dataSource; + #if UNITY_IOS && !UNITY_EDITOR + RegisterUnityPurchaseRevenueParamsCallback(GetAdditionalParameters); + #elif UNITY_ANDROID && !UNITY_EDITOR + using (AndroidJavaClass jc = new AndroidJavaClass("com.appsflyer.unity.PurchaseRevenueBridge")) + { + jc.CallStatic("setUnityBridge", new UnityPurchaseRevenueBridgeProxy()); + } + #endif + } + + public static void RegisterDataSourceStoreKit2(IAppsFlyerPurchaseRevenueDataSourceStoreKit2 dataSource) + { + #if UNITY_IOS && !UNITY_EDITOR + _dataSourceSK2 = dataSource; + RegisterUnityPurchaseRevenueParamsCallbackSK2(GetAdditionalParametersSK2); + #endif + } + + public static Dictionary GetAdditionalParametersForAndroid(HashSet products, HashSet transactions) + { + return _dataSource?.PurchaseRevenueAdditionalParametersForProducts(products, transactions) + ?? new Dictionary(); + } + + #if UNITY_IOS && !UNITY_EDITOR + [AOT.MonoPInvokeCallback(typeof(Func))] + public static string GetAdditionalParameters(string productsJson, string transactionsJson) + { + try + { + HashSet products = new HashSet(); + HashSet transactions = new HashSet(); + + if (!string.IsNullOrEmpty(productsJson)) + { + var dict = AFMiniJSON.Json.Deserialize(productsJson) as Dictionary; + if (dict != null) + { + if (dict.TryGetValue("products", out var productsObj) && productsObj is List productList) + products = new HashSet(productList); + + if (dict.TryGetValue("transactions", out var transactionsObj) && transactionsObj is List transactionList) + transactions = new HashSet(transactionList); + } + } + + var parameters = _dataSource?.PurchaseRevenueAdditionalParametersForProducts(products, transactions) + ?? new Dictionary(); + return AFMiniJSON.Json.Serialize(parameters); + } + catch (Exception e) + { + Debug.LogError($"[AppsFlyer] Exception in GetAdditionalParameters: {e}"); + return "{}"; + } + } + #endif + + #if UNITY_IOS && !UNITY_EDITOR + [AOT.MonoPInvokeCallback(typeof(Func))] + public static string GetAdditionalParametersSK2(string productsJson, string transactionsJson) + { + try + { + HashSet products = new HashSet(); + HashSet transactions = new HashSet(); + + if (!string.IsNullOrEmpty(productsJson)) + { + var dict = AFMiniJSON.Json.Deserialize(productsJson) as Dictionary; + if (dict != null && dict.TryGetValue("products", out var productsObj) && productsObj is List productList) + products = new HashSet(productList); + } + if (!string.IsNullOrEmpty(transactionsJson)) + { + var dict = AFMiniJSON.Json.Deserialize(transactionsJson) as Dictionary; + if (dict != null && dict.TryGetValue("transactions", out var transactionsObj) && transactionsObj is List transactionList) + transactions = new HashSet(transactionList); + } + + var parameters = _dataSourceSK2?.PurchaseRevenueAdditionalParametersStoreKit2ForProducts(products, transactions) + ?? new Dictionary(); + return AFMiniJSON.Json.Serialize(parameters); + } + catch (Exception e) + { + Debug.LogError($"[AppsFlyer] Exception in GetAdditionalParametersSK2: {e}"); + return "{}"; + } + } + #endif + } + + public class UnityPurchaseRevenueBridgeProxy : AndroidJavaProxy + { + public UnityPurchaseRevenueBridgeProxy() : base("com.appsflyer.unity.PurchaseRevenueBridge$UnityPurchaseRevenueBridge") { } + + public string getAdditionalParameters(string productsJson, string transactionsJson) + { + try + { + // Create empty sets if JSON is null or empty + HashSet products = new HashSet(); + HashSet transactions = new HashSet(); + + // Only try to parse if we have valid JSON + if (!string.IsNullOrEmpty(productsJson)) + { + try + { + // First try to parse as a simple array + var parsedProducts = AFMiniJSON.Json.Deserialize(productsJson); + if (parsedProducts is List productList) + { + products = new HashSet(productList); + } + else if (parsedProducts is Dictionary dict) + { + if (dict.ContainsKey("events") && dict["events"] is List eventsList) + { + products = new HashSet(eventsList); + } + else + { + // If it's a dictionary but doesn't have events, add the whole dict + products.Add(dict); + } + } + } + catch (Exception e) + { + Debug.LogError($"Error parsing products JSON: {e.Message}\nJSON: {productsJson}"); + } + } + + if (!string.IsNullOrEmpty(transactionsJson)) + { + try + { + // First try to parse as a simple array + var parsedTransactions = AFMiniJSON.Json.Deserialize(transactionsJson); + if (parsedTransactions is List transactionList) + { + transactions = new HashSet(transactionList); + } + else if (parsedTransactions is Dictionary dict) + { + if (dict.ContainsKey("events") && dict["events"] is List eventsList) + { + transactions = new HashSet(eventsList); + } + else + { + // If it's a dictionary but doesn't have events, add the whole dict + transactions.Add(dict); + } + } + } + catch (Exception e) + { + Debug.LogError($"Error parsing transactions JSON: {e.Message}\nJSON: {transactionsJson}"); + } + } + + var parameters = AppsFlyerPurchaseRevenueBridge.GetAdditionalParametersForAndroid(products, transactions); + return AFMiniJSON.Json.Serialize(parameters); + } + catch (Exception e) + { + Debug.LogError($"Error in getAdditionalParameters: {e.Message}\nProducts JSON: {productsJson}\nTransactions JSON: {transactionsJson}"); + return "{}"; + } + } + } + + + public class AppsFlyerPurchaseConnector : MonoBehaviour { + + private static AppsFlyerPurchaseConnector instance; + private Dictionary pendingParameters; + private Action> pendingCallback; + + public static AppsFlyerPurchaseConnector Instance + { + get + { + if (instance == null) + { + GameObject go = new GameObject("AppsFlyerPurchaseConnector"); + instance = go.AddComponent(); + DontDestroyOnLoad(go); + } + return instance; + } + } + + private void Awake() + { + if (instance == null) + { + instance = this; + DontDestroyOnLoad(gameObject); + } + else + { + Destroy(gameObject); + } + } + +#if UNITY_ANDROID && !UNITY_EDITOR + private static AndroidJavaClass appsFlyerAndroidConnector = new AndroidJavaClass("com.appsflyer.unity.AppsFlyerAndroidWrapper"); +#endif + + public static void init(MonoBehaviour unityObject, Store s) { +#if UNITY_IOS && !UNITY_EDITOR + _initPurchaseConnector(unityObject.name); +#elif UNITY_ANDROID && !UNITY_EDITOR + int store = mapStoreToInt(s); + appsFlyerAndroidConnector.CallStatic("initPurchaseConnector", unityObject ? unityObject.name : null, store); +#endif + } + + public static void build() { +#if UNITY_IOS && !UNITY_EDITOR + //not for iOS +#elif UNITY_ANDROID && !UNITY_EDITOR + appsFlyerAndroidConnector.CallStatic("build"); + +#else +#endif + } + + public static void startObservingTransactions() { +#if UNITY_IOS && !UNITY_EDITOR + _startObservingTransactions(); +#elif UNITY_ANDROID && !UNITY_EDITOR + appsFlyerAndroidConnector.CallStatic("startObservingTransactions"); +#else +#endif + } + + public static void stopObservingTransactions() { +#if UNITY_IOS && !UNITY_EDITOR + _stopObservingTransactions(); +#elif UNITY_ANDROID && !UNITY_EDITOR + appsFlyerAndroidConnector.CallStatic("stopObservingTransactions"); +#else +#endif + } + + public static void setIsSandbox(bool isSandbox) { +#if UNITY_IOS && !UNITY_EDITOR + _setIsSandbox(isSandbox); +#elif UNITY_ANDROID && !UNITY_EDITOR + appsFlyerAndroidConnector.CallStatic("setIsSandbox", isSandbox); +#else +#endif + } + + public static void setPurchaseRevenueValidationListeners(bool enableCallbacks) { +#if UNITY_IOS && !UNITY_EDITOR + _setPurchaseRevenueDelegate(); +#elif UNITY_ANDROID && !UNITY_EDITOR + appsFlyerAndroidConnector.CallStatic("setPurchaseRevenueValidationListeners", enableCallbacks); +#else +#endif + } + + public static void setAutoLogPurchaseRevenue(params AppsFlyerAutoLogPurchaseRevenueOptions[] autoLogPurchaseRevenueOptions) { +#if UNITY_IOS && !UNITY_EDITOR + int option = 0; + foreach (AppsFlyerAutoLogPurchaseRevenueOptions op in autoLogPurchaseRevenueOptions) { + option = option | (int)op; + } + _setAutoLogPurchaseRevenue(option); +#elif UNITY_ANDROID && !UNITY_EDITOR + if (autoLogPurchaseRevenueOptions.Length == 0) { + return; + } + foreach (AppsFlyerAutoLogPurchaseRevenueOptions op in autoLogPurchaseRevenueOptions) { + switch(op) { + case AppsFlyerAutoLogPurchaseRevenueOptions.AppsFlyerAutoLogPurchaseRevenueOptionsDisabled: + break; + case AppsFlyerAutoLogPurchaseRevenueOptions.AppsFlyerAutoLogPurchaseRevenueOptionsAutoRenewableSubscriptions: + appsFlyerAndroidConnector.CallStatic("setAutoLogSubscriptions", true); + break; + case AppsFlyerAutoLogPurchaseRevenueOptions.AppsFlyerAutoLogPurchaseRevenueOptionsInAppPurchases: + appsFlyerAndroidConnector.CallStatic("setAutoLogInApps", true); + break; + default: + break; + } + } +#else +#endif + } + + public static void setPurchaseRevenueDataSource(IAppsFlyerPurchaseRevenueDataSource dataSource) + { +#if UNITY_IOS && !UNITY_EDITOR + + if (dataSource != null) + { + _setPurchaseRevenueDataSource(dataSource.GetType().Name); + AppsFlyerPurchaseRevenueBridge.RegisterDataSource(dataSource); + } +#elif UNITY_ANDROID && !UNITY_EDITOR + if (dataSource != null) + { + AppsFlyerPurchaseRevenueBridge.RegisterDataSource(dataSource); + } +#endif + } + + + public static void setPurchaseRevenueDataSourceStoreKit2(IAppsFlyerPurchaseRevenueDataSourceStoreKit2 dataSourceSK2) + { +#if UNITY_IOS && !UNITY_EDITOR + if (dataSourceSK2 != null) + { + AppsFlyerPurchaseRevenueBridge.RegisterDataSourceStoreKit2(dataSourceSK2); + _setPurchaseRevenueDataSource("AppsFlyerObjectScript_StoreKit2"); + } +#endif + } + + + private static int mapStoreToInt(Store s) { + switch(s) { + case(Store.GOOGLE): + return 0; + default: + return -1; + } + } + + public static void setStoreKitVersion(StoreKitVersion storeKitVersion) { +#if UNITY_IOS && !UNITY_EDITOR + _setStoreKitVersion((int)storeKitVersion); +#elif UNITY_ANDROID && !UNITY_EDITOR + // Android doesn't use StoreKit +#else +#endif + } + + public static void logConsumableTransaction(string transactionJson) { +#if UNITY_IOS && !UNITY_EDITOR + _logConsumableTransaction(transactionJson); +#elif UNITY_ANDROID && !UNITY_EDITOR + // Android doesn't use StoreKit +#else +#endif + } + +#if UNITY_IOS && !UNITY_EDITOR + + [DllImport("__Internal")] + private static extern void _startObservingTransactions(); + [DllImport("__Internal")] + private static extern void _stopObservingTransactions(); + [DllImport("__Internal")] + private static extern void _setIsSandbox(bool isSandbox); + [DllImport("__Internal")] + private static extern void _setPurchaseRevenueDelegate(); + [DllImport("__Internal")] + private static extern void _setPurchaseRevenueDataSource(string dataSourceName); + [DllImport("__Internal")] + private static extern void _setAutoLogPurchaseRevenue(int option); + [DllImport("__Internal")] + private static extern void _initPurchaseConnector(string objectName); + [DllImport("__Internal")] + private static extern void _setStoreKitVersion(int storeKitVersion); + [DllImport("__Internal")] + private static extern void _logConsumableTransaction(string transactionJson); + +#endif + } + public enum Store { + GOOGLE = 0 + } + public enum AppsFlyerAutoLogPurchaseRevenueOptions + { + AppsFlyerAutoLogPurchaseRevenueOptionsDisabled = 0, + AppsFlyerAutoLogPurchaseRevenueOptionsAutoRenewableSubscriptions = 1 << 0, + AppsFlyerAutoLogPurchaseRevenueOptionsInAppPurchases = 1 << 1 + } + + public enum StoreKitVersion { + SK1 = 0, + SK2 = 1 + } +} \ No newline at end of file diff --git a/sdk-intergration/Assets/AppsFlyer/AFAdRevenueEvent.cs.meta b/sdk-intergration/Assets/AppsFlyer/AppsFlyerPurchaseConnector.cs.meta similarity index 83% rename from sdk-intergration/Assets/AppsFlyer/AFAdRevenueEvent.cs.meta rename to sdk-intergration/Assets/AppsFlyer/AppsFlyerPurchaseConnector.cs.meta index cbcfb3e..dd85a75 100644 --- a/sdk-intergration/Assets/AppsFlyer/AFAdRevenueEvent.cs.meta +++ b/sdk-intergration/Assets/AppsFlyer/AppsFlyerPurchaseConnector.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: b73b301ad8b6f4b45809980800a9358a +guid: 0636ea07d370d437183f3762280c08ce MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/sdk-intergration/Assets/AppsFlyer/AppsFlyeriOS.cs b/sdk-intergration/Assets/AppsFlyer/AppsFlyeriOS.cs index e117a8e..a9fd93b 100644 --- a/sdk-intergration/Assets/AppsFlyer/AppsFlyeriOS.cs +++ b/sdk-intergration/Assets/AppsFlyer/AppsFlyeriOS.cs @@ -215,7 +215,24 @@ public void startSDK(bool shouldCallback, string CallBackObjectName) public void setConsentData(AppsFlyerConsent appsFlyerConsent) { #if !UNITY_EDITOR - _setConsentData(appsFlyerConsent.isUserSubjectToGDPR, appsFlyerConsent.hasConsentForDataUsage, appsFlyerConsent.hasConsentForAdsPersonalization); + string isUserSubjectToGDPR = appsFlyerConsent.isUserSubjectToGDPR?.ToString().ToLower() ?? "null"; + string hasConsentForDataUsage = appsFlyerConsent.hasConsentForDataUsage?.ToString().ToLower() ?? "null"; + string hasConsentForAdsPersonalization = appsFlyerConsent.hasConsentForAdsPersonalization?.ToString().ToLower() ?? "null"; + string hasConsentForAdStorage = appsFlyerConsent.hasConsentForAdStorage?.ToString().ToLower() ?? "null"; + + _setConsentData(isUserSubjectToGDPR, hasConsentForDataUsage, hasConsentForAdsPersonalization, hasConsentForAdStorage); +#endif + } + + /// + /// Logs ad revenue data along with additional parameters if provided. + /// + /// instance of AFAdRevenueData containing ad revenue information. + /// An optional map of additional parameters to be logged with ad revenue data. This can be null if there are no additional parameters. + public void logAdRevenue(AFAdRevenueData adRevenueData, Dictionary additionalParameters) + { +#if !UNITY_EDITOR + _logAdRevenue(adRevenueData.monetizationNetwork, adRevenueData.mediationNetwork, adRevenueData.currencyIso4217Code, adRevenueData.eventRevenue, AFMiniJSON.Json.Serialize(additionalParameters)); #endif } @@ -337,11 +354,11 @@ public void startSDK(bool shouldCallback, string CallBackObjectName) /// To send and validate in app purchases you can call this method from the processPurchase method. /// /// The AFSDKPurchaseDetailsIOS instance. - /// The extra params, which you want to receive it in the raw reports. - public void validateAndSendInAppPurchase(AFSDKPurchaseDetailsIOS details, Dictionary extraEventValues, MonoBehaviour gameObject) + /// The additional params, which you want to receive it in the raw reports. + public void validateAndSendInAppPurchase(AFSDKPurchaseDetailsIOS details, Dictionary purchaseAdditionalDetails, MonoBehaviour gameObject) { #if !UNITY_EDITOR - _validateAndSendInAppPurchaseV2(details.productId, details.price, details.currency, details.transactionId, AFMiniJSON.Json.Serialize(extraEventValues), gameObject ? gameObject.name : null); + _validateAndSendInAppPurchaseV2(details.productId, details.transactionId, (int)details.purchaseType, AFMiniJSON.Json.Serialize(purchaseAdditionalDetails), gameObject ? gameObject.name : null); #endif } @@ -748,7 +765,14 @@ public void startSDK(bool shouldCallback, string CallBackObjectName) #elif UNITY_STANDALONE_OSX [DllImport("AppsFlyerBundle")] #endif - private static extern void _setConsentData(bool isUserSubjectToGDPR, bool hasConsentForDataUsage, bool hasConsentForAdsPersonalization); + private static extern void _setConsentData(string isUserSubjectToGDPR, string hasConsentForDataUsage, string hasConsentForAdsPersonalization, string hasConsentForAdStorage); + +#if UNITY_IOS + [DllImport("__Internal")] +#elif UNITY_STANDALONE_OSX + [DllImport("AppsFlyerBundle")] +#endif + private static extern void _logAdRevenue(string monetizationNetwork, MediationNetwork mediationNetwork, string currencyIso4217Code, double eventRevenue, string additionalParameters); #if UNITY_IOS [DllImport("__Internal")] @@ -819,7 +843,7 @@ public void startSDK(bool shouldCallback, string CallBackObjectName) #elif UNITY_STANDALONE_OSX [DllImport("AppsFlyerBundle")] #endif - private static extern void _validateAndSendInAppPurchaseV2(string product, string price, string currency, string transactionId, string extraEventValues, string objectName); + private static extern void _validateAndSendInAppPurchaseV2(string product, string transactionId, int purchaseType, string purchaseAdditionalDetails, string objectName); #if UNITY_IOS [DllImport("__Internal")] diff --git a/sdk-intergration/Assets/AppsFlyer/Editor/AppsFlyerAdRevenueDependencies.xml b/sdk-intergration/Assets/AppsFlyer/Editor/AppsFlyerAdRevenueDependencies.xml deleted file mode 100644 index 4a7f376..0000000 --- a/sdk-intergration/Assets/AppsFlyer/Editor/AppsFlyerAdRevenueDependencies.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/sdk-intergration/Assets/AppsFlyer/Editor/AppsFlyerAdRevenueDependencies.xml.meta b/sdk-intergration/Assets/AppsFlyer/Editor/AppsFlyerAdRevenueDependencies.xml.meta deleted file mode 100644 index b48efbb..0000000 --- a/sdk-intergration/Assets/AppsFlyer/Editor/AppsFlyerAdRevenueDependencies.xml.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 6110ce30bf7674268814dc9e0395f8b0 -TextScriptImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/sdk-intergration/Assets/AppsFlyer/Editor/AppsFlyerDependencies.xml b/sdk-intergration/Assets/AppsFlyer/Editor/AppsFlyerDependencies.xml index 458e853..a2b8e95 100644 --- a/sdk-intergration/Assets/AppsFlyer/Editor/AppsFlyerDependencies.xml +++ b/sdk-intergration/Assets/AppsFlyer/Editor/AppsFlyerDependencies.xml @@ -2,17 +2,15 @@ - - - - - - + + + + - - + + diff --git a/sdk-intergration/Assets/AppsFlyer/IAppsFlyerAndroidBridge.cs b/sdk-intergration/Assets/AppsFlyer/IAppsFlyerAndroidBridge.cs index b4c8188..3a83bc3 100644 --- a/sdk-intergration/Assets/AppsFlyer/IAppsFlyerAndroidBridge.cs +++ b/sdk-intergration/Assets/AppsFlyer/IAppsFlyerAndroidBridge.cs @@ -22,7 +22,7 @@ namespace AppsFlyerSDK string getAttributionId(); void handlePushNotifications(); void validateAndSendInAppPurchase(string publicKey, string signature, string purchaseData, string price, string currency, Dictionary additionalParameters, MonoBehaviour gameObject); - void validateAndSendInAppPurchase(AFPurchaseDetailsAndroid details, Dictionary additionalParameters, MonoBehaviour gameObject); + void validateAndSendInAppPurchase(AFPurchaseDetailsAndroid details, Dictionary purchaseAdditionalDetails, MonoBehaviour gameObject); void setCollectOaid(bool isCollect); void setDisableAdvertisingIdentifiers(bool disable); void setDisableNetworkData(bool disable); diff --git a/sdk-intergration/Assets/AppsFlyer/IAppsFlyerIOSBridge.cs b/sdk-intergration/Assets/AppsFlyer/IAppsFlyerIOSBridge.cs index 86211fb..4de6fd4 100644 --- a/sdk-intergration/Assets/AppsFlyer/IAppsFlyerIOSBridge.cs +++ b/sdk-intergration/Assets/AppsFlyer/IAppsFlyerIOSBridge.cs @@ -14,7 +14,7 @@ namespace AppsFlyerSDK void setUseReceiptValidationSandbox(bool useReceiptValidationSandbox); void setUseUninstallSandbox(bool useUninstallSandbox); void validateAndSendInAppPurchase(string productIdentifier, string price, string currency, string transactionId, Dictionary additionalParameters, MonoBehaviour gameObject); - void validateAndSendInAppPurchase(AFSDKPurchaseDetailsIOS details, Dictionary extraEventValues, MonoBehaviour gameObject); + void validateAndSendInAppPurchase(AFSDKPurchaseDetailsIOS details, Dictionary purchaseAdditionalDetails, MonoBehaviour gameObject); void registerUninstall(byte[] deviceToken); void handleOpenUrl(string url, string sourceApplication, string annotation); void waitForATTUserAuthorizationWithTimeoutInterval(int timeoutInterval); diff --git a/sdk-intergration/Assets/AppsFlyer/IAppsFlyerNativeBridge.cs b/sdk-intergration/Assets/AppsFlyer/IAppsFlyerNativeBridge.cs index fb1a9cf..23a107c 100644 --- a/sdk-intergration/Assets/AppsFlyer/IAppsFlyerNativeBridge.cs +++ b/sdk-intergration/Assets/AppsFlyer/IAppsFlyerNativeBridge.cs @@ -43,6 +43,8 @@ namespace AppsFlyerSDK void setConsentData(AppsFlyerConsent appsFlyerConsent); + void logAdRevenue(AFAdRevenueData adRevenueData, Dictionary additionalParameters); + void setMinTimeBetweenSessions(int seconds); void setHost(string hostPrefixName, string hostName); diff --git a/sdk-intergration/Assets/AppsFlyer/IAppsFlyerPurchaseValidation.cs b/sdk-intergration/Assets/AppsFlyer/IAppsFlyerPurchaseValidation.cs new file mode 100644 index 0000000..73591a3 --- /dev/null +++ b/sdk-intergration/Assets/AppsFlyer/IAppsFlyerPurchaseValidation.cs @@ -0,0 +1,8 @@ +namespace AppsFlyerSDK +{ + public interface IAppsFlyerPurchaseValidation + { + void didReceivePurchaseRevenueValidationInfo(string validationInfo); + void didReceivePurchaseRevenueError(string error); + } +} \ No newline at end of file diff --git a/sdk-intergration/Assets/AppsFlyer/AppsFlyerAdRevenue.cs.meta b/sdk-intergration/Assets/AppsFlyer/IAppsFlyerPurchaseValidation.cs.meta similarity index 83% rename from sdk-intergration/Assets/AppsFlyer/AppsFlyerAdRevenue.cs.meta rename to sdk-intergration/Assets/AppsFlyer/IAppsFlyerPurchaseValidation.cs.meta index af22f2f..3e453b7 100644 --- a/sdk-intergration/Assets/AppsFlyer/AppsFlyerAdRevenue.cs.meta +++ b/sdk-intergration/Assets/AppsFlyer/IAppsFlyerPurchaseValidation.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 644005ac4602e4b78ad3a8d4d29e329d +guid: 7c60f499ae0d048b1be8ffd6878a184c MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/sdk-intergration/Assets/AppsFlyer/Mac/AppsFlyerBundle.bundle/Contents.meta b/sdk-intergration/Assets/AppsFlyer/Mac/AppsFlyerBundle.bundle/Contents.meta deleted file mode 100644 index 4b06604..0000000 --- a/sdk-intergration/Assets/AppsFlyer/Mac/AppsFlyerBundle.bundle/Contents.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 28175da64865f4e398b3b9ddfbe97b24 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/sdk-intergration/Assets/AppsFlyer/Mac/AppsFlyerBundle.bundle/Contents/Info.plist.meta b/sdk-intergration/Assets/AppsFlyer/Mac/AppsFlyerBundle.bundle/Contents/Info.plist.meta deleted file mode 100644 index dac263e..0000000 --- a/sdk-intergration/Assets/AppsFlyer/Mac/AppsFlyerBundle.bundle/Contents/Info.plist.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 58a86b0b376564c06bf8ce29e1dbfb04 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/sdk-intergration/Assets/AppsFlyer/Mac/AppsFlyerBundle.bundle/Contents/MacOS.meta b/sdk-intergration/Assets/AppsFlyer/Mac/AppsFlyerBundle.bundle/Contents/MacOS.meta deleted file mode 100644 index b55a757..0000000 --- a/sdk-intergration/Assets/AppsFlyer/Mac/AppsFlyerBundle.bundle/Contents/MacOS.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 218a2e7ff5a4c461981bc41f7d7bfeba -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/sdk-intergration/Assets/AppsFlyer/Mac/AppsFlyerBundle.bundle/Contents/MacOS/AppsFlyerBundle b/sdk-intergration/Assets/AppsFlyer/Mac/AppsFlyerBundle.bundle/Contents/MacOS/AppsFlyerBundle old mode 100644 new mode 100755 diff --git a/sdk-intergration/Assets/AppsFlyer/Mac/AppsFlyerBundle.bundle/Contents/MacOS/AppsFlyerBundle.meta b/sdk-intergration/Assets/AppsFlyer/Mac/AppsFlyerBundle.bundle/Contents/MacOS/AppsFlyerBundle.meta deleted file mode 100644 index a6e35c7..0000000 --- a/sdk-intergration/Assets/AppsFlyer/Mac/AppsFlyerBundle.bundle/Contents/MacOS/AppsFlyerBundle.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 0889edee891d84a8eb0b7cc87071b91e -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/sdk-intergration/Assets/AppsFlyer/Mac/AppsFlyerBundle.bundle/Contents/_CodeSignature.meta b/sdk-intergration/Assets/AppsFlyer/Mac/AppsFlyerBundle.bundle/Contents/_CodeSignature.meta deleted file mode 100644 index d3cac98..0000000 --- a/sdk-intergration/Assets/AppsFlyer/Mac/AppsFlyerBundle.bundle/Contents/_CodeSignature.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 16068f30788004029bd487756623799b -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/sdk-intergration/Assets/AppsFlyer/Mac/AppsFlyerBundle.bundle/Contents/_CodeSignature/CodeResources.meta b/sdk-intergration/Assets/AppsFlyer/Mac/AppsFlyerBundle.bundle/Contents/_CodeSignature/CodeResources.meta deleted file mode 100644 index 4cbf196..0000000 --- a/sdk-intergration/Assets/AppsFlyer/Mac/AppsFlyerBundle.bundle/Contents/_CodeSignature/CodeResources.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 724b52b308e9a4a6d889d7bf3945a2ca -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AFUnityStoreKit2Bridge.swift b/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AFUnityStoreKit2Bridge.swift new file mode 100644 index 0000000..e44f781 --- /dev/null +++ b/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AFUnityStoreKit2Bridge.swift @@ -0,0 +1,79 @@ +import Foundation +import StoreKit + +#if canImport(PurchaseConnector) +import PurchaseConnector + +@available(iOS 15.0, *) +@objc +public class AFUnityStoreKit2Bridge: NSObject { + @objc + public static func fetchAFSDKTransactionSK2(withTransactionId transactionId: String, completion: @escaping (AFSDKTransactionSK2?) -> Void) { + guard let transactionIdUInt64 = UInt64(transactionId) else { + print("Invalid transaction ID format.") + completion(nil) + return + } + Task { + for await result in StoreKit.Transaction.all { + if case .verified(let transaction) = result, transaction.id == transactionIdUInt64 { + let afTransaction = AFSDKTransactionSK2(transaction: transaction) + DispatchQueue.main.async { + completion(afTransaction) + } + return + } + } + DispatchQueue.main.async { + completion(nil) + } + } + } + + @objc + public static func extractSK2ProductInfo(_ products: [AFSDKProductSK2]) -> NSArray { + var result: [[String: Any]] = [] + + for product in products { + if let swiftProduct = Mirror(reflecting: product).children.first(where: { $0.label == "product" })?.value { + let productId = (swiftProduct as? NSObject)?.value(forKey: "id") as? String ?? "" + let title = (swiftProduct as? NSObject)?.value(forKey: "displayName") as? String ?? "" + let desc = (swiftProduct as? NSObject)?.value(forKey: "description") as? String ?? "" + let price = (swiftProduct as? NSObject)?.value(forKey: "price") as? NSDecimalNumber ?? 0 + + result.append([ + "productIdentifier": productId, + "localizedTitle": title, + "localizedDescription": desc, + "price": price + ]) + } + } + + return result as NSArray + } + + @objc + public static func extractSK2TransactionInfo(_ transactions: [AFSDKTransactionSK2]) -> NSArray { + var result: [[String: Any]] = [] + + for txn in transactions { + guard let mirrorChild = Mirror(reflecting: txn).children.first(where: { $0.label == "transaction" }), + let swiftTxn = mirrorChild.value as? StoreKit.Transaction else { + continue + } + + let transactionId = "\(swiftTxn.id)" + let date = NSNumber(value: swiftTxn.purchaseDate.timeIntervalSince1970) + + result.append([ + "transactionIdentifier": transactionId, + "transactionState": "verified", // or skip this line + "transactionDate": date + ]) + } + + return result as NSArray + } +} +#endif diff --git a/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AFUnityStoreKit2Bridge.swift.meta b/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AFUnityStoreKit2Bridge.swift.meta new file mode 100644 index 0000000..41ea24f --- /dev/null +++ b/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AFUnityStoreKit2Bridge.swift.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 5652805602a6b4273a6e527b00aea272 \ No newline at end of file diff --git a/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AFUnityUtils.h b/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AFUnityUtils.h index c838a93..d3fec43 100644 --- a/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AFUnityUtils.h +++ b/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AFUnityUtils.h @@ -17,6 +17,8 @@ static NSArray *NSArrayFromCArray(int length, const char **arr); static char* getCString(const char* string); static AppsFlyerLinkGenerator* generatorFromDictionary(NSDictionary* dictionary, AppsFlyerLinkGenerator* generator); static EmailCryptType emailCryptTypeFromInt(int emailCryptTypeInt); +static AppsFlyerAdRevenueMediationNetworkType mediationNetworkTypeFromInt(int mediationNetwork); +static NSNumber *intFromNullableBool(const char *cStr); static NSString* stringFromDeepLinkResultStatus(AFSDKDeepLinkResultStatus deepLinkResult); static NSString* stringFromDeepLinkResultError(AppsFlyerDeepLinkResult *result); diff --git a/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AFUnityUtils.mm b/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AFUnityUtils.mm index 59e0163..611f269 100644 --- a/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AFUnityUtils.mm +++ b/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AFUnityUtils.mm @@ -108,6 +108,72 @@ static EmailCryptType emailCryptTypeFromInt(int emailCryptTypeInt){ return emailCryptType; } +static NSNumber *intFromNullableBool(const char *cStr) { + if (!cStr) return nil; + NSString *str = [NSString stringWithUTF8String:cStr]; + + if ([str caseInsensitiveCompare:@"true"] == NSOrderedSame) { + return @YES; + } else if ([str caseInsensitiveCompare:@"false"] == NSOrderedSame) { + return @NO; + } + return nil; +} + +static AppsFlyerAdRevenueMediationNetworkType mediationNetworkTypeFromInt(int mediationNetworkInt){ + + AppsFlyerAdRevenueMediationNetworkType mediationNetworkType; + switch (mediationNetworkInt){ + case 1: + mediationNetworkType = AppsFlyerAdRevenueMediationNetworkTypeGoogleAdMob; + break; + case 2: + mediationNetworkType = AppsFlyerAdRevenueMediationNetworkTypeIronSource; + break; + case 3: + mediationNetworkType = AppsFlyerAdRevenueMediationNetworkTypeApplovinMax; + break; + case 4: + mediationNetworkType = AppsFlyerAdRevenueMediationNetworkTypeFyber; + break; + case 5: + mediationNetworkType = AppsFlyerAdRevenueMediationNetworkTypeAppodeal; + break; + case 6: + mediationNetworkType = AppsFlyerAdRevenueMediationNetworkTypeAdmost; + break; + case 7: + mediationNetworkType = AppsFlyerAdRevenueMediationNetworkTypeTopon; + break; + case 8: + mediationNetworkType = AppsFlyerAdRevenueMediationNetworkTypeTradplus; + break; + case 9: + mediationNetworkType = AppsFlyerAdRevenueMediationNetworkTypeYandex; + break; + case 10: + mediationNetworkType = AppsFlyerAdRevenueMediationNetworkTypeChartBoost; + break; + case 11: + mediationNetworkType = AppsFlyerAdRevenueMediationNetworkTypeUnity; + break; + case 12: + mediationNetworkType = AppsFlyerAdRevenueMediationNetworkTypeToponPte; + break; + case 13: + mediationNetworkType = AppsFlyerAdRevenueMediationNetworkTypeCustom; + break; + case 14: + mediationNetworkType = AppsFlyerAdRevenueMediationNetworkTypeDirectMonetization; + break; + default: + mediationNetworkType = AppsFlyerAdRevenueMediationNetworkTypeCustom; + break; + } + + return mediationNetworkType; +} + static NSString* stringFromDeepLinkResultStatus(AFSDKDeepLinkResultStatus deepLinkResult){ NSString* result; switch (deepLinkResult){ diff --git a/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AppsFlyer+AppController.m b/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AppsFlyer+AppController.m index 017a1c7..f877576 100644 --- a/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AppsFlyer+AppController.m +++ b/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AppsFlyer+AppController.m @@ -29,6 +29,34 @@ static IMP __original_openUrl_Imp __unused; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ +#if !AFSDK_SHOULD_SWIZZLE + + id swizzleFlag = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"AppsFlyerShouldSwizzle"]; + BOOL shouldSwizzle = swizzleFlag ? [swizzleFlag boolValue] : NO; + + if(shouldSwizzle){ + + Method method1 = class_getInstanceMethod([self class], @selector(applicationDidBecomeActive:)); + __original_applicationDidBecomeActive_Imp = method_setImplementation(method1, (IMP)__swizzled_applicationDidBecomeActive); + + Method method2 = class_getInstanceMethod([self class], @selector(applicationDidEnterBackground:)); + __original_applicationDidEnterBackground_Imp = method_setImplementation(method2, (IMP)__swizzled_applicationDidEnterBackground); + + + Method method3 = class_getInstanceMethod([self class], @selector(didReceiveRemoteNotification:)); + __original_didReceiveRemoteNotification_Imp = method_setImplementation(method3, (IMP)__swizzled_didReceiveRemoteNotification); + + + Method method4 = class_getInstanceMethod([self class], @selector(application:openURL:options:)); + __original_openUrl_Imp = method_setImplementation(method4, (IMP)__swizzled_openURL); + + if (_AppsFlyerdelegate == nil) { + _AppsFlyerdelegate = [[AppsFlyeriOSWarpper alloc] init]; + } + + [self swizzleContinueUserActivity:[self class]]; + } +#elif AFSDK_SHOULD_SWIZZLE Method method1 = class_getInstanceMethod([self class], @selector(applicationDidBecomeActive:)); __original_applicationDidBecomeActive_Imp = method_setImplementation(method1, (IMP)__swizzled_applicationDidBecomeActive); @@ -48,6 +76,10 @@ static IMP __original_openUrl_Imp __unused; } [self swizzleContinueUserActivity:[self class]]; + +#endif + + }); } diff --git a/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AppsFlyerAdRevenueWrapper.h b/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AppsFlyerAdRevenueWrapper.h deleted file mode 100644 index 879168d..0000000 --- a/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AppsFlyerAdRevenueWrapper.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// AppsFlyerAdRevenueWrapper.h -// Unity-iPhone -// -// Created by Jonathan Wesfield on 01/12/2019. -// - -#import - -#if __has_include() -#import -#endif - -@interface AppsFlyerAdRevenueWrapper : NSObject - -@end diff --git a/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AppsFlyerAdRevenueWrapper.h.meta b/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AppsFlyerAdRevenueWrapper.h.meta deleted file mode 100644 index c7301b1..0000000 --- a/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AppsFlyerAdRevenueWrapper.h.meta +++ /dev/null @@ -1,27 +0,0 @@ -fileFormatVersion: 2 -guid: 7fa891a95d71c459daa1e92ee7a653ab -PluginImporter: - externalObjects: {} - serializedVersion: 2 - iconMap: {} - executionOrder: {} - defineConstraints: [] - isPreloaded: 0 - isOverridable: 0 - isExplicitlyReferenced: 0 - validateReferences: 1 - platformData: - - first: - Any: - second: - enabled: 1 - settings: {} - - first: - Editor: Editor - second: - enabled: 0 - settings: - DefaultValueInitialized: true - userData: - assetBundleName: - assetBundleVariant: diff --git a/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AppsFlyerAdRevenueWrapper.mm b/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AppsFlyerAdRevenueWrapper.mm deleted file mode 100644 index c2ff0ec..0000000 --- a/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AppsFlyerAdRevenueWrapper.mm +++ /dev/null @@ -1,51 +0,0 @@ -// -// AppsFlyerAdRevenueWrapper.mm -// Unity-iPhone -// -// Created by Jonathan Wesfield on 25/11/2019. -// - -#import "AppsFlyerAdRevenueWrapper.h" - - -@implementation AppsFlyerAdRevenueWrapper - - -extern "C" { - - NSString* stringFromChar(const char *str) { - return str ? [NSString stringWithUTF8String:str] : nil; - } - - NSDictionary* dictionaryFromJson(const char *jsonString) { - if(jsonString){ - NSData *jsonData = [[NSData alloc] initWithBytes:jsonString length:strlen(jsonString)]; - NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:nil]; - return dictionary; - } - return nil; - } - - - const void _start(int length, int* adRevenueTypes){ - [AppsFlyerAdRevenue start]; - } - const void _setIsDebugAdrevenue(bool isDebug){ - [[AppsFlyerAdRevenue shared] setIsDebug:isDebug]; - } - - const void _logAdRevenue(const char* monetizationNetwork, - int mediationNetwork, - double eventRevenue, - const char* revenueCurrency, - const char* additionalParameters){ - [[AppsFlyerAdRevenue shared] logAdRevenueWithMonetizationNetwork:stringFromChar(monetizationNetwork) - mediationNetwork:(AppsFlyerAdRevenueMediationNetworkType) mediationNetwork - eventRevenue:[NSNumber numberWithDouble:eventRevenue] - revenueCurrency:stringFromChar(revenueCurrency) - additionalParameters:dictionaryFromJson(additionalParameters)]; - - } -} - -@end diff --git a/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AppsFlyerAdRevenueWrapper.mm.meta b/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AppsFlyerAdRevenueWrapper.mm.meta deleted file mode 100644 index b864f3c..0000000 --- a/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AppsFlyerAdRevenueWrapper.mm.meta +++ /dev/null @@ -1,37 +0,0 @@ -fileFormatVersion: 2 -guid: 84d99cf0f930e4c80b4bc1858e042b70 -PluginImporter: - externalObjects: {} - serializedVersion: 2 - iconMap: {} - executionOrder: {} - defineConstraints: [] - isPreloaded: 0 - isOverridable: 0 - isExplicitlyReferenced: 0 - validateReferences: 1 - platformData: - - first: - Any: - second: - enabled: 0 - settings: {} - - first: - Editor: Editor - second: - enabled: 0 - settings: - DefaultValueInitialized: true - - first: - iPhone: iOS - second: - enabled: 1 - settings: {} - - first: - tvOS: tvOS - second: - enabled: 1 - settings: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AppsFlyerAppController.mm b/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AppsFlyerAppController.mm index e722cdd..3e492c0 100644 --- a/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AppsFlyerAppController.mm +++ b/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AppsFlyerAppController.mm @@ -101,6 +101,11 @@ @end +#if !(AFSDK_SHOULD_SWIZZLE) + +IMPL_APP_CONTROLLER_SUBCLASS(AppsFlyerAppController) + +#endif /** Note if you would not like to use IMPL_APP_CONTROLLER_SUBCLASS you can replace it with the code below. diff --git a/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AppsFlyeriOSWrapper.h b/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AppsFlyeriOSWrapper.h index d4cd3c3..cf73afe 100644 --- a/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AppsFlyeriOSWrapper.h +++ b/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AppsFlyeriOSWrapper.h @@ -13,10 +13,27 @@ #else #import "AppsFlyerLib.h" #endif +#if __has_include() +#import +#else +#import "PurchaseConnector.h" +#endif +#import + +// Add StoreKit 2 support +#if __has_include() +#import +#endif + +@interface AppsFlyeriOSWarpper : NSObject -@interface AppsFlyeriOSWarpper : NSObject + (BOOL) didCallStart; + (void) setDidCallStart:(BOOL)val; + +// Add StoreKit 2 methods +- (void)setStoreKitVersion:(int)storeKitVersion; +- (void)logConsumableTransaction:(id)transaction; + @end @@ -48,3 +65,7 @@ static NSString* startRequestObjectName = @""; static NSString* inAppRequestObjectName = @""; static NSString* onDeeplinkingObjectName = @""; +static const char* PURCHASE_REVENUE_VALIDATION_CALLBACK = "didReceivePurchaseRevenueValidationInfo"; +static const char* PURCHASE_REVENUE_ERROR_CALLBACK = "didReceivePurchaseRevenueError"; + +static NSString* onPurchaseValidationObjectName = @""; diff --git a/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AppsFlyeriOSWrapper.mm b/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AppsFlyeriOSWrapper.mm index 1af3464..89a23e6 100644 --- a/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AppsFlyeriOSWrapper.mm +++ b/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/AppsFlyeriOSWrapper.mm @@ -6,7 +6,22 @@ // #import "AppsFlyeriOSWrapper.h" +#import +#import +#import "UnityFramework/UnityFramework-Swift.h" + +#if __has_include() +#import +#elif __has_include("PurchaseConnector-Swift.h") +#import "PurchaseConnector-Swift.h" +#endif + +#if __has_include() +#import +#elif __has_include("UnityFramework-Swift.h") +#import "UnityFramework-Swift.h" +#endif static void unityCallBack(NSString* objectName, const char* method, const char* msg) { if(objectName){ @@ -18,7 +33,7 @@ extern "C" { const void _startSDK(bool shouldCallback, const char* objectName) { [[AppsFlyerLib shared] setPluginInfoWith: AFSDKPluginUnity - pluginVersion:@"6.14.3" + pluginVersion:@"6.17.7" additionalParams:nil]; startRequestObjectName = stringFromChar(objectName); AppsFlyeriOSWarpper.didCallStart = YES; @@ -87,14 +102,26 @@ extern "C" { [[AppsFlyerLib shared] enableTCFDataCollection:shouldCollectTcfData]; } - const void _setConsentData(bool isUserSubjectToGDPR, bool hasConsentForDataUsage, bool hasConsentForAdsPersonalization) { - AppsFlyerConsent *consentData = nil; - if (isUserSubjectToGDPR) { - consentData = [[AppsFlyerConsent alloc] initForGDPRUserWithHasConsentForDataUsage:hasConsentForDataUsage hasConsentForAdsPersonalization:hasConsentForAdsPersonalization]; - } else { - consentData = [[AppsFlyerConsent alloc] initNonGDPRUser]; - } - [[AppsFlyerLib shared] setConsentData:consentData]; + const void _setConsentData(const char* isUserSubjectToGDPR, const char* hasConsentForDataUsage, const char* hasConsentForAdsPersonalization, const char* hasConsentForAdStorage) { + + NSNumber *gdpr = intFromNullableBool(isUserSubjectToGDPR); + NSNumber *dataUsage = intFromNullableBool(hasConsentForDataUsage); + NSNumber *adsPersonalization = intFromNullableBool(hasConsentForAdsPersonalization); + NSNumber *adStorage = intFromNullableBool(hasConsentForAdStorage); + + AppsFlyerConsent *consentData = [[AppsFlyerConsent alloc] initWithIsUserSubjectToGDPR:gdpr + hasConsentForDataUsage:dataUsage + hasConsentForAdsPersonalization:adsPersonalization + hasConsentForAdStorage:adStorage]; + + [[AppsFlyerLib shared] setConsentData:consentData]; + } + + const void _logAdRevenue(const char* monetizationNetwork, int mediationNetworkInt, const char* currencyIso4217Code, double eventRevenue, const char* additionalParameters) { + AppsFlyerAdRevenueMediationNetworkType mediationNetwork = mediationNetworkTypeFromInt(mediationNetworkInt); + NSNumber *number = [NSNumber numberWithDouble:eventRevenue]; + AFAdRevenueData *adRevenue = [[AFAdRevenueData alloc] initWithMonetizationNetwork:stringFromChar(monetizationNetwork) mediationNetwork:mediationNetwork currencyIso4217Code:stringFromChar(currencyIso4217Code) eventRevenue:number]; + [[AppsFlyerLib shared] logAdRevenue: adRevenue additionalParameters:dictionaryFromJson(additionalParameters)]; } const void _setDisableCollectIAd (bool disableCollectASA) { @@ -261,21 +288,38 @@ extern "C" { }]; } - const void _validateAndSendInAppPurchaseV2 (const char* product, const char* price, const char* currency, const char* transactionId, const char* extraEventValues, const char* objectName) { + const void _validateAndSendInAppPurchaseV2 (const char* product, const char* transactionId, int purchaseType, const char* purchaseAdditionalDetails, const char* objectName) { validateAndLogObjectName = stringFromChar(objectName); - AFSDKPurchaseDetails *details = [[AFSDKPurchaseDetails alloc] initWithProductId:stringFromChar(product) price:stringFromChar(price) currency:stringFromChar(currency) transactionId:stringFromChar(transactionId)]; + AFSDKPurchaseDetails *details = [[AFSDKPurchaseDetails alloc] initWithProductId:stringFromChar(product) transactionId:stringFromChar(transactionId) purchaseType:(AFSDKPurchaseType)purchaseType]; [[AppsFlyerLib shared] validateAndLogInAppPurchase:details - extraEventValues:dictionaryFromJson(extraEventValues) - completionHandler:^(AFSDKValidateAndLogResult * _Nullable result) { - if (result.status == AFSDKValidateAndLogStatusSuccess) { - unityCallBack(validateAndLogObjectName, VALIDATE_AND_LOG_V2_CALLBACK, stringFromdictionary(result.result)); - } else if (result.status == AFSDKValidateAndLogStatusFailure) { - unityCallBack(validateAndLogObjectName, VALIDATE_AND_LOG_V2_CALLBACK, stringFromdictionary(result.errorData)); + purchaseAdditionalDetails:dictionaryFromJson(purchaseAdditionalDetails) + completion:^(NSDictionary * _Nullable response, NSError * _Nullable error) { + if (error) { + unityCallBack(validateAndLogObjectName, VALIDATE_AND_LOG_V2_ERROR_CALLBACK, stringFromdictionary(dictionaryFromNSError(error))); } else { - unityCallBack(validateAndLogObjectName, VALIDATE_AND_LOG_V2_ERROR_CALLBACK, stringFromdictionary(dictionaryFromNSError(result.error))); + // Check if the response indicates validation failure + BOOL isValidationFailure = NO; + if (response && [response isKindOfClass:[NSDictionary class]]) { + NSDictionary *resultDict = response[@"result"]; + if (resultDict && [resultDict isKindOfClass:[NSDictionary class]]) { + NSDictionary *responseForProduct = resultDict.allValues.firstObject; + if (responseForProduct && [responseForProduct isKindOfClass:[NSDictionary class]]) { + BOOL validationResult = [responseForProduct[@"result"] boolValue]; + if (!validationResult) { + isValidationFailure = YES; + } + } + } + } + + if (isValidationFailure) { + unityCallBack(validateAndLogObjectName, VALIDATE_AND_LOG_V2_ERROR_CALLBACK, stringFromdictionary(response)); + } else { + unityCallBack(validateAndLogObjectName, VALIDATE_AND_LOG_V2_CALLBACK, stringFromdictionary(response)); + } } }]; @@ -325,6 +369,97 @@ extern "C" { [AppsFlyerLib shared].disableIDFVCollection = isDisabled; } + // Purchase connector + const void _startObservingTransactions() { + [[PurchaseConnector shared] startObservingTransactions]; + } + + const void _stopObservingTransactions() { + [[PurchaseConnector shared] stopObservingTransactions]; + } + + const void _setIsSandbox(bool isSandBox) { + [[PurchaseConnector shared] setIsSandbox:isSandBox]; + } + + const void _setPurchaseRevenueDelegate() { + if (_AppsFlyerdelegate== nil) { + _AppsFlyerdelegate = [[AppsFlyeriOSWarpper alloc] init]; + } + [[PurchaseConnector shared] setPurchaseRevenueDelegate:_AppsFlyerdelegate]; + } + + const void _setAutoLogPurchaseRevenue(int option) { + [[PurchaseConnector shared] setAutoLogPurchaseRevenue:option]; + + } + + const void _initPurchaseConnector(const char* objectName) { + if (_AppsFlyerdelegate == nil) { + _AppsFlyerdelegate = [[AppsFlyeriOSWarpper alloc] init]; + } + onPurchaseValidationObjectName = stringFromChar(objectName); + } + + const void _setPurchaseRevenueDataSource(const char* objectName) { + if (_AppsFlyerdelegate == nil) { + _AppsFlyerdelegate = [[AppsFlyeriOSWarpper alloc] init]; + } + + if (strstr(objectName, "StoreKit2") != NULL) { + + // Force protocol conformance + Protocol *sk2Protocol = @protocol(AppsFlyerPurchaseRevenueDataSourceStoreKit2); + class_addProtocol([_AppsFlyerdelegate class], sk2Protocol); + + if (![_AppsFlyerdelegate conformsToProtocol:@protocol(AppsFlyerPurchaseRevenueDataSourceStoreKit2)]) { + NSLog(@"[AppsFlyer] Warning: SK2 protocol not conformed!"); + } + } + + [PurchaseConnector shared].purchaseRevenueDataSource = _AppsFlyerdelegate; + } + + const void _setStoreKitVersion(int storeKitVersion) { + [[PurchaseConnector shared] setStoreKitVersion:(AFSDKStoreKitVersion)storeKitVersion]; + } + + const void _logConsumableTransaction(const char* transactionId) { + if (@available(iOS 15.0, *)) { + NSString *transactionIdStr = [NSString stringWithUTF8String:transactionId]; + [AFUnityStoreKit2Bridge fetchAFSDKTransactionSK2WithTransactionId:transactionIdStr completion:^(AFSDKTransactionSK2 *afTransaction) { + if (afTransaction) { + [[PurchaseConnector shared] logConsumableTransaction:afTransaction]; + } else { + NSLog(@"No AFSDKTransactionSK2 found for id %@", transactionIdStr); + } + }]; + } + } + + #ifdef __cplusplus + extern "C" { + #endif + + typedef const char *(*UnityPurchaseCallback)(const char *, const char *); + + UnityPurchaseCallback UnityPurchasesGetAdditionalParamsCallback = NULL; + UnityPurchaseCallback UnityPurchasesGetAdditionalParamsCallbackSK2 = NULL; + + __attribute__((visibility("default"))) + void RegisterUnityPurchaseRevenueParamsCallback(UnityPurchaseCallback callback) { + UnityPurchasesGetAdditionalParamsCallback = callback; + } + + __attribute__((visibility("default"))) + void RegisterUnityPurchaseRevenueParamsCallbackSK2(UnityPurchaseCallback callback) { + UnityPurchasesGetAdditionalParamsCallbackSK2 = callback; + } + + + #ifdef __cplusplus + } + #endif } @implementation AppsFlyeriOSWarpper @@ -366,5 +501,120 @@ static BOOL didCallStart; unityCallBack(onDeeplinkingObjectName, ON_DEEPLINKING, stringFromdictionary(dict)); } +// Purchase Connector +- (void)didReceivePurchaseRevenueValidationInfo:(NSDictionary *)validationInfo error:(NSError *)error { + if (error != nil) { + unityCallBack(onPurchaseValidationObjectName, PURCHASE_REVENUE_ERROR_CALLBACK, [[error localizedDescription] UTF8String]); + } else { + unityCallBack(onPurchaseValidationObjectName, PURCHASE_REVENUE_VALIDATION_CALLBACK, stringFromdictionary(validationInfo)); + } +} + +- (NSDictionary *)purchaseRevenueAdditionalParametersForProducts:(NSSet *)products + transactions:(NSSet *)transactions { + + NSMutableArray *productsArray = [NSMutableArray array]; + for (SKProduct *product in products) { + [productsArray addObject:@{ + @"productIdentifier": product.productIdentifier ?: @"", + @"localizedTitle": product.localizedTitle ?: @"", + @"localizedDescription": product.localizedDescription ?: @"", + @"price": [product.price stringValue] ?: @"" + }]; + } + + NSMutableArray *transactionsArray = [NSMutableArray array]; + for (SKPaymentTransaction *txn in transactions) { + [transactionsArray addObject:@{ + @"transactionIdentifier": txn.transactionIdentifier ?: @"", + @"transactionState": @(txn.transactionState), + @"transactionDate": txn.transactionDate ? [@(txn.transactionDate.timeIntervalSince1970) stringValue] : @"" + }]; + } + + NSDictionary *input = @{ + @"products": productsArray, + @"transactions": transactionsArray + }; + + NSError *error = nil; + NSData *jsonData = [NSJSONSerialization dataWithJSONObject:input options:0 error:&error]; + if (error || !jsonData) { + NSLog(@"[AppsFlyer] Failed to serialize Unity purchase data: %@", error); + return @{}; + } + + NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; + if (!jsonString || !UnityPurchasesGetAdditionalParamsCallback) { + NSLog(@"[AppsFlyer] Unity callback not registered"); + return @{}; + } + + const char *resultCStr = UnityPurchasesGetAdditionalParamsCallback([jsonString UTF8String], ""); + if (!resultCStr) { + NSLog(@"[AppsFlyer] Unity callback returned null"); + return @{}; + } + + NSString *resultJson = [NSString stringWithUTF8String:resultCStr]; + NSData *resultData = [resultJson dataUsingEncoding:NSUTF8StringEncoding]; + NSDictionary *parsedResult = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&error]; + + if (error || ![parsedResult isKindOfClass:[NSDictionary class]]) { + NSLog(@"[AppsFlyer] Failed to parse Unity response: %@", error); + return @{}; + } + + return parsedResult; +} + +#pragma mark - AppsFlyerPurchaseRevenueDataSourceStoreKit2 +- (NSDictionary *)purchaseRevenueAdditionalParametersStoreKit2ForProducts:(NSSet *)products transactions:(NSSet *)transactions { + if (@available(iOS 15.0, *)) { + NSArray *productInfoArray = [AFUnityStoreKit2Bridge extractSK2ProductInfo:[products allObjects]]; + NSArray *transactionInfoArray = [AFUnityStoreKit2Bridge extractSK2TransactionInfo:[transactions allObjects]]; + + NSDictionary *input = @{ + @"products": productInfoArray, + @"transactions": transactionInfoArray + }; + + if (UnityPurchasesGetAdditionalParamsCallbackSK2) { + NSError *error = nil; + NSData *jsonData = [NSJSONSerialization dataWithJSONObject:input options:0 error:&error]; + if (error || !jsonData) { + NSLog(@"[AppsFlyer] Failed to serialize Unity purchase data: %@", error); + return @{}; + } + + NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; + + const char *resultCStr = UnityPurchasesGetAdditionalParamsCallbackSK2([jsonString UTF8String], ""); + if (!resultCStr) { + NSLog(@"[AppsFlyer] Unity callback returned null"); + return @{}; + } + + NSString *resultJson = [NSString stringWithUTF8String:resultCStr]; + + NSData *resultData = [resultJson dataUsingEncoding:NSUTF8StringEncoding]; + NSDictionary *parsedResult = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&error]; + + if (error || ![parsedResult isKindOfClass:[NSDictionary class]]) { + NSLog(@"[AppsFlyer] Failed to parse Unity response: %@", error); + return @{}; + } + + return parsedResult; + } else { + NSLog(@"[AppsFlyer] SK2 - Unity callback is NOT registered"); + } + } else { + NSLog(@"[AppsFlyer] SK2 - iOS version not supported"); + } + return @{}; +} + @end + diff --git a/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/SwiftForUnity.swift b/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/SwiftForUnity.swift deleted file mode 100644 index 521d0e4..0000000 --- a/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/SwiftForUnity.swift +++ /dev/null @@ -1 +0,0 @@ -import Foundation \ No newline at end of file diff --git a/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/SwiftForUnity.swift.meta b/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/SwiftForUnity.swift.meta deleted file mode 100644 index b24f741..0000000 --- a/sdk-intergration/Assets/AppsFlyer/Plugins/iOS/SwiftForUnity.swift.meta +++ /dev/null @@ -1,37 +0,0 @@ -fileFormatVersion: 2 -guid: a631431c30cca4ac2bb4b40fc67e4005 -PluginImporter: - externalObjects: {} - serializedVersion: 2 - iconMap: {} - executionOrder: {} - defineConstraints: [] - isPreloaded: 0 - isOverridable: 0 - isExplicitlyReferenced: 0 - validateReferences: 1 - platformData: - - first: - Any: - second: - enabled: 0 - settings: {} - - first: - Editor: Editor - second: - enabled: 0 - settings: - DefaultValueInitialized: true - - first: - iPhone: iOS - second: - enabled: 1 - settings: {} - - first: - tvOS: tvOS - second: - enabled: 1 - settings: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/sdk-intergration/Assets/AppsFlyer/ProductPurchase.cs b/sdk-intergration/Assets/AppsFlyer/ProductPurchase.cs new file mode 100644 index 0000000..536190f --- /dev/null +++ b/sdk-intergration/Assets/AppsFlyer/ProductPurchase.cs @@ -0,0 +1,184 @@ +#nullable enable + +using System.Collections; +using System.Collections.Generic; +using System; +using UnityEngine; + +[System.Serializable] +public class InAppPurchaseValidationResult : EventArgs +{ + public bool success; + public ProductPurchase? productPurchase; + public ValidationFailureData? failureData; + public string? token; +} + +[System.Serializable] +public class ProductPurchase +{ + public string? kind; + public string? purchaseTimeMillis; + public int purchaseState; + public int consumptionState; + public string? developerPayload; + public string? orderId; + public int purchaseType; + public int acknowledgementState; + public string? purchaseToken; + public string? productId; + public int quantity; + public string? obfuscatedExternalAccountId; + public string? obfuscatedExternalProfil; + public string? regionCode; +} + +[System.Serializable] +public class ValidationFailureData +{ + public int status; + public string? description; +} + +[System.Serializable] +public class SubscriptionValidationResult +{ + public bool success; + public SubscriptionPurchase? subscriptionPurchase; + public ValidationFailureData? failureData; + public string? token; +} + +[System.Serializable] +public class SubscriptionPurchase +{ + public string? acknowledgementState; + public CanceledStateContext? canceledStateContext; + public ExternalAccountIdentifiers? externalAccountIdentifiers; + public string? kind; + public string? latestOrderId; + public List? lineItems; + public string? linkedPurchaseToken; + public PausedStateContext? pausedStateContext; + public string? regionCode; + public string? startTime; + public SubscribeWithGoogleInfo? subscribeWithGoogleInfo; + public string? subscriptionState; + public TestPurchase? testPurchase; +} + +[System.Serializable] +public class CanceledStateContext +{ + public DeveloperInitiatedCancellation? developerInitiatedCancellation; + public ReplacementCancellation? replacementCancellation; + public SystemInitiatedCancellation? systemInitiatedCancellation; + public UserInitiatedCancellation? userInitiatedCancellation; + +} + +[System.Serializable] +public class ExternalAccountIdentifiers +{ + public string? externalAccountId; + public string? obfuscatedExternalAccountId; + public string? obfuscatedExternalProfileId; +} + +[System.Serializable] +public class SubscriptionPurchaseLineItem +{ + public AutoRenewingPlan? autoRenewingPlan; + public DeferredItemReplacement? deferredItemReplacement; + public string? expiryTime; + public OfferDetails? offerDetails; + public PrepaidPlan? prepaidPlan; + public string? productId; +} + +[System.Serializable] +public class PausedStateContext +{ + public string? autoResumeTime; +} + +[System.Serializable] +public class SubscribeWithGoogleInfo +{ + public string? emailAddress; + public string? familyName; + public string? givenName; + public string? profileId; + public string? profileName; +} + +[System.Serializable] +public class TestPurchase{} + +[System.Serializable] +public class DeveloperInitiatedCancellation{} + +[System.Serializable] +public class ReplacementCancellation{} + +[System.Serializable] +public class SystemInitiatedCancellation{} + +[System.Serializable] +public class UserInitiatedCancellation +{ + public CancelSurveyResult? cancelSurveyResult; + public string? cancelTime; +} + +[System.Serializable] +public class AutoRenewingPlan +{ + public string? autoRenewEnabled; + public SubscriptionItemPriceChangeDetails? priceChangeDetails; +} + +[System.Serializable] +public class DeferredItemReplacement +{ + public string? productId; +} + +[System.Serializable] +public class OfferDetails +{ + public List? offerTags; + public string? basePlanId; + public string? offerId; +} + +[System.Serializable] +public class PrepaidPlan +{ + public string? allowExtendAfterTime; +} + +[System.Serializable] +public class CancelSurveyResult +{ + public string? reason; + public string? reasonUserInput; +} + +[System.Serializable] +public class SubscriptionItemPriceChangeDetails +{ + public string? expectedNewPriceChargeTime; + public Money? newPrice; + public string? priceChangeMode; + public string? priceChangeState; +} + +[System.Serializable] + public class Money + { + public string? currencyCode; + public long nanos; + public long units; + } + \ No newline at end of file diff --git a/sdk-intergration/Assets/AppsFlyer/ProductPurchase.cs.meta b/sdk-intergration/Assets/AppsFlyer/ProductPurchase.cs.meta new file mode 100644 index 0000000..7fdbf37 --- /dev/null +++ b/sdk-intergration/Assets/AppsFlyer/ProductPurchase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9a1435104a69d4c8ebcc6f237cc29a54 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/sdk-intergration/Assets/AppsFlyer/Tests.meta b/sdk-intergration/Assets/AppsFlyer/Tests.meta deleted file mode 100644 index 8217a6a..0000000 --- a/sdk-intergration/Assets/AppsFlyer/Tests.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 1f19f272c71674582bed1d93925da003 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/sdk-intergration/Assets/AppsFlyer/Tests/Castle.Core.dll b/sdk-intergration/Assets/AppsFlyer/Tests/Castle.Core.dll deleted file mode 100644 index 268e311c52a8240efd3f50806f391bf05ba3ba9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 442368 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 Mei!theg8D@Z_nK1?f?J) diff --git a/sdk-intergration/Assets/AppsFlyer/Tests/Castle.Core.dll.meta b/sdk-intergration/Assets/AppsFlyer/Tests/Castle.Core.dll.meta deleted file mode 100644 index 14cc646..0000000 --- a/sdk-intergration/Assets/AppsFlyer/Tests/Castle.Core.dll.meta +++ /dev/null @@ -1,33 +0,0 @@ -fileFormatVersion: 2 -guid: 7b5b4579db85b4cfd8395bfb19aa309e -PluginImporter: - externalObjects: {} - serializedVersion: 2 - iconMap: {} - executionOrder: {} - defineConstraints: [] - isPreloaded: 0 - isOverridable: 0 - isExplicitlyReferenced: 0 - validateReferences: 1 - platformData: - - first: - Any: - second: - enabled: 1 - settings: {} - - first: - Editor: Editor - second: - enabled: 0 - settings: - DefaultValueInitialized: true - - first: - Windows Store Apps: WindowsStoreApps - second: - enabled: 0 - settings: - CPU: AnyCPU - userData: - assetBundleName: - assetBundleVariant: diff --git a/sdk-intergration/Assets/AppsFlyer/Tests/NSubstitute.dll b/sdk-intergration/Assets/AppsFlyer/Tests/NSubstitute.dll deleted file mode 100644 index f32e491936a3886139a7d13e4b3b17890dc1a3ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 152064 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 diff --git a/sdk-intergration/Assets/AppsFlyer/Tests/NSubstitute.dll.meta b/sdk-intergration/Assets/AppsFlyer/Tests/NSubstitute.dll.meta deleted file mode 100644 index b716f6a..0000000 --- a/sdk-intergration/Assets/AppsFlyer/Tests/NSubstitute.dll.meta +++ /dev/null @@ -1,33 +0,0 @@ -fileFormatVersion: 2 -guid: 642cf65ed2573419bab7e7d44fc73181 -PluginImporter: - externalObjects: {} - serializedVersion: 2 - iconMap: {} - executionOrder: {} - defineConstraints: [] - isPreloaded: 0 - isOverridable: 0 - isExplicitlyReferenced: 0 - validateReferences: 1 - platformData: - - first: - Any: - second: - enabled: 1 - settings: {} - - first: - Editor: Editor - second: - enabled: 0 - settings: - DefaultValueInitialized: true - - first: - Windows Store Apps: WindowsStoreApps - second: - enabled: 0 - settings: - CPU: AnyCPU - userData: - assetBundleName: - assetBundleVariant: diff --git a/sdk-intergration/Assets/AppsFlyer/Tests/System.Runtime.CompilerServices.Unsafe.dll b/sdk-intergration/Assets/AppsFlyer/Tests/System.Runtime.CompilerServices.Unsafe.dll deleted file mode 100644 index c5ba4e4047a15b3adc61340c781307d9c6e89413..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18024 zcmeHu2V7Ij()gYv^bRUTN+>EKgcA?}6{QMDm5zcKLVyS)m;@;*Lgb=Yu_1~|v7lb; zT~S2E-g_4-7Pz9qwd*(MB!S$k-gm$M_ulV)zwiAIp4pw*-PzgQ*`1v^F=%utq9TN7 z@P7M-&>l#M$DM?K4GN%G(`=t6+M#mRd=D0Q);uDWE2L)%_$dNb2A$2~@%SQoB8M)> z;?cQ0x_3x8J%gXbVQ6TmT1i=l`XCgDQPINyAxqX8N(ea) zA$3SfA#W@#`dbOTOLVfjGT?r44H+U%jtKB8y#PQNIaZKc{-Hzf41rL<1|lh&J7g5$ zHG)^}aR=!c0!}&~DiX31G81z^@`Xh9xFh5#%gfR&#Js{o$VNd5$h!|hLv;{RA*tOU zlrEXtZpx2y2@e^!2i)nG@^zo-qMNH%UdnN3(w{PA!Quw8Hi_^Dp~hubVA*Thp2Dx z1HLlapV|}TAMusaF;YEAzEF`0>q7$sMx#SfRkR_-DBB7Yvd{1Ft~Ji>o&!?%Nm(T` zb9rq*WeR3~NrF`YunNXkql`2HFHQ9rRi>0d(suAkVS^iR^|`y<-_ z9H&ww<+9@p^c9n=2eHE?574MTpee{`UF+VfnQTm~iA*nhk$Ne&´RVDkZYh5I? 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 diff --git a/sdk-intergration/Assets/AppsFlyer/Tests/System.Runtime.CompilerServices.Unsafe.dll.meta b/sdk-intergration/Assets/AppsFlyer/Tests/System.Runtime.CompilerServices.Unsafe.dll.meta deleted file mode 100644 index fca3770..0000000 --- a/sdk-intergration/Assets/AppsFlyer/Tests/System.Runtime.CompilerServices.Unsafe.dll.meta +++ /dev/null @@ -1,33 +0,0 @@ -fileFormatVersion: 2 -guid: 3a5ccbd864ba94a9a9ba47895ff14922 -PluginImporter: - externalObjects: {} - serializedVersion: 2 - iconMap: {} - executionOrder: {} - defineConstraints: [] - isPreloaded: 0 - isOverridable: 0 - isExplicitlyReferenced: 0 - validateReferences: 1 - platformData: - - first: - Any: - second: - enabled: 1 - settings: {} - - first: - Editor: Editor - second: - enabled: 0 - settings: - DefaultValueInitialized: true - - first: - Windows Store Apps: WindowsStoreApps - second: - enabled: 0 - settings: - CPU: AnyCPU - userData: - assetBundleName: - assetBundleVariant: diff --git a/sdk-intergration/Assets/AppsFlyer/Tests/System.Threading.Tasks.Extensions.dll b/sdk-intergration/Assets/AppsFlyer/Tests/System.Threading.Tasks.Extensions.dll deleted file mode 100644 index dfc4cdf62c8f7c243d694ed7b96424d3f2e457be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25984 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 - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.startSDK(); - AppsFlyerMOCKInterface.Received().startSDK(Arg.Any(), Arg.Any()); - - } - - [Test] - public void test_sendEvent_withValues() - { - var AppsFlyerMOCKInterface = Substitute.For(); - AppsFlyer.instance = AppsFlyerMOCKInterface; - var eventParams = new Dictionary(); - eventParams.Add("key", "value"); - AppsFlyer.sendEvent("testevent", eventParams); - AppsFlyerMOCKInterface.Received().sendEvent("testevent", eventParams, false, null); - } - - [Test] - public void test_sendEvent_withNullParams() - { - var AppsFlyerMOCKInterface = Substitute.For(); - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.sendEvent("testevent", null); - AppsFlyerMOCKInterface.Received().sendEvent("testevent", null,false, null); - } - - - [Test] - public void test_isSDKStopped_true() - { - var AppsFlyerMOCKInterface = Substitute.For(); - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.stopSDK(true); - - AppsFlyerMOCKInterface.Received().stopSDK(true); - - } - - [Test] - public void test_isSDKStopped_false() - { - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - - AppsFlyer.stopSDK(false); - - AppsFlyerMOCKInterface.Received().stopSDK(false); - - } - - [Test] - public void test_isSDKStopped_called() - { - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - - var isSDKStopped = AppsFlyer.isSDKStopped(); - - AppsFlyerMOCKInterface.Received().isSDKStopped(); - - } - - [Test] - public void test_isSDKStopped_receveivedFalse() - { - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - - var isSDKStopped = AppsFlyer.isSDKStopped(); - - Assert.AreEqual(AppsFlyerMOCKInterface.Received().isSDKStopped(), false); - - - } - - - [Test] - public void test_getSdkVersion_called() - { - var AppsFlyerMOCKInterface = Substitute.For(); - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.getSdkVersion(); - AppsFlyerMOCKInterface.Received().getSdkVersion(); - } - - [Test] - public void test_setCustomerUserId_called() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.setCustomerUserId("test"); - AppsFlyerMOCKInterface.Received().setCustomerUserId("test"); - - } - - [Test] - public void Test_setAppInviteOneLinkID_called() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.setAppInviteOneLinkID("2f36"); - AppsFlyerMOCKInterface.Received().setAppInviteOneLinkID("2f36"); - - } - - [Test] - public void Test_setAdditionalData_called() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - var customData = new Dictionary(); - customData.Add("test", "test"); - AppsFlyer.setAdditionalData(customData); - AppsFlyerMOCKInterface.Received().setAdditionalData(customData); - } - - [Test] - public void Test_setResolveDeepLinkURLs_called() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.setResolveDeepLinkURLs("url1", "url2"); - AppsFlyerMOCKInterface.Received().setResolveDeepLinkURLs("url1", "url2"); - - } - - [Test] - public void Test_setOneLinkCustomDomain_called() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.setOneLinkCustomDomain("url1", "url2"); - AppsFlyerMOCKInterface.Received().setOneLinkCustomDomain("url1", "url2"); - - } - - [Test] - public void Test_setCurrencyCode_called() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.setCurrencyCode("usd"); - AppsFlyerMOCKInterface.Received().setCurrencyCode("usd"); - - } - - [Test] - public void Test_recordLocation_called() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.recordLocation(0.3, 5.2); - AppsFlyerMOCKInterface.Received().recordLocation(0.3, 5.2); - - } - - [Test] - public void Test_anonymizeUser_true() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.anonymizeUser(true); - AppsFlyerMOCKInterface.Received().anonymizeUser(true); - - } - - [Test] - public void Test_anonymizeUser_false() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.anonymizeUser(false); - AppsFlyerMOCKInterface.Received().anonymizeUser(false); - - } - - [Test] - public void Test_getAppsFlyerId_called() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.getAppsFlyerId(); - AppsFlyerMOCKInterface.Received().getAppsFlyerId(); - - } - - [Test] - public void Test_setMinTimeBetweenSessions_called() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.setMinTimeBetweenSessions(3); - AppsFlyerMOCKInterface.Received().setMinTimeBetweenSessions(3); - - } - - [Test] - public void Test_setHost_called() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.setHost("prefix", "name"); - AppsFlyerMOCKInterface.Received().setHost("prefix", "name"); - - } - - [Test] - public void Test_setPhoneNumber_called() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.setPhoneNumber("002"); - AppsFlyerMOCKInterface.Received().setPhoneNumber("002"); - - } - - - [Test] - [System.Obsolete] - public void Test_setSharingFilterForAllPartners_called() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.setSharingFilterForAllPartners(); - AppsFlyerMOCKInterface.Received().setSharingFilterForAllPartners(); - - } - - [Test] - [System.Obsolete] - public void Test_setSharingFilter_called() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - - - AppsFlyer.setSharingFilter("filter1", "filter2"); - AppsFlyerMOCKInterface.Received().setSharingFilter("filter1", "filter2"); - - } - - [Test] - public void Test_getConversionData_called() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - - AppsFlyer.getConversionData("ObjectName"); - AppsFlyerMOCKInterface.Received().getConversionData("ObjectName"); - - } - - [Test] - public void Test_attributeAndOpenStore_called_withParams() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - Dictionary parameters = new Dictionary(); - parameters.Add("af_sub1", "val"); - parameters.Add("custom_param", "val2"); - AppsFlyer.attributeAndOpenStore("appid", "campaign", parameters, new MonoBehaviour()); - AppsFlyerMOCKInterface.Received().attributeAndOpenStore("appid", "campaign", parameters, Arg.Any()); - - } - - [Test] - public void Test_attributeAndOpenStore_called_nullParams() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - - AppsFlyer.attributeAndOpenStore("appid", "campaign", null, new MonoBehaviour()); - AppsFlyerMOCKInterface.Received().attributeAndOpenStore("appid", "campaign", null, Arg.Any()); - - } - - [Test] - public void Test_recordCrossPromoteImpression_calledWithParameters() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - Dictionary parameters = new Dictionary(); - parameters.Add("af_sub1", "val"); - parameters.Add("custom_param", "val2"); - AppsFlyer.recordCrossPromoteImpression("appid", "campaign", parameters); - AppsFlyerMOCKInterface.Received().recordCrossPromoteImpression("appid", "campaign", parameters); - - } - - - - [Test] - public void Test_recordCrossPromoteImpression_calledWithoutParameters() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.recordCrossPromoteImpression("appid", "campaign", null); - AppsFlyerMOCKInterface.Received().recordCrossPromoteImpression("appid", "campaign", null); - - } - - [Test] - public void Test_generateUserInviteLink_called() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - - AppsFlyer.generateUserInviteLink(new Dictionary(), new MonoBehaviour()); - AppsFlyerMOCKInterface.Received().generateUserInviteLink(Arg.Any>(), Arg.Any()); - - } - - - [Test] - public void Test_addPushNotificationDeepLinkPath_called() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.addPushNotificationDeepLinkPath("path1", "path2"); - AppsFlyerMOCKInterface.Received().addPushNotificationDeepLinkPath("path1", "path2"); - - } - -#if UNITY_ANDROID - [Test] - public void updateServerUninstallToken_called() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.updateServerUninstallToken("tokenTest"); - AppsFlyerMOCKInterface.Received().updateServerUninstallToken("tokenTest"); - - } - - [Test] - public void setImeiData_called() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.setImeiData("imei"); - AppsFlyerMOCKInterface.Received().setImeiData("imei"); - - } - - [Test] - public void setAndroidIdData_called() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.setAndroidIdData("androidId"); - AppsFlyerMOCKInterface.Received().setAndroidIdData("androidId"); - - } - - [Test] - public void waitForCustomerUserId_called() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.waitForCustomerUserId(true); - AppsFlyerMOCKInterface.Received().waitForCustomerUserId(true); - - } - - [Test] - public void setCustomerIdAndStartSDK_called() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.setCustomerIdAndStartSDK("01234"); - AppsFlyerMOCKInterface.Received().setCustomerIdAndStartSDK("01234"); - - } - - - [Test] - public void getOutOfStore_called() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.getOutOfStore(); - AppsFlyerMOCKInterface.Received().getOutOfStore(); - - } - - [Test] - public void setOutOfStore_called() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.setOutOfStore("test"); - AppsFlyerMOCKInterface.Received().setOutOfStore("test"); - - } - - [Test] - public void setCollectAndroidID_called() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.setCollectAndroidID(true); - AppsFlyerMOCKInterface.Received().setCollectAndroidID(true); - - } - - [Test] - public void setCollectIMEI_called() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.setCollectIMEI(true); - AppsFlyerMOCKInterface.Received().setCollectIMEI(true); - - } - - [Test] - public void setIsUpdate_called() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.setIsUpdate(true); - AppsFlyerMOCKInterface.Received().setIsUpdate(true); - - } - - [Test] - public void setPreinstallAttribution_called() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.setPreinstallAttribution("mediaSourceTestt", "campaign", "sideId"); - AppsFlyerMOCKInterface.Received().setPreinstallAttribution("mediaSourceTestt", "campaign", "sideId"); - - } - - [Test] - public void isPreInstalledApp_called() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.isPreInstalledApp(); - AppsFlyerMOCKInterface.Received().isPreInstalledApp(); - - } - - [Test] - public void getAttributionId_called() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.getAttributionId(); - AppsFlyerMOCKInterface.Received().getAttributionId(); - - } - - [Test] - public void handlePushNotifications_called() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.handlePushNotifications(); - AppsFlyerMOCKInterface.Received().handlePushNotifications(); - - } - - [Test] - public void validateAndSendInAppPurchase_called() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.validateAndSendInAppPurchase("ewjkekwjekw","hewjehwj", "purchaseData", "3.0", "USD", null, null); - AppsFlyerMOCKInterface.Received().validateAndSendInAppPurchase("ewjkekwjekw", "hewjehwj", "purchaseData", "3.0", "USD", null, null); - - } - - [Test] - public void setCollectOaid_called() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.setCollectOaid(true); - AppsFlyerMOCKInterface.Received().setCollectOaid(true); - - } - - [Test] - public void setDisableAdvertisingIdentifiers_called() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.setDisableAdvertisingIdentifiers(true); - AppsFlyerMOCKInterface.Received().setDisableAdvertisingIdentifiers(true); - - } - - [Test] - public void setDisableNetworkData_called() { - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.setDisableNetworkData(true); - AppsFlyerMOCKInterface.Received().setDisableNetworkData(true); - } -#elif UNITY_IOS - - [Test] - public void setDisableCollectAppleAdSupport_called_true() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.setDisableCollectAppleAdSupport(true); - AppsFlyerMOCKInterface.Received().setDisableCollectAppleAdSupport(true); - - } - - [Test] - public void setDisableCollectAppleAdSupport_called_false() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.setDisableCollectAppleAdSupport(false); - AppsFlyerMOCKInterface.Received().setDisableCollectAppleAdSupport(false); - - } - - [Test] - [System.Obsolete] - public void setShouldCollectDeviceName_called_true() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.setShouldCollectDeviceName(true); - AppsFlyerMOCKInterface.Received().setShouldCollectDeviceName(true); - - } - - [Test] - [System.Obsolete] - public void setShouldCollectDeviceName_called_false() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.setShouldCollectDeviceName(false); - AppsFlyerMOCKInterface.Received().setShouldCollectDeviceName(false); - - } - - [Test] - public void setDisableCollectIAd_called_true() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.setDisableCollectIAd(true); - AppsFlyerMOCKInterface.Received().setDisableCollectIAd(true); - - } - - [Test] - public void setDisableCollectIAd_called_false() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.setDisableCollectIAd(false); - AppsFlyerMOCKInterface.Received().setDisableCollectIAd(false); - - } - - [Test] - public void setUseReceiptValidationSandbox_called_true() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.setUseReceiptValidationSandbox(true); - AppsFlyerMOCKInterface.Received().setUseReceiptValidationSandbox(true); - - } - - [Test] - public void setUseReceiptValidationSandbox_called_false() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.setUseReceiptValidationSandbox(false); - AppsFlyerMOCKInterface.Received().setUseReceiptValidationSandbox(false); - - } - - [Test] - public void ssetUseUninstallSandbox_called_true() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.setUseUninstallSandbox(true); - AppsFlyerMOCKInterface.Received().setUseUninstallSandbox(true); - - } - - [Test] - public void setUseUninstallSandbox_called_false() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.setUseUninstallSandbox(false); - AppsFlyerMOCKInterface.Received().setUseUninstallSandbox(false); - - } - - [Test] - public void validateAndSendInAppPurchase_called() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.validateAndSendInAppPurchase("3d2", "5.0","USD", "45", null, null); - AppsFlyerMOCKInterface.Received().validateAndSendInAppPurchase("3d2", "5.0", "USD", "45", null, null); - - } - - [Test] - public void registerUninstall_called() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - byte[] token = System.Text.Encoding.UTF8.GetBytes("740f4707 bebcf74f 9b7c25d4 8e335894 5f6aa01d a5ddb387 462c7eaf 61bb78ad"); - AppsFlyer.registerUninstall(token); - AppsFlyerMOCKInterface.Received().registerUninstall(token); - - } - - [Test] - public void handleOpenUrl_called() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.handleOpenUrl("www.test.com", "appTest", "test"); - AppsFlyerMOCKInterface.Received().handleOpenUrl("www.test.com", "appTest", "test"); - - } - - [Test] - public void waitForATTUserAuthorizationWithTimeoutInterval_called() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.waitForATTUserAuthorizationWithTimeoutInterval(30); - AppsFlyerMOCKInterface.Received().waitForATTUserAuthorizationWithTimeoutInterval(30); - - } - - [Test] - public void setCurrentDeviceLanguage_called() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.setCurrentDeviceLanguage("en"); - AppsFlyerMOCKInterface.Received().setCurrentDeviceLanguage("en"); - - } - - [Test] - public void disableSKAdNetwork_called_true() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.disableSKAdNetwork(true); - AppsFlyerMOCKInterface.Received().disableSKAdNetwork(true); - - } - - [Test] - public void disableSKAdNetwork_called_false() - { - - var AppsFlyerMOCKInterface = Substitute.For(); - - AppsFlyer.instance = AppsFlyerMOCKInterface; - AppsFlyer.disableSKAdNetwork(false); - AppsFlyerMOCKInterface.Received().disableSKAdNetwork(false); - - } - -#endif - } -} diff --git a/sdk-intergration/Assets/AppsFlyer/package.json b/sdk-intergration/Assets/AppsFlyer/package.json index ab16c90..1443643 100644 --- a/sdk-intergration/Assets/AppsFlyer/package.json +++ b/sdk-intergration/Assets/AppsFlyer/package.json @@ -2,7 +2,7 @@ "name": "appsflyer-unity-plugin", "displayName": "AppsFlyer", "description": "AppsFlyer Unity plugin", - "version": "6.14.0", + "version": "6.17.5", "unity": "2019.4", "license": "MIT" } diff --git a/sdk-intergration/Assets/Plugins/Android/mainTemplate.gradle b/sdk-intergration/Assets/Plugins/Android/mainTemplate.gradle index 64f72fa..ff45e4d 100644 --- a/sdk-intergration/Assets/Plugins/Android/mainTemplate.gradle +++ b/sdk-intergration/Assets/Plugins/Android/mainTemplate.gradle @@ -60,7 +60,7 @@ dependencies { implementation "com.google.android.libraries.identity.googleid:googleid:1.1.1" // Android Resolver Dependencies Start - implementation 'com.android.installreferrer:installreferrer:2.1' // Assets/AppsFlyer/Editor/AppsFlyerDependencies.xml:10 + implementation 'com.android.installreferrer:installreferrer:2.1' // Assets/AppsFlyer/Editor/AppsFlyerDependencies.xml:7 implementation 'com.applovin.mediation:facebook-adapter:[6.18.0.1]' // Assets/MaxSdk/Mediation/Facebook/Editor/Dependencies.xml:8 implementation 'com.applovin.mediation:fyber-adapter:8.4.2.0' // Assets/MaxSdk/Mediation/Fyber/Editor/Dependencies.xml:4 implementation 'com.applovin.mediation:google-adapter:[23.6.0.1]' // Assets/MaxSdk/Mediation/Google/Editor/Dependencies.xml:5 @@ -68,10 +68,9 @@ dependencies { implementation 'com.applovin.mediation:unityads-adapter:4.12.3.0' // Assets/MaxSdk/Mediation/UnityAds/Editor/Dependencies.xml:4 implementation 'com.applovin.mediation:vungle-adapter:7.4.2.2' // Assets/MaxSdk/Mediation/Vungle/Editor/Dependencies.xml:4 implementation 'com.applovin:applovin-sdk:13.5.1' // Assets/MaxSdk/AppLovin/Editor/Dependencies.xml:4 - implementation 'com.appsflyer:adrevenue:6.9.1' // Assets/AppsFlyer/Editor/AppsFlyerAdRevenueDependencies.xml:4 - implementation 'com.appsflyer:af-android-sdk:6.14.0' // Assets/AppsFlyer/Editor/AppsFlyerDependencies.xml:6 - implementation 'com.appsflyer:unity-adrevenue-generic-wrapper:6.9.1' // Assets/AppsFlyer/Editor/AppsFlyerAdRevenueDependencies.xml:5 - implementation 'com.appsflyer:unity-wrapper:6.14.3' // Assets/AppsFlyer/Editor/AppsFlyerDependencies.xml:8 + implementation 'com.appsflyer:af-android-sdk:6.17.3' // Assets/AppsFlyer/Editor/AppsFlyerDependencies.xml:5 + implementation 'com.appsflyer:purchase-connector:2.2.0' // Assets/AppsFlyer/Editor/AppsFlyerDependencies.xml:8 + implementation 'com.appsflyer:unity-wrapper:6.17.7' // Assets/AppsFlyer/Editor/AppsFlyerDependencies.xml:6 implementation 'com.google.android.ump:user-messaging-platform:2.1.0' // Assets/MaxSdk/AppLovin/Editor/Dependencies.xml:5 // Android Resolver Dependencies End **DEPS**} diff --git a/sdk-intergration/Assets/Scripts/AFDeepLinkHelper.cs b/sdk-intergration/Assets/Scripts/AFDeepLinkHelper.cs index 680e184..2480a09 100644 --- a/sdk-intergration/Assets/Scripts/AFDeepLinkHelper.cs +++ b/sdk-intergration/Assets/Scripts/AFDeepLinkHelper.cs @@ -75,7 +75,7 @@ public class AFDeepLinkHelper : MonoBehaviour, IAppsFlyerConversionData, IAppsFl #endif AppsFlyer.startSDK(); - AppsFlyerSDK.AppsFlyerAdRevenue.start(); + // AppsFlyerSDK.AppsFlyerAdRevenue.start(); } public async Task GenInviteLink(string referrerUID, string referrerPID) diff --git a/sdk-intergration/Assets/Scripts/SDKTest.cs b/sdk-intergration/Assets/Scripts/SDKTest.cs index 40d7ad8..12a2d37 100644 --- a/sdk-intergration/Assets/Scripts/SDKTest.cs +++ b/sdk-intergration/Assets/Scripts/SDKTest.cs @@ -105,7 +105,7 @@ public class SDKTest : MonoBehaviour AppsFlyer.initSDK("rSySeWtvKabfbPZE7Lmx7C", null); #endif AppsFlyer.startSDK(); - AppsFlyerAdRevenue.start(); + // AppsFlyerAdRevenue.start(); InitializeRewardedAds(); diff --git a/sdk-intergration/ProjectSettings/AndroidResolverDependencies.xml b/sdk-intergration/ProjectSettings/AndroidResolverDependencies.xml index aa43bd3..ac4214a 100644 --- a/sdk-intergration/ProjectSettings/AndroidResolverDependencies.xml +++ b/sdk-intergration/ProjectSettings/AndroidResolverDependencies.xml @@ -8,10 +8,9 @@ com.applovin.mediation:unityads-adapter:4.12.3.0 com.applovin.mediation:vungle-adapter:7.4.2.2 com.applovin:applovin-sdk:13.5.1 - com.appsflyer:adrevenue:6.9.1 - com.appsflyer:af-android-sdk:6.14.0 - com.appsflyer:unity-adrevenue-generic-wrapper:6.9.1 - com.appsflyer:unity-wrapper:6.14.3 + com.appsflyer:af-android-sdk:6.17.3 + com.appsflyer:purchase-connector:2.2.0 + com.appsflyer:unity-wrapper:6.17.7 com.google.android.ump:user-messaging-platform:2.1.0