Unity SDK - 配置参考

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 日志输出,便于集成和排查问题。该选项默认开启enableLoggingtrue),因此在发布生产版本前请取消勾选。

签名

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,因此 01 并不会减少日志——要关闭日志请取消勾选 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;