在 React Native SDK 中识别用户

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

在配置时设置 Customer User ID

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

adapty.activate("PUBLIC_SDK_KEY", {
    customerUserId: "YOUR_USER_ID"
});

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

在配置后设置 Customer User ID

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

try {
    await adapty.identify("YOUR_USER_ID");
    // successfully identified
} catch (error) {
    // handle the error
}

请求参数:

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

重新提交重要用户数据

在某些情况下,例如用户重新登录账户时,Adapty 的服务器可能已经存有该用户的信息。在这些场景下,Adapty SDK 将自动切换到新用户。如果您曾向匿名用户传递过任何数据(例如自定义属性或来自第三方网络的归因数据),您需要为已识别的用户重新提交这些数据。

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

登出与登入

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

try {
    await adapty.logout();
    // successful logout
} catch (error) {
    // handle the error
}

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

分配 appAccountToken(iOS)

appAccountToken 是一个 UUID,用于将 App Store 交易与您的内部用户身份关联起来。 StoreKit 会将此令牌与每笔交易相关联,以便您的后端可以将 App Store 数据与您的用户进行匹配。

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

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

您必须始终将 appAccountTokencustomerUserId 一起传递。 如果仅传递令牌而不传递 customerUserId,该令牌将不会包含在交易中。

// During configuration:
adapty.activate("PUBLIC_SDK_KEY", {
    customerUserId: "YOUR_USER_ID",
    ios: { appAccountToken: "YOUR_APP_ACCOUNT_TOKEN" },
});

// Or when identifying users
try {
    await adapty.identify("YOUR_USER_ID", {
        ios: {appAccountToken: 'YOUR_APP_ACCOUNT_TOKEN'}
    });
    // successfully identified
} catch (error) {
    // handle the error
}

设置混淆账户 ID(Android)

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

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

// During configuration:
adapty.activate("PUBLIC_SDK_KEY", {
    customerUserId: "YOUR_USER_ID",
    android: { obfuscatedAccountId: 'YOUR_OBFUSCATED_ACCOUNT_ID' }
});

// Or when identifying users
try {
    await adapty.identify("YOUR_USER_ID", {
        android: { obfuscatedAccountId: 'YOUR_OBFUSCATED_ACCOUNT_ID' }
    });
    // successfully identified
} catch (error) {
    // handle the error
}