在 Capacitor SDK 中识别用户

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

在配置时设置 Customer User ID

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

import { adapty } from '@adapty/capacitor';

try {
  await adapty.activate({
    apiKey: 'YOUR_PUBLIC_SDK_KEY',
    params: {
      customerUserId: 'YOUR_USER_ID'
    }
  });
} catch (error) {
  console.error('Failed to activate Adapty:', error);
}

在配置后设置 Customer User ID

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

import { adapty } from '@adapty/capacitor';

try {
  await adapty.identify({ customerUserId: 'YOUR_USER_ID' });
  console.log('User identified successfully');
} catch (error) {
  console.error('Failed to identify user:', error);
}

请求参数:

参数是否必填描述
customerUserId必填字符串类型的用户标识符。

重新提交重要用户数据

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

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

登出与登录

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

import { adapty } from '@adapty/capacitor';

try {
  await adapty.logout();
  console.log('User logged out successfully');
} catch (error) {
  console.error('Failed to logout user:', error);
}

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

分配 appAccountToken(iOS)

appAccountToken 是一个 UUID,用于将 App Store 交易与您的内部用户身份关联。
StoreKit 会将此 token 与每笔交易关联,从而使您的后端能够将 App Store 数据与您的用户进行匹配。

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

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

您必须始终将 appAccountTokencustomerUserId 一同传递。 如果仅传递 token 而不传递 customerUserId,token 将不会被包含在交易中。

import { adapty } from '@adapty/capacitor';
// During configuration:
await adapty.activate({
    apiKey: 'YOUR_PUBLIC_SDK_KEY',
    params: {
        customerUserId: 'YOUR_USER_ID',
        ios: { appAccountToken: "YOUR_APP_ACCOUNT_TOKEN" },
    }
});
// Or when identifying users
await adapty.identify({
    customerUserId: 'YOUR_USER_ID',
    params: {
        ios: { appAccountToken: 'YOUR_APP_ACCOUNT_TOKEN' },
    }
});

设置混淆账户 ID(Android)

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

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

// During configuration:
await adapty.activate({
  apiKey: 'YOUR_PUBLIC_SDK_KEY',
  params: {
    android: { obfuscatedAccountId: 'YOUR_OBFUSCATED_ACCOUNT_ID' },
  }
});
// Or when identifying users
await adapty.identify({
    customerUserId: 'YOUR_USER_ID',
    params: {
        android: { obfuscatedAccountId: 'YOUR_OBFUSCATED_ACCOUNT_ID' },
    }
});