在 Kotlin Multiplatform SDK 中识别用户

Adapty 会为每位用户创建一个内部用户画像 ID。但如果您有自己的身份验证系统,则应设置您自己的 Customer User ID。您可以在 用户画像 部分通过 Customer User ID 查找用户,并在 服务端 API 中使用,该 ID 将被发送到所有集成。

在配置时设置 Customer User ID

如果在配置时已有用户 ID,只需将其作为 customerUserId 参数传递给 .activate() 方法:

import com.adapty.kmp.Adapty
import com.adapty.kmp.models.AdaptyConfig

Adapty.activate(
    AdaptyConfig.Builder("PUBLIC_SDK_KEY")
        .withCustomerUserId("YOUR_USER_ID")
        .build()
).onSuccess {
    // successful activation
}.onError { error ->
    // handle the error
    }
}

想了解 Adapty SDK 如何集成到移动应用中的真实示例?请查看我们的示例应用,其中展示了完整的配置过程,包括显示付费墙、完成购买以及其他基本功能。

在配置后设置 Customer User ID

如果在 SDK 配置时没有用户 ID,可以随时使用 .identify() 方法在之后进行设置。此方法最常见的使用场景是在注册或授权之后,即用户从匿名用户切换为已认证用户时。

import com.adapty.kmp.Adapty

Adapty.identify("YOUR_USER_ID").onSuccess {
    // successful identify
}.onError { error ->
    // handle the error
}

请求参数:

  • Customer User ID(必填):字符串类型的用户标识符。

重新提交重要用户数据

在某些情况下,例如用户再次登录账户时,Adapty 的服务器可能已经有该用户的信息。在这种情况下,Adapty SDK 会自动切换为使用新用户。如果您之前向匿名用户传递了任何数据,例如自定义属性或来自第三方网络的归因数据,则应为已识别的用户重新提交这些数据。

同样需要注意的是,识别用户后应重新请求所有付费墙和产品,因为新用户的数据可能有所不同。

登出与登录

您可以随时调用 .logout() 方法将用户登出:

import com.adapty.kmp.Adapty

Adapty.logout().onSuccess {
    // successful logout
}.onError { error ->
    // handle the error
}

之后可以使用 .identify() 方法让用户重新登录。

分配 appAccountToken(iOS)

iosAppAccountToken 是一个 UUID,可用于将 App Store 交易与您的内部用户身份关联。 StoreKit 会将此 token 与每笔交易关联,以便您的后端能够将 App Store 数据匹配到对应用户。

请为每位用户生成一个稳定的 UUID,并在同一账户的不同设备上复用该 UUID。 这可确保购买记录和 App Store 通知始终正确关联。

您可以通过两种方式设置该 token——在 SDK 激活时或在识别用户时。

您必须始终将 iosAppAccountTokencustomerUserId 一起传递。 如果仅传递 token,它将不会包含在交易中。

import com.adapty.kmp.Adapty
import com.adapty.kmp.models.AdaptyConfig

// During configuration:
Adapty.activate(
    AdaptyConfig.Builder("PUBLIC_SDK_KEY")
        .withCustomerUserId(
            id = "YOUR_USER_ID",
            iosAppAccountToken = "YOUR_IOS_APP_ACCOUNT_TOKEN"
        )
        .build()
).onSuccess {
    // successful activation
}.onError { error ->
    // handle the error
}

// Or when identifying users
Adapty.identify(
    customerUserId = "YOUR_USER_ID",
    iosAppAccountToken = "YOUR_IOS_APP_ACCOUNT_TOKEN"
).onSuccess {
    // successful identify
}.onError { error ->
    // handle the error
}

设置混淆账户 ID(Android)

Google Play 在某些使用场景下需要混淆账户 ID,以增强用户隐私和安全性。这些 ID 帮助 Google Play 在保持用户信息匿名的同时识别购买行为,对于防欺诈和数据分析尤为重要。

如果您的应用处理敏感用户数据,或需要遵守特定隐私法规,则可能需要设置这些 ID。混淆 ID 可让 Google Play 在不暴露实际用户标识符的情况下追踪购买记录。

您必须始终将 androidObfuscatedAccountIdcustomerUserId 一起传递。 如果仅传递混淆账户 ID,它将不会包含在交易中。

import com.adapty.kmp.Adapty
import com.adapty.kmp.models.AdaptyConfig

// During configuration:
Adapty.activate(
    AdaptyConfig.Builder("PUBLIC_SDK_KEY")
        .withCustomerUserId(
            id = "YOUR_USER_ID",
            androidObfuscatedAccountId = "YOUR_OBFUSCATED_ACCOUNT_ID"
        )
        .build()
).onSuccess {
    // successful activation
}.onError { error ->
    // handle the error
}

// Or when identifying users
Adapty.identify(
    customerUserId = "YOUR_USER_ID",
    androidObfuscatedAccountId = "YOUR_OBFUSCATED_ACCOUNT_ID"
).onSuccess {
    // successful identify
}.onError { error ->
    // handle the error
}