using System; using UnityEngine; using UnityEngine.Serialization; namespace JustTrack { /// /// Defines the integration mode for Facebook Audience Network. /// public enum FacebookAudienceNetworkIntegration { /// /// No integration with Facebook Audience Network. /// NoIntegration = 0, /// /// Unity-based integration with Facebook Audience Network. /// UnityIntegration = 1, /// /// Native platform integration with Facebook Audience Network. /// NativeIntegration = 2, } /// /// Configuration settings for iOS tracking permissions and integrations. /// [Serializable] #pragma warning disable SA1401 // Fields should be private (required for Unity serialization) #pragma warning disable SA1300 // Element should begin with an uppercase letter (public API) public struct iOSTrackingSettings #pragma warning restore SA1300 { /// /// Whether to request tracking permission from the user on iOS. /// [SerializeField] [FormerlySerializedAs("requestTrackingPermission")] public bool RequestTrackingPermission; /// /// Whether to use a custom advertising attribution report endpoint. /// [SerializeField] [FormerlySerializedAs("useCustomAdvertisingAttributionReportEndpoint")] public bool UseCustomAdvertisingAttributionReportEndpoint; /// /// The description text shown to users when requesting tracking permission. /// [SerializeField] [FormerlySerializedAs("trackingPermissionDescription")] public string TrackingPermissionDescription; /// /// Whether the tracking permission description is managed automatically. /// [SerializeField] [FormerlySerializedAs("trackingPermissionDescriptionManaged")] public bool TrackingPermissionDescriptionManaged; /// /// The Facebook Audience Network integration mode for iOS. /// [SerializeField] [FormerlySerializedAs("facebookAudienceNetworkIntegration")] public FacebookAudienceNetworkIntegration FacebookAudienceNetworkIntegration; } /// /// ScriptableObject containing justtrack SDK configuration settings. /// public class JustTrackSettings : ScriptableObject { /// /// The directory path where JustTrack settings are stored. /// public const string JustTrackSettingsDirectory = "Assets/JustTrack/Resources"; /// /// The resource name for JustTrack settings. /// public const string JustTrackSettingsResource = "JustTrackSettings"; /// /// The full path to the JustTrack settings asset file. /// public const string JustTrackSettingsPath = JustTrackSettingsDirectory + "/" + JustTrackSettingsResource + ".asset"; /// /// Whether the SDK should be started manually instead of automatically. /// [SerializeField] [FormerlySerializedAs("manualStart")] public bool ManualStart; /// /// Whether the SDK should be initialized via a runtime constructor instead of the settings UI. /// When true, JustTrackSDKBehaviour will not auto-initialize the SDK. /// [SerializeField] public bool UseRuntimeConstructor; /// /// Whether to always update injected code during builds. /// [SerializeField] [FormerlySerializedAs("alwaysUpdateInjectedCode")] public bool AlwaysUpdateInjectedCode; /// /// Whether to ignore Firebase integration. /// [SerializeField] [FormerlySerializedAs("ignoreFirebaseIntegration")] public bool IgnoreFirebaseIntegration; /// /// The API token for Android platform integration. /// [SerializeField] [FormerlySerializedAs("androidApiToken")] public string AndroidApiToken = string.Empty; /// /// The API token for iOS platform integration. /// [SerializeField] [FormerlySerializedAs("iosApiToken")] public string IosApiToken = string.Empty; /// /// The API token for WebGL platform integration. /// [SerializeField] [FormerlySerializedAs("webglApiToken")] public string WebglApiToken = string.Empty; /// /// The bundle ID for WebGL platform integration. /// [SerializeField] [FormerlySerializedAs("webglBundleId")] public string WebglBundleId = string.Empty; /// /// The app version for WebGL platform integration. /// [SerializeField] [FormerlySerializedAs("webglAppVersion")] public string WebglAppVersion = string.Empty; /// /// The app code for WebGL platform integration. /// [SerializeField] [FormerlySerializedAs("webglAppCode")] public string WebglAppCode = string.Empty; /// /// The user ID for WebGL platform integration. /// [SerializeField] [FormerlySerializedAs("webglUserId")] public string WebglUserId = string.Empty; /// /// Whether AppLovin integration is enabled for Android. /// [SerializeField] [FormerlySerializedAs("androidAppLovinIntegration")] public bool AndroidAppLovinIntegration; /// /// Whether AppLovin integration is enabled for iOS. /// [SerializeField] [FormerlySerializedAs("iosAppLovinIntegration")] public bool IosAppLovinIntegration; /// /// Whether Unity Ads integration is enabled for Android. /// [SerializeField] [FormerlySerializedAs("androidUnityAdsIntegration")] public bool AndroidUnityAdsIntegration; /// /// Whether Unity Ads integration is enabled for iOS. /// [SerializeField] [FormerlySerializedAs("iosUnityAdsIntegration")] public bool IosUnityAdsIntegration; /// /// Whether IronSource integration is enabled for Android. /// [SerializeField] [FormerlySerializedAs("androidIronSourceIntegration")] public bool AndroidIronSourceIntegration; /// /// Whether IronSource integration is enabled for iOS. /// [SerializeField] [FormerlySerializedAs("iosIronSourceIntegration")] public bool IosIronSourceIntegration; /// /// iOS-specific tracking configuration settings. /// [SerializeField] [FormerlySerializedAs("iosTrackingSettings")] public iOSTrackingSettings IosTrackingSettings; /// /// Whether automatic in-app purchase tracking is disabled for iOS. /// [SerializeField] [FormerlySerializedAs("iosDisableAutomaticInAppPurchaseTracking")] public bool IosDisableAutomaticInAppPurchaseTracking; /// /// Whether automatic in-app purchase tracking is disabled for Android. /// [SerializeField] [FormerlySerializedAs("androidDisableAutomaticInAppPurchaseTracking")] public bool AndroidDisableAutomaticInAppPurchaseTracking; /// /// Whether Firebase integration is enabled for Android. /// [SerializeField] [FormerlySerializedAs("androidFirebaseIntegration")] public bool AndroidFirebaseIntegration; /// /// Whether Firebase integration is enabled for iOS. /// [SerializeField] [FormerlySerializedAs("iosFirebaseIntegration")] public bool IosFirebaseIntegration; /// /// Whether Google ODM integration is enabled for iOS. /// [SerializeField] [FormerlySerializedAs("iosGoogleOdmIntegration")] public bool IosGoogleOdmIntegration; /// /// Custom bundle ID for Android platform integration. /// If empty, the default bundle ID from PlayerSettings will be used. /// [SerializeField] [FormerlySerializedAs("androidBundleId")] public string AndroidBundleId = string.Empty; /// /// Custom app version name for Android platform integration (e.g., "1.0.0"). /// If empty, the default version from PlayerSettings will be used. /// [SerializeField] [FormerlySerializedAs("androidAppVersion")] public string AndroidAppVersion = string.Empty; /// /// Custom app version code for Android platform integration (e.g., "1"). /// If empty, the default version code from PlayerSettings will be used. /// [SerializeField] [FormerlySerializedAs("androidAppCode")] public string AndroidAppCode = string.Empty; /// /// Custom bundle ID for iOS platform integration. /// If empty, the default bundle ID from PlayerSettings will be used. /// [SerializeField] [FormerlySerializedAs("iosBundleId")] public string IosBundleId = string.Empty; /// /// Custom app version name for iOS platform integration (e.g., "1.0.0"). /// If empty, the default version from PlayerSettings will be used. /// [SerializeField] [FormerlySerializedAs("iosAppVersion")] public string IosAppVersion = string.Empty; /// /// Custom app version code for iOS platform integration (e.g., "1"). /// If empty, the default build number from PlayerSettings will be used. /// [SerializeField] [FormerlySerializedAs("iosAppCode")] public string IosAppCode = string.Empty; /// /// Custom server URL for the SDK. /// Leave empty to use the default production server. /// [SerializeField] [FormerlySerializedAs("serverUrl")] public string ServerUrl = string.Empty; /// /// Whether debug mode is enabled for the SDK. /// [SerializeField] [FormerlySerializedAs("enableDebugMode")] public bool EnableDebugMode; /// /// Whether console logging is enabled for the SDK. /// [SerializeField] [FormerlySerializedAs("enableConsoleLogging")] public bool EnableConsoleLogging; /// /// Loads JustTrack settings from Unity Resources. /// /// The loaded JustTrack settings instance. internal static JustTrackSettings LoadFromResources() { return Resources.Load(JustTrackSettings.JustTrackSettingsResource); } } #pragma warning restore SA1401 }