在 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 激活时或在识别用户时。

您必须始终将 appAccountTokencustomerUserId 一起传递。 如果仅传递 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) {
}