Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Assets/Adjust/Native/Editor/Dependencies.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<dependencies>
<androidPackages>
<androidPackage spec="com.adjust.sdk:adjust-android:5.4.5">
<androidPackage spec="com.adjust.sdk:adjust-android:5.4.6">
</androidPackage>
<androidPackage spec="com.android.installreferrer:installreferrer:2.2">
</androidPackage>
Expand Down
57 changes: 56 additions & 1 deletion Assets/Adjust/Scripts/Adjust.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;

namespace AdjustSdk
Expand Down Expand Up @@ -33,14 +34,32 @@ public class Adjust : MonoBehaviour
[HideInInspector]
public bool linkMe = false;
[HideInInspector]
public bool deviceIdsReadingOnce = false;
[HideInInspector]
public int eventDeduplicationIdsMaxSize = 0;
[HideInInspector]
public bool firstSessionDelay = false;
[HideInInspector]
public string defaultTracker;
[HideInInspector]
public string storeName;
[HideInInspector]
public string storeAppId;
[HideInInspector]
public List<string> urlStrategyDomains = new List<string>();
[HideInInspector]
public bool shouldUseSubdomains = false;
[HideInInspector]
public bool isDataResidency = false;

// [Header("ANDROID SPECIFIC FEATURES:")]
// [Space(5)]
[HideInInspector]
public bool preinstallTracking = false;
[HideInInspector]
public string preinstallFilePath;
[HideInInspector]
public string fbAppId;

// [Header("iOS SPECIFIC FEATURES:")]
// [Space(5)]
Expand All @@ -49,7 +68,13 @@ public class Adjust : MonoBehaviour
[HideInInspector]
public bool idfaReading = true;
[HideInInspector]
public bool idfvReading = true;
[HideInInspector]
public bool skanAttribution = true;
[HideInInspector]
public bool appTrackingTransparencyUsage = true;
[HideInInspector]
public int attConsentWaitingInterval = 0;

void Awake()
{
Expand Down Expand Up @@ -83,15 +108,45 @@ void Awake()
adjustConfig.IsSendingInBackgroundEnabled = this.sendInBackground;
adjustConfig.IsDeferredDeeplinkOpeningEnabled = this.launchDeferredDeeplink;
adjustConfig.DefaultTracker = this.defaultTracker;
// TODO: URL strategy
adjustConfig.IsCoppaComplianceEnabled = this.coppaCompliance;
adjustConfig.IsCostDataInAttributionEnabled = this.costDataInAttribution;
adjustConfig.IsDeviceIdsReadingOnceEnabled = this.deviceIdsReadingOnce;
if (this.eventDeduplicationIdsMaxSize > 0)
{
adjustConfig.EventDeduplicationIdsMaxSize = this.eventDeduplicationIdsMaxSize;
}
adjustConfig.IsFirstSessionDelayEnabled = this.firstSessionDelay;
if (!string.IsNullOrEmpty(this.storeName))
{
AdjustStoreInfo storeInfo = new AdjustStoreInfo(this.storeName);
if (!string.IsNullOrEmpty(this.storeAppId))
{
storeInfo.StoreAppId = this.storeAppId;
}
adjustConfig.StoreInfo = storeInfo;
}
if (this.urlStrategyDomains != null && this.urlStrategyDomains.Count > 0)
{
// Filter out empty strings
List<string> validDomains = this.urlStrategyDomains.Where(domain => !string.IsNullOrEmpty(domain)).ToList();
if (validDomains.Count > 0)
{
adjustConfig.SetUrlStrategy(validDomains, this.shouldUseSubdomains, this.isDataResidency);
}
}
adjustConfig.IsPreinstallTrackingEnabled = this.preinstallTracking;
adjustConfig.PreinstallFilePath = this.preinstallFilePath;
adjustConfig.FbAppId = this.fbAppId;
adjustConfig.IsAdServicesEnabled = this.adServices;
adjustConfig.IsIdfaReadingEnabled = this.idfaReading;
adjustConfig.IsIdfvReadingEnabled = this.idfvReading;
adjustConfig.IsLinkMeEnabled = this.linkMe;
adjustConfig.IsSkanAttributionEnabled = this.skanAttribution;
adjustConfig.IsAppTrackingTransparencyUsageEnabled = this.appTrackingTransparencyUsage;
if (this.attConsentWaitingInterval > 0)
{
adjustConfig.AttConsentWaitingInterval = this.attConsentWaitingInterval;
}
Adjust.InitSdk(adjustConfig);
}
}
Expand Down
2 changes: 1 addition & 1 deletion Assets/Adjust/Scripts/AdjustAndroid.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ namespace AdjustSdk
#if UNITY_ANDROID
public class AdjustAndroid
{
private const string sdkPrefix = "unity5.4.4";
private const string sdkPrefix = "unity5.4.5";
private static bool isDeferredDeeplinkOpeningEnabled = true;
private static AndroidJavaClass ajcAdjust = new AndroidJavaClass("com.adjust.sdk.Adjust");
private static AndroidJavaObject ajoCurrentActivity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity");
Expand Down
2 changes: 1 addition & 1 deletion Assets/Adjust/Scripts/AdjustiOS.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ namespace AdjustSdk
#if UNITY_IOS
public class AdjustiOS
{
private const string sdkPrefix = "unity5.4.4";
private const string sdkPrefix = "unity5.4.5";

// app callbacks as method parameters
private static List<Action<bool>> appIsEnabledGetterCallbacks;
Expand Down
61 changes: 51 additions & 10 deletions Assets/Adjust/Scripts/Editor/AdjustCustomEditor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,28 +31,69 @@ public override void OnInspectorGUI()
EditorGUILayout.Space();
EditorGUILayout.LabelField("MULTIPLATFORM SETTINGS:", darkerCyanTextFieldStyles);
EditorGUI.indentLevel += 1;
EditorGUILayout.Space();
adjust.appToken = EditorGUILayout.TextField("App Token", adjust.appToken);
adjust.environment = (AdjustEnvironment)EditorGUILayout.EnumPopup("Environment", adjust.environment);
adjust.logLevel = (AdjustLogLevel)EditorGUILayout.EnumPopup("Log Level", adjust.logLevel);
// TODO: URL strategy missing
adjust.firstSessionDelay = EditorGUILayout.Toggle("First Session Delay", adjust.firstSessionDelay);
adjust.sendInBackground = EditorGUILayout.Toggle("Send In Background", adjust.sendInBackground);
adjust.launchDeferredDeeplink = EditorGUILayout.Toggle("Launch Deferred Deep Link", adjust.launchDeferredDeeplink);
adjust.costDataInAttribution = EditorGUILayout.Toggle("Cost Data In Attribution Callback", adjust.costDataInAttribution);
adjust.linkMe = EditorGUILayout.Toggle("LinkMe", adjust.linkMe);
adjust.deviceIdsReadingOnce = EditorGUILayout.Toggle("Device IDs Reading Once", adjust.deviceIdsReadingOnce);
adjust.eventDeduplicationIdsMaxSize = EditorGUILayout.IntField("Event Deduplication IDs Count", adjust.eventDeduplicationIdsMaxSize);
adjust.defaultTracker = EditorGUILayout.TextField("Default Tracker", adjust.defaultTracker);
EditorGUI.indentLevel -= 1;

// Store Info section - visually grouped
EditorGUILayout.Space();
EditorGUILayout.LabelField("ANDROID SETTINGS:", darkerCyanTextFieldStyles);
EditorGUILayout.LabelField("Store Info:", EditorStyles.boldLabel);
EditorGUI.indentLevel += 1;
adjust.preinstallTracking = EditorGUILayout.Toggle("Preinstall Tracking", adjust.preinstallTracking);
adjust.preinstallFilePath = EditorGUILayout.TextField("Preinstall File Path", adjust.preinstallFilePath);
adjust.storeName = EditorGUILayout.TextField("Store Name", adjust.storeName);
adjust.storeAppId = EditorGUILayout.TextField("Store App ID", adjust.storeAppId);
EditorGUI.indentLevel -= 1;

// URL Strategy and Data Residency section - visually grouped
EditorGUILayout.Space();
EditorGUILayout.LabelField("IOS SETTINGS:", darkerCyanTextFieldStyles);
EditorGUILayout.LabelField("URL Strategy And Data Residency:", EditorStyles.boldLabel);
EditorGUI.indentLevel += 1;

// URL Strategy Domains list
if (adjust.urlStrategyDomains == null)
{
adjust.urlStrategyDomains = new System.Collections.Generic.List<string>();
}

EditorGUILayout.LabelField("URL Strategy Domains", EditorStyles.label);
EditorGUI.indentLevel += 1;
adjust.adServices = EditorGUILayout.Toggle("AdServices Info Reading", adjust.adServices);
adjust.idfaReading = EditorGUILayout.Toggle("IDFA Info Reading", adjust.idfaReading);
adjust.skanAttribution = EditorGUILayout.Toggle("SKAdNetwork Handling", adjust.skanAttribution);
int domainCount = adjust.urlStrategyDomains.Count;
int newDomainCount = EditorGUILayout.IntField("Size", domainCount);
if (newDomainCount != domainCount)
{
while (adjust.urlStrategyDomains.Count < newDomainCount)
{
adjust.urlStrategyDomains.Add("");
}
while (adjust.urlStrategyDomains.Count > newDomainCount)
{
adjust.urlStrategyDomains.RemoveAt(adjust.urlStrategyDomains.Count - 1);
}
}

for (int i = 0; i < adjust.urlStrategyDomains.Count; i++)
{
EditorGUILayout.BeginHorizontal();
adjust.urlStrategyDomains[i] = EditorGUILayout.TextField("Element " + i, adjust.urlStrategyDomains[i]);
if (GUILayout.Button("Remove", GUILayout.Width(60)))
{
adjust.urlStrategyDomains.RemoveAt(i);
break;
}
EditorGUILayout.EndHorizontal();
}
EditorGUI.indentLevel -= 1;

adjust.shouldUseSubdomains = EditorGUILayout.Toggle("Should Use Subdomains", adjust.shouldUseSubdomains);
adjust.isDataResidency = EditorGUILayout.Toggle("Is Data Residency", adjust.isDataResidency);
EditorGUI.indentLevel -= 1;
EditorGUI.indentLevel -= 1;
}

Expand Down
Loading