Unity SDK - 配置参考
Unity 版 Singular SDK 提供的全部配置选项,包含类型、默认值、支持的平台以及设置方式。
大多数选项是 SingularSDK 组件上的字段,因此会显示在 Singular SDK 游戏对象的 Unity Inspector 中。少数是静态成员——它们不会显示在 Inspector 中,只能在初始化前通过代码设置。下面每个条目都会说明属于哪一种。
在代码中设置配置
先在 Inspector 中取消勾选 Initialize On Awake,设置所需字段,然后自行初始化 SDK。静态成员只能通过这种方式设置。
using UnityEngine;
using Singular;
public class SingularBootstrap : MonoBehaviour
{
void Awake()
{
// Clear Initialize On Awake in the Inspector first, so the SDK
// does not start before these values are set.
SingularSDK singular = GetComponent<SingularSDK>();
singular.SingularAPIKey = "YOUR_SDK_KEY";
singular.SingularAPISecret = "YOUR_SDK_SECRET";
singular.sessionTimeoutSec = 120;
// Static members are not shown in the Inspector and are set here only.
SingularSDK.endSessionOnGoingToBackground = true;
SingularSDK.InitializeSingularSDK();
}
}
完整配置示例
全面的 SDK 配置
涵盖大多数集成常用选项的典型配置。
using UnityEngine;
using Singular;
public class SingularBootstrap : MonoBehaviour
{
void Awake()
{
SingularSDK singular = GetComponent<SingularSDK>();
// Required
singular.SingularAPIKey = "YOUR_SDK_KEY";
singular.SingularAPISecret = "YOUR_SDK_SECRET";
// Logging — off for a production build
singular.enableLogging = false;
// Sessions and link resolution
singular.sessionTimeoutSec = 120;
singular.shortlinkResolveTimeout = 15;
singular.ddlTimeoutSec = 120; // Android
// Links
singular.brandedDomains = new string[] { "go.yourcompany.com" };
singular.pushNotificationsLinkPaths = new string[] { "sng_link" };
// iOS
singular.waitForTrackingAuthorizationWithTimeoutInterval = 300;
singular.SKANEnabled = true;
// Android
singular.facebookAppId = "1234567890";
SingularSDK.InitializeSingularSDK();
}
}
autoIAPComplete
SingularSDK.autoIAPComplete 属性
用于自动完成 StoreKit 交易的旧版开关。
已弃用功能:该字段在 SDK 中标记为 [Obsolete],新集成不应使用。请通过 Unity IAP 完成交易,并用 SingularSDK.InAppPurchase() 上报。
签名
public bool autoIAPComplete
默认值: false
平台: 仅限 iOS
设置方式: Unity Inspector 或代码
使用示例
singular.autoIAPComplete = false;
brandedDomains
SingularSDK.brandedDomains 属性
SDK 应视为 Singular Links 的自定义链接域名。请添加您用于跟踪链接的所有品牌域名;否则只会识别 Manage Links 页面中注册的 sng.link 域名。
签名
public string[] brandedDomains
默认值: null
平台: iOS 和 Android
设置方式: Unity Inspector 或代码
使用示例
singular.brandedDomains = new string[] {
"yourcompany.com",
"go.yourcompany.com"
};
clipboardAttribution
SingularSDK.clipboardAttribution 属性
允许 SDK 在应用启动时读取剪贴板,以便从 Singular Link 中恢复归因数据。
在 iOS 14 及更高版本上,读取剪贴板会向用户显示系统粘贴提示。请在理解这一取舍后再启用。
签名
public bool clipboardAttribution
默认值: false
平台: 仅限 iOS
设置方式: Unity Inspector 或代码
使用示例
singular.clipboardAttribution = true;
collectOAID
SingularSDK.collectOAID 属性
收集 OAID,这是在没有 Google Play 服务的 Android 设备(主要在中国大陆)上使用的广告标识符。需要在构建中包含 OAID 库。
签名
public bool collectOAID
默认值: false
平台: 仅限 Android
设置方式: Unity Inspector 或代码
使用示例
singular.collectOAID = true;
CustomSdid
SingularSDK.CustomSdid 属性
使用您自己的 Singular Device ID,而不是由 SDK 生成。请在初始化前设置,并通过 SingularSDK.SetSingularSdidAccessorHandler() 注册处理程序以获知其是否被接受。
企业功能:自定义 SDID 默认未启用。除非您的账户已开通,否则请勿设置——请先联系您的 Singular 代表。
签名
public static string CustomSdid
默认值: null
平台: iOS 和 Android
设置方式: 仅限代码——不显示在 Inspector 中
使用示例
SingularSDK.CustomSdid = "your-own-device-id";
ddlTimeoutSec
SingularSDK.ddlTimeoutSec 属性
全新安装后,SDK 仍会解析延迟深度链接并调用您的 Singular Link 处理程序的时长。保持为 0 即使用 60 秒的默认值。
签名
public long ddlTimeoutSec
默认值: 0 (uses the 60 second default)
平台: 仅限 Android
设置方式: Unity Inspector 或代码
使用示例
singular.ddlTimeoutSec = 120;
enableDeferredDeepLinks
SingularSDK.enableDeferredDeepLinks 属性
在 Android 上注册延迟深度链接处理程序。除非您有意忽略延迟链接,否则请保持启用。
签名
public static bool enableDeferredDeepLinks
默认值: true
平台: 仅限 Android
设置方式: 仅限代码——不显示在 Inspector 中
使用示例
SingularSDK.enableDeferredDeepLinks = false;
enableLogging
SingularSDK.enableLogging 属性
启用 SDK 日志输出,便于集成和排查问题。该选项默认开启(enableLogging 为 true),因此在发布生产版本前请取消勾选。
签名
public bool enableLogging
默认值: true
平台: iOS 和 Android
设置方式: Unity Inspector 或代码
使用示例
singular.enableLogging = false;
enableODMWithTimeoutInterval
SingularSDK.enableODMWithTimeoutInterval 属性
启用 Google 的 On-Device Measurement(ODM),并设置 SDK 在发送首次会话前等待 Google 归因令牌的秒数。Google Ads iOS Integrated Conversion Measurement(ICM)需要此设置。
这会延迟首次会话。SDK 会阻塞,直到 Google 返回令牌或该时间间隔结束,因此深度链接回调最多会被推迟这么多秒。ODM 还需要 Google 的 ODM SDK、-ObjC 链接器标志,以及 Unity SDK v5.5.0 或更高版本。
签名
public int enableODMWithTimeoutInterval
默认值: -1 (disabled)
平台: 仅限 iOS
设置方式: Unity Inspector 或代码
使用示例
singular.enableODMWithTimeoutInterval = 10;
endSessionOnGoingToBackground
SingularSDK.endSessionOnGoingToBackground 属性
应用一进入后台就结束 Singular 会话,而不是等待会话超时。大多数应用应保持关闭,改用 sessionTimeoutSec。
签名
public static bool endSessionOnGoingToBackground
默认值: false
平台: iOS 和 Android
设置方式: 仅限代码——不显示在 Inspector 中
使用示例
SingularSDK.endSessionOnGoingToBackground = true;
facebookAppId
SingularSDK.facebookAppId 属性
您的 Facebook App ID,在 Android 上进行 Meta 安装引荐归因时需要。
签名
public string facebookAppId
默认值: null
平台: 仅限 Android
设置方式: Unity Inspector 或代码
使用示例
singular.facebookAppId = "1234567890";
fcmDeviceToken
SingularSDK.fcmDeviceToken 属性
用于卸载跟踪的 Firebase Cloud Messaging 令牌。建议改用 SingularSDK.RegisterTokenForUninstall(),它会在初始化前设置该值,并在初始化后调用原生 SDK。
签名
public static string fcmDeviceToken
默认值: null
平台: 仅限 Android
设置方式: 仅限代码——不显示在 Inspector 中
使用示例
SingularSDK.RegisterTokenForUninstall(token);
Initialized
SingularSDK.Initialized 属性
只读。指示 SDK 是否已完成初始化。在其变为 true 之前,大多数 SDK 方法都会直接返回而不执行任何操作。
签名
public static bool { get; } Initialized
默认值: false
平台: iOS 和 Android
设置方式: 仅限代码——不显示在 Inspector 中
使用示例
if (SingularSDK.Initialized) {
SingularSDK.Event("level_complete");
}
InitializeOnAwake
SingularSDK.InitializeOnAwake 属性
在游戏对象的 Awake() 中自动初始化 SDK。如果需要先在代码中设置配置,请取消勾选,然后自行调用 SingularSDK.InitializeSingularSDK()。
签名
public bool InitializeOnAwake
默认值: true
平台: iOS 和 Android
设置方式: Unity Inspector 或代码
使用示例
singular.InitializeOnAwake = false;
limitAdvertisingIdentifiers
SingularSDK.limitAdvertisingIdentifiers 属性
阻止 SDK 收集设备广告标识符。适用于不得从部分用户处收集广告 ID 的混合受众应用。
签名
public bool limitAdvertisingIdentifiers
默认值: false
平台: iOS 和 Android
设置方式: Unity Inspector 或代码
使用示例
singular.limitAdvertisingIdentifiers = true;
logLevel
SingularSDK.logLevel 属性
设置 SDK 日志输出的详细程度。取值为 Android android.util.Log 常量,数值越小越详细:2 Verbose、3 Debug、4 Info、5 Warn、6 Error、7 Assert。默认值为 3(Debug)。超出 2–7 范围的值会被拒绝,SDK 将回退到 Debug,因此 0 和 1 并不会减少日志——要关闭日志请取消勾选 Enable Logging。
签名
public int logLevel
默认值: 3 (Debug)
平台: iOS 和 Android
设置方式: Unity Inspector 或代码
使用示例
singular.logLevel = 3; // Debug
manualSKANConversionManagement
SingularSDK.manualSKANConversionManagement 属性
将 SKAdNetwork 转化值的管理交给您的应用。启用后 Singular 将不再管理转化值,您需要自行调用 SingularSDK.SkanUpdateConversionValue()。
该选项关闭时,手动更新会被忽略。如果收不到转化值,请先检查此设置。
签名
public bool manualSKANConversionManagement
默认值: false
平台: 仅限 iOS
设置方式: Unity Inspector 或代码
使用示例
singular.manualSKANConversionManagement = true;
openUri
SingularSDK.openUri 属性
打开应用时所用的 URI,会在初始化时传给 SDK,以便对该次打开进行归因。如果您的 Activity 在 SDK 启动前就收到深度链接,请在初始化前设置。
签名
public static string openUri
默认值: null
平台: 仅限 Android
设置方式: 仅限代码——不显示在 Inspector 中
使用示例
SingularSDK.openUri = "myapp://product/123";
pushNotificationsLinkPaths
SingularSDK.pushNotificationsLinkPaths 属性
在推送通知载荷中查找 Singular Link 的位置。每个条目都是载荷中的一条路径,层级之间用 / 分隔。应用会收到几种载荷结构,就添加几个条目。
签名
public string[] pushNotificationsLinkPaths
默认值: null
平台: iOS 和 Android
设置方式: Unity Inspector 或代码
使用示例
singular.pushNotificationsLinkPaths = new string[] {
"sng_link",
"notification/deep_link",
"rootObj/nestedObj/singularLink"
};
restartSessionOnReturningToForeground
SingularSDK.restartSessionOnReturningToForeground 属性
每次应用回到前台时都开始一个新的 Singular 会话。请与 endSessionOnGoingToBackground 配合使用;大多数应用应保持两者关闭。
签名
public static bool restartSessionOnReturningToForeground
默认值: false
平台: iOS 和 Android
设置方式: 仅限代码——不显示在 Inspector 中
使用示例
SingularSDK.restartSessionOnReturningToForeground = true;
sessionTimeoutSec
SingularSDK.sessionTimeoutSec 属性
应用可以在后台停留多久,超过后下一次打开将计为新会话。保持为 0 即使用 60 秒的默认值。
签名
public long sessionTimeoutSec
默认值: 0 (uses the 60 second default)
平台: iOS 和 Android
设置方式: Unity Inspector 或代码
使用示例
singular.sessionTimeoutSec = 120;
shortlinkResolveTimeout
SingularSDK.shortlinkResolveTimeout 属性
SDK 放弃前等待短链接解析的时长。保持为 0 即使用 10 秒的默认值。
签名
public long shortlinkResolveTimeout
默认值: 0 (uses the 10 second default)
平台: iOS 和 Android
设置方式: Unity Inspector 或代码
使用示例
singular.shortlinkResolveTimeout = 15;
SingularAPIKey
SingularSDK.SingularAPIKey 属性
您的 SDK Key。可在 Singular 的 Developer Tools > SDK Integration > SDK Keys 中找到。
请勿在此使用 Singular 的 Reporting API Key。只有 SDK Integration 页面上的 SDK Key 有效;使用其他密钥会在没有任何报错的情况下导致数据无法送达 Singular。
签名
public string SingularAPIKey
默认值: 必填
平台: iOS 和 Android
设置方式: Unity Inspector 或代码
使用示例
singular.SingularAPIKey = "YOUR_SDK_KEY";
SingularAPISecret
SingularSDK.SingularAPISecret 属性
您的 SDK Secret,与 SDK Key 在同一页面一并签发。
签名
public string SingularAPISecret
默认值: 必填
平台: iOS 和 Android
设置方式: Unity Inspector 或代码
使用示例
singular.SingularAPISecret = "YOUR_SDK_SECRET";
SKANEnabled
SingularSDK.SKANEnabled 属性
为应用注册 SKAdNetwork 归因,并让 Singular 管理转化值。除非应用中的其他 SDK 负责 SKAdNetwork,否则请保持开启。
签名
public bool SKANEnabled
默认值: true
平台: 仅限 iOS
设置方式: Unity Inspector 或代码
使用示例
singular.SKANEnabled = false;
waitForTrackingAuthorizationWithTimeoutInterval
SingularSDK.waitForTrackingAuthorizationWithTimeoutInterval 属性
SDK 在发送首次会话前等待用户响应 App Tracking Transparency 提示的秒数。等待可以让首次会话在用户授权时携带 IDFA。
IDFA 只能附加到首次会话。如果会话在用户响应提示之前发送,该次安装将永久没有 IDFA。如果您的应用会显示 ATT 提示,Singular 建议设置为 300 秒。
签名
public int waitForTrackingAuthorizationWithTimeoutInterval
默认值: 0 (do not wait)
平台: 仅限 iOS
设置方式: Unity Inspector 或代码
使用示例
singular.waitForTrackingAuthorizationWithTimeoutInterval = 300;