用户画像的工作原理
您应用中的每位用户都会获得一个 Adapty 用户画像,用于追踪其购买记录、事件和订阅状态。了解用户画像的创建和关联方式,有助于您避免集成错误、防止数据碎片化,并正确解读 用户画像 页面中的数据。
创建用户画像
Adapty 会在用户首次打开应用时自动创建用户画像。
未设置 Customer User ID 时,用户画像为匿名状态。每当以下情况发生时,系统会创建新的匿名用户画像:
- 用户重新安装应用
- 用户退出应用(当应用调用
Adapty.logout()时)
购买记录与应用安装绑定,而非与持久的用户身份关联。
设置了 Customer User ID 时,用户画像可在重装和多设备间持久保留。使用 Customer User ID 可以让你:
- 跨应用重装和多设备追踪用户。
- 在 Profiles 页面通过 customer user ID 查找用户。
- 在服务端 API 中使用 customer user ID。
- Adapty 会将 customer user ID 发送给所有集成渠道。
设置 customer user ID 的时机不同,用户画像的行为也会有所差异:
- 在 SDK 激活时:Adapty 会使用该 customer user ID 对应的现有用户画像(针对已有用户),或创建新的用户画像(针对首次使用的用户)。
- 在 SDK 激活后:Adapty 在激活时创建一个匿名用户画像。当你稍后识别用户身份时,Adapty 会将 customer user ID 关联到该匿名用户画像(针对首次使用的用户),或切换到已有该 ID 的用户画像(针对已有用户)。
如何选择:
- 应用启动时即可获取 Customer user ID(例如从上次会话中已保存)——在初始化 SDK 时将其传入
activate()。 - 用户在应用启动后登录——在身份验证完成后调用
identify()。若该 ID 是新 ID,Adapty 会将其关联到当前用户画像;若该 ID 已存在,则切换到对应的已有用户画像。 - 用户可在登录前购买——在登录完成后调用
identify()。若该 Customer user ID 在 Adapty 中已存在,请在调用后重新获取用户画像,以同步当前的访问等级。 有关实现细节,请参阅 用户识别 SDK 指南。
如果某个回访用户此前在没有 customer user ID 的情况下使用过你的应用,当你在 SDK 初始化时开始识别用户后,这些匿名用户画像不会自动合并。若需要为此类用户保留完整历史记录,请在登录后改用 identify()。
父画像与继承画像
当同一个商店端订阅与多个 Adapty 用户画像关联时,Adapty 会将这些画像视为一条链:一个父画像,以及一个或多个从同一购买中共享访问权限的继承画像。
出现这种情况的原因如下:
- 用户账户之间共享付费访问权限已启用,且某用户在一台设备上登录,而该设备上此前已有另一个用户画像完成了购买。
- 用户在未设置
customer_user_id的情况下重新安装应用,新用户画像继承了上一次安装的购买记录。 - 不同的已识别用户在同一台设备上恢复了购买。
- 应用在 Apple Team ID 之间进行了迁移,新应用继承了旧 Team ID 下的购买记录。
父级用户画像的选择方式。 父级是 第一个记录购买行为的用户画像 — 由 Adapty 中的购买收据顺序决定,而非用户画像的创建顺序。例如:你安装应用后未进行任何购买,然后重新安装并购买了订阅。第二个用户画像成为父级,因为它完成了购买。第一个用户画像成为继承方,并通过共享获得访问权限。
事件的分配方式:
- 事务性事件(购买、续订、取消、账单问题、宽限期、退款):仅出现在发起购买的父用户画像上。所有订阅续订和更新都将继续显示在该用户画像上。
access_level_updated事件:每当访问等级状态发生变化时,父用户画像和继承用户画像都会收到该事件。这样可以确保所有关联的用户画像都能及时获知当前的访问状态。 父级用户画像显示完整的交易历史记录。继承者用户画像仅在 Access level 部分显示其访问等级更新内容以及指向父级用户画像的链接。
跨用户画像追踪同一订阅。
每个继承者用户画像都有独立的 profile_id,因此 profile_id 在整个链路中并不稳定。若要在多个用户画像之间识别同一笔订阅——例如在核对 webhook 事件或将看板中的用户画像与同一底层用户进行匹配时——请改用渠道侧的标识符。
| 字段 | 用途 |
|---|---|
store_original_transaction_id | 跨用户画像识别订阅链。每个 Apple 订阅唯一。 |
profiles_sharing_access_level(webhook 字段) | 启用共享时,当前享有该订阅访问等级的所有用户画像。 |
profile_id | 不适合跨用户画像追踪——每个继承者都有自己的 profile_id。 |
在用户账户之间共享付费访问权限
主要文章:在用户账户之间共享付费访问权限
要设置您的访问等级共享策略,请在 General 设置页面上选择一个共享选项。您可以为沙盒环境单独设置策略。
启用(默认)
已识别用户(拥有 Customer User ID 的用户)如果其设备登录了相同的 Apple/Google ID,则可以共享 Adapty 提供的同一访问等级。当用户重新安装应用并使用不同的电子邮件登录时,这非常有用——他们仍然可以访问之前的购买内容。使用此选项,多个已识别用户可以共享同一访问等级。
尽管访问等级是共享的,但所有过去和未来的交易都会作为事件记录在原始 Customer User ID 中,以维持一致的数据分析并保留完整的交易历史——包括试用期、订阅购买、续订等,均关联到同一用户画像。
将访问权限转移给新用户
已识别用户可以继续访问 Adapty 提供的访问等级,即使他们使用不同的 Customer User ID 登录或重新安装应用,只要设备登录的是相同的 Apple/Google ID 即可。
与前一个选项不同,Adapty 会在已识别用户之间转移购买内容。这确保了已购内容始终可用,但同一时间只有一个用户可以拥有访问权限。例如,如果 UserA 购买了订阅,而 UserB 在同一设备上登录并恢复交易,UserB 将获得该订阅的访问权限,而 UserA 的访问权限将被撤销。
如果其中一个用户(新用户或旧用户)未被识别,则 Adapty 中这些用户画像之间的访问等级仍将被共享。
尽管访问等级被转移,但所有过去和未来的交易都会作为事件记录在原始 Customer User ID 中,以维持一致的数据分析并保留完整的交易历史——包括试用期、订阅购买、续订等,均关联到同一用户画像。
切换到将访问权限转移给新用户后,访问等级不会立即在用户画像之间转移。每个特定访问等级的转移过程仅在 Adapty 收到来自应用商店的事件时触发,例如订阅续订、恢复购买或验证交易时。
禁用
第一个获得访问等级的已识别用户画像将永久保留该等级。如果您的业务逻辑要求购买内容绑定到单一 Customer User ID,这是最佳选项。
请注意,匿名用户之间的访问等级仍然是共享的。
您可以通过删除所有者的用户画像来”解绑”购买内容。删除后,访问等级将归属于第一个申领它的用户画像,无论是匿名用户还是已识别用户。
禁用共享仅影响新用户。已在用户间共享的订阅在禁用此选项后仍将继续共享。
Apple 和 Google 要求在用户之间共享或转移应用内购买内容,因为它们依赖 Apple/Google ID 来关联购买记录。如果不启用共享,在后续重新安装时恢复购买可能无法正常工作。
禁用共享可能会导致用户在登录后无法重新获得访问权限。
我们建议仅在您的用户必须先登录才能进行购买时才禁用共享。否则,已识别用户可能在购买订阅后登录其他账号,从而永久失去访问权限。
我应该选择哪个设置?
| 我的应用…… | 推荐选项 |
|---|---|
| 没有登录系统,仅使用 Adapty 的匿名用户画像 ID。 | 使用默认选项,因为在所有三个选项中,访问等级始终在匿名用户画像 ID 之间共享。 |
| 拥有可选的登录系统,允许用户在创建账号之前进行购买。 | 选择将访问权限转移给新用户,以确保未登录账号就进行购买的用户日后仍可恢复其交易。 |
| 要求用户在购买前创建账号,但允许购买内容关联到多个 Customer User ID。 | 选择将访问权限转移给新用户,以确保同一时间只有一个 Customer User ID 拥有访问权限,同时允许用户使用不同的 Customer User ID 登录而不会失去已付费的访问权限。 |
| 要求用户在购买前创建账号,并有严格规定将购买内容绑定到单一 Customer User ID。 | 选择禁用,以确保交易永远不会在账号之间转移。 |
事件时间戳显示为未来日期(Apple/iOS)
此行为仅在 Apple App Store 中存在,Google Play 的通知系统不会提前发送事件。
用户画像和集成中的事件时间戳可能显示为未来日期,这是因为 Apple 会提前发送续订事件。
- 发生原因:Apple 这样做是为了确保订阅在到期前自动续订,防止用户服务中断。更多详情请参阅 Apple 开发者论坛:Server Notifications for Subscriptions。
- 受影响的事件类型:通常,此情况适用于订阅续订和试用转付费转化。这些事件可能带有未来时间戳,因为 Apple 会提前通知系统。
- 其他事件类型:额外的应用内购买和订阅计划变更会以实际时间戳记录,因为这些事件无法提前预测。
- 对分析和事件流的影响:这些事件只有在其时间戳过后才会出现在 Analytics 和 Event Feed 中。带有未来时间戳的事件不会显示在这两个板块中。
- 对集成的影响:Adapty 会在收到事件后立即将其发送至集成。如果事件带有未来时间戳,Adapty 会将该事件连同未来时间戳原样发送至您的集成。
后续步骤
- 若要使用用户画像看板查找和管理用户,请参阅 用户画像。
- 若要在您的应用中设置用户身份识别,请参阅 识别用户 SDK 指南。
- 若要配置访问共享策略,请参阅 在用户账户之间共享付费访问权限。