This commit is contained in:
corn
2026-06-07 22:59:32 +08:00
commit a62ff7379b
7171 changed files with 10015624 additions and 0 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 525ece82a472e4dea837e1ef938fd15d
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:

View File

@@ -0,0 +1,69 @@
using System;
using System.Collections.Generic;
namespace com.adjust.sdk
{
public class AdjustAdRevenue
{
internal string source;
internal double? revenue;
internal string currency;
internal int? adImpressionsCount;
internal string adRevenueNetwork;
internal string adRevenueUnit;
internal string adRevenuePlacement;
internal List<string> partnerList;
internal List<string> callbackList;
public AdjustAdRevenue(string source)
{
this.source = source;
}
public void setRevenue(double amount, string currency)
{
this.revenue = amount;
this.currency = currency;
}
public void setAdImpressionsCount(int adImpressionsCount)
{
this.adImpressionsCount = adImpressionsCount;
}
public void setAdRevenueNetwork(string adRevenueNetwork)
{
this.adRevenueNetwork = adRevenueNetwork;
}
public void setAdRevenueUnit(string adRevenueUnit)
{
this.adRevenueUnit = adRevenueUnit;
}
public void setAdRevenuePlacement(string adRevenuePlacement)
{
this.adRevenuePlacement = adRevenuePlacement;
}
public void addCallbackParameter(string key, string value)
{
if (callbackList == null)
{
callbackList = new List<string>();
}
callbackList.Add(key);
callbackList.Add(value);
}
public void addPartnerParameter(string key, string value)
{
if (partnerList == null)
{
partnerList = new List<string>();
}
partnerList.Add(key);
partnerList.Add(value);
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 776a9d4b715bc44c68724248a5a75cb9
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,56 @@
using System;
using System.Collections.Generic;
namespace com.adjust.sdk
{
public class AdjustAppStoreSubscription
{
internal string price;
internal string currency;
internal string transactionId;
internal string receipt;
internal string billingStore;
internal string transactionDate;
internal string salesRegion;
internal List<string> partnerList;
internal List<string> callbackList;
public AdjustAppStoreSubscription(string price, string currency, string transactionId, string receipt)
{
this.price = price;
this.currency = currency;
this.transactionId = transactionId;
this.receipt = receipt;
}
public void setTransactionDate(string transactionDate)
{
this.transactionDate = transactionDate;
}
public void setSalesRegion(string salesRegion)
{
this.salesRegion = salesRegion;
}
public void addCallbackParameter(string key, string value)
{
if (callbackList == null)
{
callbackList = new List<string>();
}
callbackList.Add(key);
callbackList.Add(value);
}
public void addPartnerParameter(string key, string value)
{
if (partnerList == null)
{
partnerList = new List<string>();
}
partnerList.Add(key);
partnerList.Add(value);
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 7e2d69221b1124370a4c016edce5a95a
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,85 @@
using System;
using System.Collections.Generic;
namespace com.adjust.sdk
{
public class AdjustAttribution
{
public string adid { get; set; }
public string network { get; set; }
public string adgroup { get; set; }
public string campaign { get; set; }
public string creative { get; set; }
public string clickLabel { get; set; }
public string trackerName { get; set; }
public string trackerToken { get; set; }
public string costType { get; set; }
public double? costAmount { get; set; }
public string costCurrency { get; set; }
// Android only
public string fbInstallReferrer {get; set;}
public AdjustAttribution() {}
public AdjustAttribution(string jsonString)
{
var jsonNode = JSON.Parse(jsonString);
if (jsonNode == null)
{
return;
}
trackerName = AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyTrackerName);
trackerToken = AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyTrackerToken);
network = AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyNetwork);
campaign = AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyCampaign);
adgroup = AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyAdgroup);
creative = AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyCreative);
clickLabel = AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyClickLabel);
adid = AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyAdid);
costType = AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyCostType);
try
{
costAmount = double.Parse(AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyCostAmount),
System.Globalization.CultureInfo.InvariantCulture);
}
catch (Exception)
{
// attribution response doesn't contain cost amount attached
// value will default to null
}
costCurrency = AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyCostCurrency);
fbInstallReferrer = AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyFbInstallReferrer);
}
public AdjustAttribution(Dictionary<string, string> dicAttributionData)
{
if (dicAttributionData == null)
{
return;
}
trackerName = AdjustUtils.TryGetValue(dicAttributionData, AdjustUtils.KeyTrackerName);
trackerToken = AdjustUtils.TryGetValue(dicAttributionData, AdjustUtils.KeyTrackerToken);
network = AdjustUtils.TryGetValue(dicAttributionData, AdjustUtils.KeyNetwork);
campaign = AdjustUtils.TryGetValue(dicAttributionData, AdjustUtils.KeyCampaign);
adgroup = AdjustUtils.TryGetValue(dicAttributionData, AdjustUtils.KeyAdgroup);
creative = AdjustUtils.TryGetValue(dicAttributionData, AdjustUtils.KeyCreative);
clickLabel = AdjustUtils.TryGetValue(dicAttributionData, AdjustUtils.KeyClickLabel);
adid = AdjustUtils.TryGetValue(dicAttributionData, AdjustUtils.KeyAdid);
costType = AdjustUtils.TryGetValue(dicAttributionData, AdjustUtils.KeyCostType);
try
{
costAmount = double.Parse(AdjustUtils.TryGetValue(dicAttributionData, AdjustUtils.KeyCostAmount),
System.Globalization.CultureInfo.InvariantCulture);
}
catch (Exception)
{
// attribution response doesn't contain cost amount attached
// value will default to null
}
costCurrency = AdjustUtils.TryGetValue(dicAttributionData, AdjustUtils.KeyCostCurrency);
fbInstallReferrer = AdjustUtils.TryGetValue(dicAttributionData, AdjustUtils.KeyFbInstallReferrer);
}
}
}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: cc46748ad0e664f6d839a4f1a23d9f47
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:

View File

@@ -0,0 +1,289 @@
using System;
namespace com.adjust.sdk
{
public class AdjustConfig
{
public const string AdjustUrlStrategyChina = "china";
public const string AdjustUrlStrategyIndia = "india";
public const string AdjustDataResidencyEU = "data-residency-eu";
public const string AdjustDataResidencyTR = "data-residency-tr";
public const string AdjustDataResidencyUS = "data-residency-us";
public const string AdjustAdRevenueSourceAppLovinMAX = "applovin_max_sdk";
public const string AdjustAdRevenueSourceMopub = "mopub";
public const string AdjustAdRevenueSourceAdMob = "admob_sdk";
public const string AdjustAdRevenueSourceIronSource = "ironsource_sdk";
public const string AdjustAdRevenueSourceAdmost = "admost_sdk";
public const string AdjustAdRevenueSourceUnity = "unity_sdk";
public const string AdjustAdRevenueSourceHeliumChartboost = "helium_chartboost_sdk";
public const string AdjustAdRevenueSourcePublisher = "publisher_sdk";
internal string appToken;
internal string sceneName;
internal string userAgent;
internal string defaultTracker;
internal string externalDeviceId;
internal string urlStrategy;
internal long? info1;
internal long? info2;
internal long? info3;
internal long? info4;
internal long? secretId;
internal double? delayStart;
internal bool? isDeviceKnown;
internal bool? sendInBackground;
internal bool? eventBufferingEnabled;
internal bool? coppaCompliantEnabled;
internal bool? playStoreKidsAppEnabled;
internal bool? allowSuppressLogLevel;
internal bool? needsCost;
internal bool launchDeferredDeeplink;
internal AdjustLogLevel? logLevel;
internal AdjustEnvironment environment;
internal Action<string> deferredDeeplinkDelegate;
internal Action<AdjustEventSuccess> eventSuccessDelegate;
internal Action<AdjustEventFailure> eventFailureDelegate;
internal Action<AdjustSessionSuccess> sessionSuccessDelegate;
internal Action<AdjustSessionFailure> sessionFailureDelegate;
internal Action<AdjustAttribution> attributionChangedDelegate;
internal Action<int> conversionValueUpdatedDelegate;
// Android specific members
internal string processName;
internal bool? readImei;
internal bool? preinstallTrackingEnabled;
internal string preinstallFilePath;
// iOS specific members
internal bool? allowiAdInfoReading;
internal bool? allowAdServicesInfoReading;
internal bool? allowIdfaReading;
internal bool? skAdNetworkHandling;
internal bool? linkMeEnabled;
// Windows specific members
internal Action<String> logDelegate;
public AdjustConfig(string appToken, AdjustEnvironment environment)
{
this.sceneName = "";
this.processName = "";
this.appToken = appToken;
this.environment = environment;
}
public AdjustConfig(string appToken, AdjustEnvironment environment, bool allowSuppressLogLevel)
{
this.sceneName = "";
this.processName = "";
this.appToken = appToken;
this.environment = environment;
this.allowSuppressLogLevel = allowSuppressLogLevel;
}
public void setLogLevel(AdjustLogLevel logLevel)
{
this.logLevel = logLevel;
}
public void setDefaultTracker(string defaultTracker)
{
this.defaultTracker = defaultTracker;
}
public void setExternalDeviceId(string externalDeviceId)
{
this.externalDeviceId = externalDeviceId;
}
public void setLaunchDeferredDeeplink(bool launchDeferredDeeplink)
{
this.launchDeferredDeeplink = launchDeferredDeeplink;
}
public void setSendInBackground(bool sendInBackground)
{
this.sendInBackground = sendInBackground;
}
public void setEventBufferingEnabled(bool eventBufferingEnabled)
{
this.eventBufferingEnabled = eventBufferingEnabled;
}
public void setCoppaCompliantEnabled(bool coppaCompliantEnabled)
{
this.coppaCompliantEnabled = coppaCompliantEnabled;
}
public void setPlayStoreKidsAppEnabled(bool playStoreKidsAppEnabled)
{
this.playStoreKidsAppEnabled = playStoreKidsAppEnabled;
}
public void setNeedsCost(bool needsCost)
{
this.needsCost = needsCost;
}
public void setDelayStart(double delayStart)
{
this.delayStart = delayStart;
}
public void setUserAgent(string userAgent)
{
this.userAgent = userAgent;
}
public void setIsDeviceKnown(bool isDeviceKnown)
{
this.isDeviceKnown = isDeviceKnown;
}
public void setUrlStrategy(String urlStrategy)
{
this.urlStrategy = urlStrategy;
}
public void deactivateSKAdNetworkHandling()
{
this.skAdNetworkHandling = true;
}
public void setLinkMeEnabled(bool linkMeEnabled)
{
this.linkMeEnabled = linkMeEnabled;
}
public void setDeferredDeeplinkDelegate(Action<string> deferredDeeplinkDelegate, string sceneName = "Adjust")
{
this.deferredDeeplinkDelegate = deferredDeeplinkDelegate;
this.sceneName = sceneName;
}
public Action<string> getDeferredDeeplinkDelegate()
{
return this.deferredDeeplinkDelegate;
}
public void setAttributionChangedDelegate(Action<AdjustAttribution> attributionChangedDelegate, string sceneName = "Adjust")
{
this.attributionChangedDelegate = attributionChangedDelegate;
this.sceneName = sceneName;
}
public Action<AdjustAttribution> getAttributionChangedDelegate()
{
return this.attributionChangedDelegate;
}
public void setEventSuccessDelegate(Action<AdjustEventSuccess> eventSuccessDelegate, string sceneName = "Adjust")
{
this.eventSuccessDelegate = eventSuccessDelegate;
this.sceneName = sceneName;
}
public Action<AdjustEventSuccess> getEventSuccessDelegate()
{
return this.eventSuccessDelegate;
}
public void setEventFailureDelegate(Action<AdjustEventFailure> eventFailureDelegate, string sceneName = "Adjust")
{
this.eventFailureDelegate = eventFailureDelegate;
this.sceneName = sceneName;
}
public Action<AdjustEventFailure> getEventFailureDelegate()
{
return this.eventFailureDelegate;
}
public void setSessionSuccessDelegate(Action<AdjustSessionSuccess> sessionSuccessDelegate, string sceneName = "Adjust")
{
this.sessionSuccessDelegate = sessionSuccessDelegate;
this.sceneName = sceneName;
}
public Action<AdjustSessionSuccess> getSessionSuccessDelegate()
{
return this.sessionSuccessDelegate;
}
public void setSessionFailureDelegate(Action<AdjustSessionFailure> sessionFailureDelegate, string sceneName = "Adjust")
{
this.sessionFailureDelegate = sessionFailureDelegate;
this.sceneName = sceneName;
}
public Action<AdjustSessionFailure> getSessionFailureDelegate()
{
return this.sessionFailureDelegate;
}
public void setConversionValueUpdatedDelegate(Action<int> conversionValueUpdatedDelegate, string sceneName = "Adjust")
{
this.conversionValueUpdatedDelegate = conversionValueUpdatedDelegate;
this.sceneName = sceneName;
}
public Action<int> getConversionValueUpdatedDelegate()
{
return this.conversionValueUpdatedDelegate;
}
public void setAppSecret(long secretId, long info1, long info2, long info3, long info4)
{
this.secretId = secretId;
this.info1 = info1;
this.info2 = info2;
this.info3 = info3;
this.info4 = info4;
}
// iOS specific methods.
public void setAllowiAdInfoReading(bool allowiAdInfoReading)
{
this.allowiAdInfoReading = allowiAdInfoReading;
}
public void setAllowAdServicesInfoReading(bool allowAdServicesInfoReading)
{
this.allowAdServicesInfoReading = allowAdServicesInfoReading;
}
public void setAllowIdfaReading(bool allowIdfaReading)
{
this.allowIdfaReading = allowIdfaReading;
}
// Android specific methods.
public void setProcessName(string processName)
{
this.processName = processName;
}
[Obsolete("This is an obsolete method.")]
public void setReadMobileEquipmentIdentity(bool readMobileEquipmentIdentity)
{
// this.readImei = readMobileEquipmentIdentity;
}
public void setPreinstallTrackingEnabled(bool preinstallTrackingEnabled)
{
this.preinstallTrackingEnabled = preinstallTrackingEnabled;
}
public void setPreinstallFilePath(string preinstallFilePath)
{
this.preinstallFilePath = preinstallFilePath;
}
// Windows specific methods.
public void setLogDelegate(Action<String> logDelegate)
{
this.logDelegate = logDelegate;
}
}
}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 02d4cad14fc094b17afde3b685897e5e
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:

View File

@@ -0,0 +1,25 @@
namespace com.adjust.sdk
{
[System.Serializable]
public enum AdjustEnvironment
{
Sandbox,
Production
}
public static class AdjustEnvironmentExtension
{
public static string ToLowercaseString(this AdjustEnvironment adjustEnvironment)
{
switch (adjustEnvironment)
{
case AdjustEnvironment.Sandbox:
return "sandbox";
case AdjustEnvironment.Production:
return "production";
default:
return "unknown";
}
}
}
}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 633f6fa279b2244fdb999db0441f9aac
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:

View File

@@ -0,0 +1,70 @@
using System;
using System.Collections.Generic;
namespace com.adjust.sdk
{
public class AdjustEvent
{
internal string currency;
internal string eventToken;
internal string callbackId;
internal string transactionId;
internal double? revenue;
internal List<string> partnerList;
internal List<string> callbackList;
// iOS specific members
internal string receipt;
internal bool isReceiptSet;
public AdjustEvent(string eventToken)
{
this.eventToken = eventToken;
this.isReceiptSet = false;
}
public void setRevenue(double amount, string currency)
{
this.revenue = amount;
this.currency = currency;
}
public void addCallbackParameter(string key, string value)
{
if (callbackList == null)
{
callbackList = new List<string>();
}
callbackList.Add(key);
callbackList.Add(value);
}
public void addPartnerParameter(string key, string value)
{
if (partnerList == null)
{
partnerList = new List<string>();
}
partnerList.Add(key);
partnerList.Add(value);
}
public void setTransactionId(string transactionId)
{
this.transactionId = transactionId;
}
public void setCallbackId(string callbackId)
{
this.callbackId = callbackId;
}
// iOS specific methods
[Obsolete("This is an obsolete method. Please use the adjust purchase SDK for purchase verification (https://github.com/adjust/unity_purchase_sdk)")]
public void setReceipt(string receipt, string transactionId)
{
this.receipt = receipt;
this.transactionId = transactionId;
this.isReceiptSet = true;
}
}
}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: cd89f7713977f497a862f1a1b6f60933
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:

View File

@@ -0,0 +1,92 @@
using System;
using System.Collections.Generic;
namespace com.adjust.sdk
{
public class AdjustEventFailure
{
public string Adid { get; set; }
public string Message { get; set; }
public string Timestamp { get; set; }
public string EventToken { get; set; }
public string CallbackId { get; set; }
public bool WillRetry { get; set; }
public Dictionary<string, object> JsonResponse { get; set; }
public AdjustEventFailure() {}
public AdjustEventFailure(Dictionary<string, string> eventFailureDataMap)
{
if (eventFailureDataMap == null)
{
return;
}
Adid = AdjustUtils.TryGetValue(eventFailureDataMap, AdjustUtils.KeyAdid);
Message = AdjustUtils.TryGetValue(eventFailureDataMap, AdjustUtils.KeyMessage);
Timestamp = AdjustUtils.TryGetValue(eventFailureDataMap, AdjustUtils.KeyTimestamp);
EventToken = AdjustUtils.TryGetValue(eventFailureDataMap, AdjustUtils.KeyEventToken);
CallbackId = AdjustUtils.TryGetValue(eventFailureDataMap, AdjustUtils.KeyCallbackId);
bool willRetry;
if (bool.TryParse(AdjustUtils.TryGetValue(eventFailureDataMap, AdjustUtils.KeyWillRetry), out willRetry))
{
WillRetry = willRetry;
}
string jsonResponseString = AdjustUtils.TryGetValue(eventFailureDataMap, AdjustUtils.KeyJsonResponse);
var jsonResponseNode = JSON.Parse(jsonResponseString);
if (jsonResponseNode != null && jsonResponseNode.AsObject != null)
{
JsonResponse = new Dictionary<string, object>();
AdjustUtils.WriteJsonResponseDictionary(jsonResponseNode.AsObject, JsonResponse);
}
}
public AdjustEventFailure(string jsonString)
{
var jsonNode = JSON.Parse(jsonString);
if (jsonNode == null)
{
return;
}
Adid = AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyAdid);
Message = AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyMessage);
Timestamp = AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyTimestamp);
EventToken = AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyEventToken);
CallbackId = AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyCallbackId);
WillRetry = Convert.ToBoolean(AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyWillRetry));
var jsonResponseNode = jsonNode[AdjustUtils.KeyJsonResponse];
if (jsonResponseNode == null)
{
return;
}
if (jsonResponseNode.AsObject == null)
{
return;
}
JsonResponse = new Dictionary<string, object>();
AdjustUtils.WriteJsonResponseDictionary(jsonResponseNode.AsObject, JsonResponse);
}
public void BuildJsonResponseFromString(string jsonResponseString)
{
var jsonNode = JSON.Parse(jsonResponseString);
if (jsonNode == null)
{
return;
}
JsonResponse = new Dictionary<string, object>();
AdjustUtils.WriteJsonResponseDictionary(jsonNode.AsObject, JsonResponse);
}
public string GetJsonResponse()
{
return AdjustUtils.GetJsonResponseCompact(JsonResponse);
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: ea86cd4e1c6d0496397920902d0f0b5f
timeCreated: 1458128791
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,85 @@
using System;
using System.Collections.Generic;
namespace com.adjust.sdk
{
public class AdjustEventSuccess
{
public string Adid { get; set; }
public string Message { get; set; }
public string Timestamp { get; set; }
public string EventToken { get; set; }
public string CallbackId { get; set; }
public Dictionary<string, object> JsonResponse { get; set; }
public AdjustEventSuccess() {}
public AdjustEventSuccess(Dictionary<string, string> eventSuccessDataMap)
{
if (eventSuccessDataMap == null)
{
return;
}
Adid = AdjustUtils.TryGetValue(eventSuccessDataMap, AdjustUtils.KeyAdid);
Message = AdjustUtils.TryGetValue(eventSuccessDataMap, AdjustUtils.KeyMessage);
Timestamp = AdjustUtils.TryGetValue(eventSuccessDataMap, AdjustUtils.KeyTimestamp);
EventToken = AdjustUtils.TryGetValue(eventSuccessDataMap, AdjustUtils.KeyEventToken);
CallbackId = AdjustUtils.TryGetValue(eventSuccessDataMap, AdjustUtils.KeyCallbackId);
string jsonResponseString = AdjustUtils.TryGetValue(eventSuccessDataMap, AdjustUtils.KeyJsonResponse);
var jsonResponseNode = JSON.Parse(jsonResponseString);
if (jsonResponseNode != null && jsonResponseNode.AsObject != null)
{
JsonResponse = new Dictionary<string, object>();
AdjustUtils.WriteJsonResponseDictionary(jsonResponseNode.AsObject, JsonResponse);
}
}
public AdjustEventSuccess(string jsonString)
{
var jsonNode = JSON.Parse(jsonString);
if (jsonNode == null)
{
return;
}
Adid = AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyAdid);
Message = AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyMessage);
Timestamp = AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyTimestamp);
EventToken = AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyEventToken);
CallbackId = AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyCallbackId);
var jsonResponseNode = jsonNode[AdjustUtils.KeyJsonResponse];
if (jsonResponseNode == null)
{
return;
}
if (jsonResponseNode.AsObject == null)
{
return;
}
JsonResponse = new Dictionary<string, object>();
AdjustUtils.WriteJsonResponseDictionary(jsonResponseNode.AsObject, JsonResponse);
}
public void BuildJsonResponseFromString(string jsonResponseString)
{
var jsonNode = JSON.Parse(jsonResponseString);
if (jsonNode == null)
{
return;
}
JsonResponse = new Dictionary<string, object>();
AdjustUtils.WriteJsonResponseDictionary(jsonNode.AsObject, JsonResponse);
}
public string GetJsonResponse()
{
return AdjustUtils.GetJsonResponseCompact(JsonResponse);
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 1957a0e6e9aa14f0e8adefa2120f1e02
timeCreated: 1458128791
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,63 @@
namespace com.adjust.sdk
{
[System.Serializable]
public enum AdjustLogLevel
{
Verbose = 1,
Debug,
Info,
Warn,
Error,
Assert,
Suppress
}
public static class AdjustLogLevelExtension
{
public static string ToLowercaseString(this AdjustLogLevel AdjustLogLevel)
{
switch (AdjustLogLevel)
{
case AdjustLogLevel.Verbose:
return "verbose";
case AdjustLogLevel.Debug:
return "debug";
case AdjustLogLevel.Info:
return "info";
case AdjustLogLevel.Warn:
return "warn";
case AdjustLogLevel.Error:
return "error";
case AdjustLogLevel.Assert:
return "assert";
case AdjustLogLevel.Suppress:
return "suppress";
default:
return "unknown";
}
}
public static string ToUppercaseString(this AdjustLogLevel AdjustLogLevel)
{
switch (AdjustLogLevel)
{
case AdjustLogLevel.Verbose:
return "VERBOSE";
case AdjustLogLevel.Debug:
return "DEBUG";
case AdjustLogLevel.Info:
return "INFO";
case AdjustLogLevel.Warn:
return "WARN";
case AdjustLogLevel.Error:
return "ERROR";
case AdjustLogLevel.Assert:
return "ASSERT";
case AdjustLogLevel.Suppress:
return "SUPPRESS";
default:
return "UNKNOWN";
}
}
}
}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 428ab44990df24973902248a9d2b43dd
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:

View File

@@ -0,0 +1,54 @@
using System;
using System.Collections.Generic;
namespace com.adjust.sdk
{
public class AdjustPlayStoreSubscription
{
internal string price;
internal string currency;
internal string sku;
internal string orderId;
internal string signature;
internal string purchaseToken;
internal string billingStore;
internal string purchaseTime;
internal List<string> partnerList;
internal List<string> callbackList;
public AdjustPlayStoreSubscription(string price, string currency, string sku, string orderId, string signature, string purchaseToken)
{
this.price = price;
this.currency = currency;
this.sku = sku;
this.orderId = orderId;
this.signature = signature;
this.purchaseToken = purchaseToken;
}
public void setPurchaseTime(string purchaseTime)
{
this.purchaseTime = purchaseTime;
}
public void addCallbackParameter(string key, string value)
{
if (callbackList == null)
{
callbackList = new List<string>();
}
callbackList.Add(key);
callbackList.Add(value);
}
public void addPartnerParameter(string key, string value)
{
if (partnerList == null)
{
partnerList = new List<string>();
}
partnerList.Add(key);
partnerList.Add(value);
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 69e7a4074abb44758b3f011d8352a57a
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,86 @@
using System;
using System.Collections.Generic;
namespace com.adjust.sdk
{
public class AdjustSessionFailure
{
public string Adid { get; set; }
public string Message { get; set; }
public string Timestamp { get; set; }
public bool WillRetry { get; set; }
public Dictionary<string, object> JsonResponse { get; set; }
public AdjustSessionFailure() {}
public AdjustSessionFailure(Dictionary<string, string> sessionFailureDataMap)
{
if (sessionFailureDataMap == null)
{
return;
}
Adid = AdjustUtils.TryGetValue(sessionFailureDataMap, AdjustUtils.KeyAdid);
Message = AdjustUtils.TryGetValue(sessionFailureDataMap, AdjustUtils.KeyMessage);
Timestamp = AdjustUtils.TryGetValue(sessionFailureDataMap, AdjustUtils.KeyTimestamp);
bool willRetry;
if (bool.TryParse(AdjustUtils.TryGetValue(sessionFailureDataMap, AdjustUtils.KeyWillRetry), out willRetry))
{
WillRetry = willRetry;
}
string jsonResponseString = AdjustUtils.TryGetValue(sessionFailureDataMap, AdjustUtils.KeyJsonResponse);
var jsonResponseNode = JSON.Parse(jsonResponseString);
if (jsonResponseNode != null && jsonResponseNode.AsObject != null)
{
JsonResponse = new Dictionary<string, object>();
AdjustUtils.WriteJsonResponseDictionary(jsonResponseNode.AsObject, JsonResponse);
}
}
public AdjustSessionFailure(string jsonString)
{
var jsonNode = JSON.Parse(jsonString);
if (jsonNode == null)
{
return;
}
Adid = AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyAdid);
Message = AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyMessage);
Timestamp = AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyTimestamp);
WillRetry = Convert.ToBoolean(AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyWillRetry));
var jsonResponseNode = jsonNode[AdjustUtils.KeyJsonResponse];
if (jsonResponseNode == null)
{
return;
}
if (jsonResponseNode.AsObject == null)
{
return;
}
JsonResponse = new Dictionary<string, object>();
AdjustUtils.WriteJsonResponseDictionary(jsonResponseNode.AsObject, JsonResponse);
}
public void BuildJsonResponseFromString(string jsonResponseString)
{
var jsonNode = JSON.Parse(jsonResponseString);
if (jsonNode == null)
{
return;
}
JsonResponse = new Dictionary<string, object>();
AdjustUtils.WriteJsonResponseDictionary(jsonNode.AsObject, JsonResponse);
}
public string GetJsonResponse()
{
return AdjustUtils.GetJsonResponseCompact(JsonResponse);
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: b4de268ab985448a594fb82264190742
timeCreated: 1458128791
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,78 @@
using System;
using System.Collections.Generic;
namespace com.adjust.sdk
{
public class AdjustSessionSuccess
{
public string Adid { get; set; }
public string Message { get; set; }
public string Timestamp { get; set; }
public Dictionary<string, object> JsonResponse { get; set; }
public AdjustSessionSuccess() {}
public AdjustSessionSuccess(Dictionary<string, string> sessionSuccessDataMap)
{
if (sessionSuccessDataMap == null)
{
return;
}
Adid = AdjustUtils.TryGetValue(sessionSuccessDataMap, AdjustUtils.KeyAdid);
Message = AdjustUtils.TryGetValue(sessionSuccessDataMap, AdjustUtils.KeyMessage);
Timestamp = AdjustUtils.TryGetValue(sessionSuccessDataMap, AdjustUtils.KeyTimestamp);
string jsonResponseString = AdjustUtils.TryGetValue(sessionSuccessDataMap, AdjustUtils.KeyJsonResponse);
var jsonResponseNode = JSON.Parse(jsonResponseString);
if (jsonResponseNode != null && jsonResponseNode.AsObject != null)
{
JsonResponse = new Dictionary<string, object>();
AdjustUtils.WriteJsonResponseDictionary(jsonResponseNode.AsObject, JsonResponse);
}
}
public AdjustSessionSuccess(string jsonString)
{
var jsonNode = JSON.Parse(jsonString);
if (jsonNode == null)
{
return;
}
Adid = AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyAdid);
Message = AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyMessage);
Timestamp = AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyTimestamp);
var jsonResponseNode = jsonNode[AdjustUtils.KeyJsonResponse];
if (jsonResponseNode == null)
{
return;
}
if (jsonResponseNode.AsObject == null)
{
return;
}
JsonResponse = new Dictionary<string, object>();
AdjustUtils.WriteJsonResponseDictionary(jsonResponseNode.AsObject, JsonResponse);
}
public void BuildJsonResponseFromString(string jsonResponseString)
{
var jsonNode = JSON.Parse(jsonResponseString);
if (jsonNode == null)
{
return;
}
JsonResponse = new Dictionary<string, object>();
AdjustUtils.WriteJsonResponseDictionary(jsonNode.AsObject, JsonResponse);
}
public string GetJsonResponse()
{
return AdjustUtils.GetJsonResponseCompact(JsonResponse);
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: c23847e7a1f464d7a8c7f9b35829af17
timeCreated: 1458128791
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,65 @@
using System;
using System.Collections.Generic;
namespace com.adjust.sdk
{
public class AdjustThirdPartySharing
{
internal bool? isEnabled;
internal Dictionary<string, List<string>> granularOptions;
internal Dictionary<string, List<string>> partnerSharingSettings;
public AdjustThirdPartySharing(bool? isEnabled)
{
this.isEnabled = isEnabled;
this.granularOptions = new Dictionary<string, List<string>>();
this.partnerSharingSettings = new Dictionary<string, List<string>>();
}
public void addGranularOption(string partnerName, string key, string value)
{
// TODO: consider to add some logs about the error case
if (partnerName == null || key == null || value == null)
{
return;
}
List<string> partnerOptions;
if (granularOptions.ContainsKey(partnerName))
{
partnerOptions = granularOptions[partnerName];
}
else
{
partnerOptions = new List<string>();
granularOptions.Add(partnerName, partnerOptions);
}
partnerOptions.Add(key);
partnerOptions.Add(value);
}
public void addPartnerSharingSetting(string partnerName, string key, bool value)
{
// TODO: consider to add some logs about the error case
if (partnerName == null || key == null)
{
return;
}
List<string> partnerSharingSetting;
if (partnerSharingSettings.ContainsKey(partnerName))
{
partnerSharingSetting = partnerSharingSettings[partnerName];
}
else
{
partnerSharingSetting = new List<string>();
partnerSharingSettings.Add(partnerName, partnerSharingSetting);
}
partnerSharingSetting.Add(key);
partnerSharingSetting.Add(value.ToString());
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: dcb2591dfab904327904b8879af699ca
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,30 @@
namespace com.adjust.sdk
{
[System.Serializable]
public enum AdjustUrlStrategy
{
Default,
DataResidencyEU,
DataResidencyTK,
DataResidencyUS,
India,
China,
}
public static class AdjustUrlStrategyExtension
{
public static string ToLowerCaseString(this AdjustUrlStrategy strategy)
{
switch (strategy)
{
case AdjustUrlStrategy.India: return "india";
case AdjustUrlStrategy.China: return "china";
case AdjustUrlStrategy.DataResidencyEU: return "data-residency-eu";
case AdjustUrlStrategy.DataResidencyTK: return "data-residency-tr";
case AdjustUrlStrategy.DataResidencyUS: return "data-residency-us";
default: return string.Empty;
}
}
}
}

View File

@@ -0,0 +1,13 @@
fileFormatVersion: 2
guid: 034243ca816f644dc97675a908e24e8c
timeCreated: 1617092915
licenseType: Free
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,325 @@
using System;
using System.Collections.Generic;
using UnityEngine;
namespace com.adjust.sdk
{
public class AdjustUtils
{
public static string KeyAdid = "adid";
public static string KeyMessage = "message";
public static string KeyNetwork = "network";
public static string KeyAdgroup = "adgroup";
public static string KeyCampaign = "campaign";
public static string KeyCreative = "creative";
public static string KeyWillRetry = "willRetry";
public static string KeyTimestamp = "timestamp";
public static string KeyCallbackId = "callbackId";
public static string KeyEventToken = "eventToken";
public static string KeyClickLabel = "clickLabel";
public static string KeyTrackerName = "trackerName";
public static string KeyTrackerToken = "trackerToken";
public static string KeyJsonResponse = "jsonResponse";
public static string KeyCostType = "costType";
public static string KeyCostAmount = "costAmount";
public static string KeyCostCurrency = "costCurrency";
public static string KeyFbInstallReferrer = "fbInstallReferrer";
// For testing purposes.
public static string KeyTestOptionsBaseUrl = "baseUrl";
public static string KeyTestOptionsGdprUrl = "gdprUrl";
public static string KeyTestOptionsSubscriptionUrl = "subscriptionUrl";
public static string KeyTestOptionsExtraPath = "extraPath";
public static string KeyTestOptionsBasePath = "basePath";
public static string KeyTestOptionsGdprPath = "gdprPath";
public static string KeyTestOptionsDeleteState = "deleteState";
public static string KeyTestOptionsUseTestConnectionOptions = "useTestConnectionOptions";
public static string KeyTestOptionsTimerIntervalInMilliseconds = "timerIntervalInMilliseconds";
public static string KeyTestOptionsTimerStartInMilliseconds = "timerStartInMilliseconds";
public static string KeyTestOptionsSessionIntervalInMilliseconds = "sessionIntervalInMilliseconds";
public static string KeyTestOptionsSubsessionIntervalInMilliseconds = "subsessionIntervalInMilliseconds";
public static string KeyTestOptionsTeardown = "teardown";
public static string KeyTestOptionsNoBackoffWait = "noBackoffWait";
public static string KeyTestOptionsiAdFrameworkEnabled = "iAdFrameworkEnabled";
public static string KeyTestOptionsAdServicesFrameworkEnabled = "adServicesFrameworkEnabled";
public static int ConvertLogLevel(AdjustLogLevel? logLevel)
{
if (logLevel == null)
{
return -1;
}
return (int)logLevel;
}
public static int ConvertBool(bool? value)
{
if (value == null)
{
return -1;
}
if (value.Value)
{
return 1;
}
else
{
return 0;
}
}
public static double ConvertDouble(double? value)
{
if (value == null)
{
return -1;
}
return (double)value;
}
public static int ConvertInt(int? value)
{
if (value == null)
{
return -1;
}
return (int)value;
}
public static long ConvertLong(long? value)
{
if (value == null)
{
return -1;
}
return (long)value;
}
public static string ConvertListToJson(List<String> list)
{
if (list == null)
{
return null;
}
// list of callback / partner parameters must contain even number of elements
if (list.Count % 2 != 0)
{
return null;
}
List<String> processedList = new List<String>();
for (int i = 0; i < list.Count; i += 2)
{
String key = list[i];
String value = list[i + 1];
if (key == null || value == null)
{
continue;
}
processedList.Add(key);
processedList.Add(value);
}
// create JSON array
var jsonArray = new JSONArray();
foreach (var listItem in processedList)
{
jsonArray.Add(new JSONData(listItem));
}
return jsonArray.ToString();
}
public static string GetJsonResponseCompact(Dictionary<string, object> dictionary)
{
string logJsonResponse = "";
if (dictionary == null)
{
return logJsonResponse;
}
else
{
int preLoopCounter = 0;
logJsonResponse += "{";
foreach (KeyValuePair<string, object> pair in dictionary)
{
String valueString = pair.Value as string;
if (valueString != null)
{
if (++preLoopCounter > 1)
{
logJsonResponse += ",";
}
// if the value is another JSON/complex-structure
if (valueString.StartsWith("{") && valueString.EndsWith("}"))
{
logJsonResponse += "\"" + pair.Key + "\"" + ":" + valueString;
}
else
{
logJsonResponse += "\"" + pair.Key + "\"" + ":" + "\"" + valueString + "\"";
}
continue;
}
Dictionary<string, object> valueDictionary = pair.Value as Dictionary<string, object>;
if (++preLoopCounter > 1)
{
logJsonResponse += ",";
}
logJsonResponse += "\"" + pair.Key + "\"" + ":";
logJsonResponse += GetJsonResponseCompact(valueDictionary);
}
logJsonResponse += "}";
}
return logJsonResponse;
}
public static String GetJsonString(JSONNode node, string key)
{
if (node == null)
{
return null;
}
// Access value object and cast it to JSONData.
var nodeValue = node[key] as JSONData;
if (nodeValue == null)
{
return null;
}
// https://github.com/adjust/unity_sdk/issues/137
if (nodeValue == "")
{
return null;
}
return nodeValue.Value;
}
public static void WriteJsonResponseDictionary(JSONClass jsonObject, Dictionary<string, object> output)
{
foreach (KeyValuePair<string, JSONNode> pair in jsonObject)
{
// Try to cast value as a complex object.
var subNode = pair.Value.AsObject;
var key = pair.Key;
// Value is not a complex object.
if (subNode == null)
{
var value = pair.Value.Value;
output.Add(key, value);
continue;
}
// Create new dictionary for complex type.
var newSubDictionary = new Dictionary<string, object>();
// Save it in the current dictionary.
output.Add(key, newSubDictionary);
// Recursive call to fill new dictionary.
WriteJsonResponseDictionary(subNode, newSubDictionary);
}
}
public static string TryGetValue(Dictionary<string, string> dictionary, string key)
{
string value;
if (dictionary.TryGetValue(key, out value))
{
// https://github.com/adjust/unity_sdk/issues/137
if (value == "")
{
return null;
}
return value;
}
return null;
}
#if UNITY_ANDROID
public static AndroidJavaObject TestOptionsMap2AndroidJavaObject(Dictionary<string, string> testOptionsMap, AndroidJavaObject ajoCurrentActivity)
{
AndroidJavaObject ajoTestOptions = new AndroidJavaObject("com.adjust.sdk.AdjustTestOptions");
ajoTestOptions.Set<String>("baseUrl", testOptionsMap[KeyTestOptionsBaseUrl]);
ajoTestOptions.Set<String>("gdprUrl", testOptionsMap[KeyTestOptionsGdprUrl]);
ajoTestOptions.Set<String>("subscriptionUrl", testOptionsMap[KeyTestOptionsSubscriptionUrl]);
if (testOptionsMap.ContainsKey(KeyTestOptionsExtraPath) && !string.IsNullOrEmpty(testOptionsMap[KeyTestOptionsExtraPath]))
{
ajoTestOptions.Set<String>("basePath", testOptionsMap[KeyTestOptionsExtraPath]);
ajoTestOptions.Set<String>("gdprPath", testOptionsMap[KeyTestOptionsExtraPath]);
ajoTestOptions.Set<String>("subscriptionPath", testOptionsMap[KeyTestOptionsExtraPath]);
}
if (testOptionsMap.ContainsKey(KeyTestOptionsDeleteState) && ajoCurrentActivity != null)
{
ajoTestOptions.Set<AndroidJavaObject>("context", ajoCurrentActivity);
}
if (testOptionsMap.ContainsKey(KeyTestOptionsUseTestConnectionOptions))
{
bool useTestConnectionOptions = testOptionsMap[KeyTestOptionsUseTestConnectionOptions].ToLower() == "true";
AndroidJavaObject ajoUseTestConnectionOptions = new AndroidJavaObject("java.lang.Boolean", useTestConnectionOptions);
ajoTestOptions.Set<AndroidJavaObject>("useTestConnectionOptions", ajoUseTestConnectionOptions);
}
if (testOptionsMap.ContainsKey(KeyTestOptionsTimerIntervalInMilliseconds))
{
var timerIntervalInMilliseconds = long.Parse(testOptionsMap[KeyTestOptionsTimerIntervalInMilliseconds]);
AndroidJavaObject ajoTimerIntervalInMilliseconds = new AndroidJavaObject("java.lang.Long", timerIntervalInMilliseconds);
ajoTestOptions.Set<AndroidJavaObject>("timerIntervalInMilliseconds", ajoTimerIntervalInMilliseconds);
}
if (testOptionsMap.ContainsKey(KeyTestOptionsTimerStartInMilliseconds))
{
var timerStartInMilliseconds = long.Parse(testOptionsMap[KeyTestOptionsTimerStartInMilliseconds]);
AndroidJavaObject ajoTimerStartInMilliseconds = new AndroidJavaObject("java.lang.Long", timerStartInMilliseconds);
ajoTestOptions.Set<AndroidJavaObject>("timerStartInMilliseconds", ajoTimerStartInMilliseconds);
}
if (testOptionsMap.ContainsKey(KeyTestOptionsSessionIntervalInMilliseconds))
{
var sessionIntervalInMilliseconds = long.Parse(testOptionsMap[KeyTestOptionsSessionIntervalInMilliseconds]);
AndroidJavaObject ajoSessionIntervalInMilliseconds = new AndroidJavaObject("java.lang.Long", sessionIntervalInMilliseconds);
ajoTestOptions.Set<AndroidJavaObject>("sessionIntervalInMilliseconds", ajoSessionIntervalInMilliseconds);
}
if (testOptionsMap.ContainsKey(KeyTestOptionsSubsessionIntervalInMilliseconds))
{
var subsessionIntervalInMilliseconds = long.Parse(testOptionsMap[KeyTestOptionsSubsessionIntervalInMilliseconds]);
AndroidJavaObject ajoSubsessionIntervalInMilliseconds = new AndroidJavaObject("java.lang.Long", subsessionIntervalInMilliseconds);
ajoTestOptions.Set<AndroidJavaObject>("subsessionIntervalInMilliseconds", ajoSubsessionIntervalInMilliseconds);
}
if (testOptionsMap.ContainsKey(KeyTestOptionsTeardown))
{
bool teardown = testOptionsMap[KeyTestOptionsTeardown].ToLower() == "true";
AndroidJavaObject ajoTeardown = new AndroidJavaObject("java.lang.Boolean", teardown);
ajoTestOptions.Set<AndroidJavaObject>("teardown", ajoTeardown);
}
if (testOptionsMap.ContainsKey(KeyTestOptionsNoBackoffWait))
{
bool noBackoffWait = testOptionsMap[KeyTestOptionsNoBackoffWait].ToLower() == "true";
AndroidJavaObject ajoNoBackoffWait = new AndroidJavaObject("java.lang.Boolean", noBackoffWait);
ajoTestOptions.Set<AndroidJavaObject>("noBackoffWait", ajoNoBackoffWait);
}
return ajoTestOptions;
}
#endif
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 98e51a1481cc24ddebf93f61f6c1eb9d
timeCreated: 1458230617
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: