用户画像的工作原理

您应用中的每位用户都会在 Adapty 中获得一个用户画像,用于追踪其购买记录、事件和订阅状态。了解用户画像的创建和关联方式,有助于您防止集成错误、避免数据碎片化,并正确解读 用户画像 部分中的数据。

用户画像的创建

Adapty 会在用户首次打开您的应用时自动创建用户画像。

未设置 Customer User ID 时,用户画像为匿名状态。每当发生以下情况时,都会创建一个新的匿名用户画像:

  • 用户重新安装应用
  • 用户退出您的应用(当您的应用调用 Adapty.logout() 时)

购买记录与应用安装绑定,而非与持久的用户身份绑定。

设置了 Customer User ID 时,用户画像可在重装应用和更换设备后持续保留。使用 Customer User ID 可以:

  1. 跨应用重装和多台设备追踪同一用户。
  2. Profiles 部分通过 Customer User ID 查找用户。
  3. 服务端 API 中使用 Customer User ID。
  4. 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()

父用户画像与继承用户画像

当多个用户画像通过相同的 Apple/Google ID 关联至同一订阅时,Adapty 会使用父-继承关系来追踪它们。这种情况发生在用户未经身份识别就重新安装应用,或不同的已识别用户在同一设备上恢复购买时。

父用户画像是发起购买的那个用户画像——不一定是最先创建的用户画像。例如:您安装应用后未进行任何购买,随后重装应用并购买了订阅。第二个用户画像因发起了购买而成为父用户画像,第一个用户画像则成为继承用户画像,并通过共享获得访问权限。

事件的分配方式:

  • 交易性事件(购买、续费、取消、账单问题、宽限期、退款):仅出现在发起购买的父用户画像上。所有订阅续费和更新事件也将继续出现在该用户画像上。
  • access_level_updated 事件:每当访问等级状态发生变化时,父用户画像和继承用户画像均会收到该事件。这可确保所有关联的用户画像都能获得其当前访问状态的更新。

父用户画像显示完整的交易历史记录。继承用户画像仅显示其访问等级更新,以及 Access level 部分中指向父用户画像的链接。

98d0dad-non-original_profile.webp

在用户账户之间共享付费访问权限

要设置您的访问等级共享策略,请在 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 会提前通知系统,这些事件的时间戳可能为未来日期。
  • 其他事件类型:额外的应用内购买和订阅计划变更会以实际时间戳记录,因为这些事件无法提前预测。
  • 对分析和事件流的影响:这些事件只有在其时间戳过后,才会出现在 AnalyticsEvent Feed 中。带有未来时间戳的事件不会显示在这两个部分中。
  • 对集成的影响:Adapty 在收到事件后立即将其发送至集成渠道。如果事件带有未来时间戳,Adapty 会将该未来时间戳原样发送至您的集成渠道。

后续步骤