在 Flutter SDK 中识别用户
Adapty 会为每位用户创建一个内部用户画像 ID。但是,如果您有自己的身份验证系统,则应设置您自己的 Customer User ID。您可以在 Profiles 部分通过 Customer User ID 查找用户,并在服务端 API 中使用它,该 ID 将被发送到所有集成。
在配置时设置 Customer User ID
如果在配置时已有用户 ID,只需将其作为 customerUserId 参数传递给 .activate() 方法:
try {
await Adapty().activate(
configuration: AdaptyConfiguration(apiKey: 'YOUR_API_KEY')
..withCustomerUserId(YOUR_CUSTOMER_USER_ID)
);
} catch (e) {
// handle the error
}
想了解 Adapty SDK 如何集成到移动应用中的真实示例?请查看我们的示例应用,其中展示了完整的配置过程,包括显示付费墙、完成购买以及其他基本功能。
在配置后设置 Customer User ID
如果在 SDK 配置时没有用户 ID,您可以在之后的任意时间使用 .identify() 方法进行设置。此方法最常见的使用场景是在注册或授权之后,即用户从匿名用户切换为已认证用户时。
try {
await Adapty().identify(customerUserId);
} on AdaptyError catch (adaptyError) {
// handle the error
} catch (e) {
}
请求参数:
- Customer User ID(必填):字符串类型的用户标识符。
重新提交重要用户数据
在某些情况下,例如用户再次登录其账户时,Adapty 的服务器已经拥有该用户的信息。在这些场景下,Adapty SDK 将自动切换到新用户。如果您向匿名用户传递了任何数据,例如自定义属性或来自第三方网络的归因数据,则需要为已识别用户重新提交这些数据。
同样重要的是,在识别用户后,您应重新请求所有付费墙和产品,因为新用户的数据可能有所不同。
登出与登录
您可以随时调用 .logout() 方法将用户登出:
try {
await Adapty().logout();
} on AdaptyError catch (adaptyError) {
// handle the error
} catch (e) {
// handle unknown error
}
之后,您可以使用 .identify() 方法将用户重新登录。
分配 appAccountToken(iOS)
appAccountToken 是一个 UUID,用于将 App Store 交易与您的内部用户身份关联起来。
StoreKit 将此 token 与每笔交易关联,以便您的后端能够将 App Store 数据与您的用户进行匹配。
请为每个用户生成一个稳定的 UUID,并在跨设备的同一账户中复用该 UUID。 这可确保购买记录和 App Store 通知正确关联。
您可以通过两种方式设置 token —— 在 SDK 激活时或在识别用户时。
您必须始终将 appAccountToken 与 customerUserId 一起传递。
如果仅传递 token,它将不会包含在交易中。
// During configuration:
try {
await Adapty().activate(
configuration: AdaptyConfiguration(apiKey: 'YOUR_API_KEY')
..withCustomerUserId(YOUR_CUSTOMER_USER_ID, iosAppAccountToken: "YOUR_APP_ACCOUNT_TOKEN")
);
} catch (e) {
// handle the error
}
// Or when identifying users
try {
await Adapty().identify(customerUserId, iosAppAccountToken: "YOUR_APP_ACCOUNT_TOKEN");
} on AdaptyError catch (adaptyError) {
// handle the error
} catch (e) {
}
设置混淆账户 ID(Android)
Google Play 在某些使用场景下要求提供混淆账户 ID,以增强用户隐私和安全性。这些 ID 帮助 Google Play 识别购买行为,同时保持用户信息匿名,对于防欺诈和数据分析尤为重要。
如果您的应用处理敏感用户数据,或需要遵守特定的隐私法规,则可能需要设置这些 ID。混淆 ID 允许 Google Play 在不暴露实际用户标识符的情况下跟踪购买记录。
// During configuration:
try {
await Adapty().activate(
configuration: AdaptyConfiguration(apiKey: 'YOUR_API_KEY')
..withCustomerUserId(YOUR_CUSTOMER_USER_ID, androidObfuscatedAccountId: "OBFUSCATED_ACCOUNT_ID")
);
} catch (e) {
// handle the error
}
// Or when identifying users
try {
await Adapty().identify(customerUserId, androidObfuscatedAccountId: "OBFUSCATED_ACCOUNT_ID");
} on AdaptyError catch (adaptyError) {
// handle the error
} catch (e) {
}