init
This commit is contained in:
1016
Assets/Adjust/Unity/Adjust.cs
Normal file
1016
Assets/Adjust/Unity/Adjust.cs
Normal file
File diff suppressed because it is too large
Load Diff
8
Assets/Adjust/Unity/Adjust.cs.meta
Normal file
8
Assets/Adjust/Unity/Adjust.cs.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 525ece82a472e4dea837e1ef938fd15d
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
69
Assets/Adjust/Unity/AdjustAdRevenue.cs
Normal file
69
Assets/Adjust/Unity/AdjustAdRevenue.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/Adjust/Unity/AdjustAdRevenue.cs.meta
Normal file
11
Assets/Adjust/Unity/AdjustAdRevenue.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 776a9d4b715bc44c68724248a5a75cb9
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
56
Assets/Adjust/Unity/AdjustAppStoreSubscription.cs
Normal file
56
Assets/Adjust/Unity/AdjustAppStoreSubscription.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/Adjust/Unity/AdjustAppStoreSubscription.cs.meta
Normal file
11
Assets/Adjust/Unity/AdjustAppStoreSubscription.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7e2d69221b1124370a4c016edce5a95a
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
85
Assets/Adjust/Unity/AdjustAttribution.cs
Normal file
85
Assets/Adjust/Unity/AdjustAttribution.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
8
Assets/Adjust/Unity/AdjustAttribution.cs.meta
Normal file
8
Assets/Adjust/Unity/AdjustAttribution.cs.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cc46748ad0e664f6d839a4f1a23d9f47
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
289
Assets/Adjust/Unity/AdjustConfig.cs
Normal file
289
Assets/Adjust/Unity/AdjustConfig.cs
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
8
Assets/Adjust/Unity/AdjustConfig.cs.meta
Normal file
8
Assets/Adjust/Unity/AdjustConfig.cs.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 02d4cad14fc094b17afde3b685897e5e
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
25
Assets/Adjust/Unity/AdjustEnvironment.cs
Normal file
25
Assets/Adjust/Unity/AdjustEnvironment.cs
Normal 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";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
8
Assets/Adjust/Unity/AdjustEnvironment.cs.meta
Normal file
8
Assets/Adjust/Unity/AdjustEnvironment.cs.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 633f6fa279b2244fdb999db0441f9aac
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
70
Assets/Adjust/Unity/AdjustEvent.cs
Normal file
70
Assets/Adjust/Unity/AdjustEvent.cs
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
8
Assets/Adjust/Unity/AdjustEvent.cs.meta
Normal file
8
Assets/Adjust/Unity/AdjustEvent.cs.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cd89f7713977f497a862f1a1b6f60933
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
92
Assets/Adjust/Unity/AdjustEventFailure.cs
Normal file
92
Assets/Adjust/Unity/AdjustEventFailure.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
12
Assets/Adjust/Unity/AdjustEventFailure.cs.meta
Normal file
12
Assets/Adjust/Unity/AdjustEventFailure.cs.meta
Normal 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:
|
||||
85
Assets/Adjust/Unity/AdjustEventSuccess.cs
Normal file
85
Assets/Adjust/Unity/AdjustEventSuccess.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
12
Assets/Adjust/Unity/AdjustEventSuccess.cs.meta
Normal file
12
Assets/Adjust/Unity/AdjustEventSuccess.cs.meta
Normal 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:
|
||||
63
Assets/Adjust/Unity/AdjustLogLevel.cs
Normal file
63
Assets/Adjust/Unity/AdjustLogLevel.cs
Normal 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";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
8
Assets/Adjust/Unity/AdjustLogLevel.cs.meta
Normal file
8
Assets/Adjust/Unity/AdjustLogLevel.cs.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 428ab44990df24973902248a9d2b43dd
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
54
Assets/Adjust/Unity/AdjustPlayStoreSubscription.cs
Normal file
54
Assets/Adjust/Unity/AdjustPlayStoreSubscription.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/Adjust/Unity/AdjustPlayStoreSubscription.cs.meta
Normal file
11
Assets/Adjust/Unity/AdjustPlayStoreSubscription.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 69e7a4074abb44758b3f011d8352a57a
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
86
Assets/Adjust/Unity/AdjustSessionFailure.cs
Normal file
86
Assets/Adjust/Unity/AdjustSessionFailure.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
12
Assets/Adjust/Unity/AdjustSessionFailure.cs.meta
Normal file
12
Assets/Adjust/Unity/AdjustSessionFailure.cs.meta
Normal 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:
|
||||
78
Assets/Adjust/Unity/AdjustSessionSuccess.cs
Normal file
78
Assets/Adjust/Unity/AdjustSessionSuccess.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
12
Assets/Adjust/Unity/AdjustSessionSuccess.cs.meta
Normal file
12
Assets/Adjust/Unity/AdjustSessionSuccess.cs.meta
Normal 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:
|
||||
65
Assets/Adjust/Unity/AdjustThirdPartySharing.cs
Normal file
65
Assets/Adjust/Unity/AdjustThirdPartySharing.cs
Normal 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());
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/Adjust/Unity/AdjustThirdPartySharing.cs.meta
Normal file
11
Assets/Adjust/Unity/AdjustThirdPartySharing.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dcb2591dfab904327904b8879af699ca
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
30
Assets/Adjust/Unity/AdjustUrlStrategy.cs
Normal file
30
Assets/Adjust/Unity/AdjustUrlStrategy.cs
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
13
Assets/Adjust/Unity/AdjustUrlStrategy.cs.meta
Normal file
13
Assets/Adjust/Unity/AdjustUrlStrategy.cs.meta
Normal 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:
|
||||
325
Assets/Adjust/Unity/AdjustUtils.cs
Normal file
325
Assets/Adjust/Unity/AdjustUtils.cs
Normal 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
|
||||
}
|
||||
}
|
||||
12
Assets/Adjust/Unity/AdjustUtils.cs.meta
Normal file
12
Assets/Adjust/Unity/AdjustUtils.cs.meta
Normal 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:
|
||||
Reference in New Issue
Block a user