菜单

ClientID说明

​本文档详细阐述了引力平台用户唯一标识符 ClientID 的定义、在各平台(Android, iOS, 小程序等)的生成规则、获取方式以及确保数据准确性的重要接入规范和注意事项。

ClientID 是引力平台用于标识用户唯一性的核心字段,是用户行为追踪和数据关联的基础。通常在初始化 SDK 时传入或 SDK 自动采集。​

​1. ClientID 的定义与生成规则​

  • ​Android 平台​

    • ​定义​​:在调用 initialize方法时传入的 USER_CLIENT_ID参数即为 ClientID。

    • ​自动生成规则(5.0.9+版本)​​:若传入空字符串,SDK 将按以下优先级自动采集设备 ID 作为 ClientID:​​OAID > Android ID > IMEI​​。若所有 ID 均无法获取,SDK 会生成一个随机且唯一的 16 位 ID 并持久化保存至本地缓存,以确保应用生命周期内该标识的稳定性。

  • ​iOS 平台​

    • ​定义​​:在调用 initialize方法时传入的 USER_CLIENT_ID参数即为 ClientID。

    • ​自动生成规则​​:若传入空字符串,SDK 默认会采集 ​​IDFV​​ 作为 ClientID。我们推荐您使用最佳实践方案,该方案已内置自动采集逻辑,可直接使用稳定的 IDFV 而无需手动处理。

  • ​小游戏/小程序平台​

    • ​定义​​:初始化 SDK 时,通过 config 配置对象中的 clientId字段传入。

    • ​建议​​:通常使用平台的用户唯一标识(如微信 ​​OpenID​​)作为 ClientID,以确保用户在不同设备与小程序之间的身份一致性。

  • ​快应用/快游戏平台​

    • ​定义​​:初始化 SDK 时,通过 config 配置对象中的 clientId字段传入。

​2. 如何获取 ClientID?​

为确保获取到正确的值,请确保在 SDK 初始化完成后再调用此方法。

  • ​Android 与 iOS 平台​​:调用 getCurrentClientId()方法可获取当前用户的 ClientID。​
  • Unity 平台​​:调用 GetCurrentClientID()方法可获取当前用户的 ClientID。​

3. 关于 ClientID 初始化的重要说明​

为了帮助您获得准确可靠的数据分析结果,请您务必了解 ClientID 的初始化机制及其对数据的影响。

​3.1 初始化机制是如何工作的?​

简单来说,每次您调用 initialize方法并成功传入参数时,SDK 都会将这次传入的值记录下来并缓存到本地,作为这台设备的唯一标识。请注意,多次成功调用 initialize方法,新的 ClientID 会覆盖之前存储的 ClientID​​,之后所有的事件都会与这个最新的标识符关联。

​3.2 一个需要避免的常见做法​

我们理解,您可能会希望在用户登录后,将其业务账号ID设置为ClientID以便于关联。然而,​​我们强烈不建议这样做​​。

如果您在应用的一次运行过程中,先后两次调用初始化方法并​​传入了两个不同的ID​​(例如:首次初始化后,在用户登录时又再次初始化并传入了用户的账号ID),这会产生一个您可能意想不到的结果:

  • 平台会将这两个ID识别为​​两个完全独立的用户​​。

  • 这会导致该设备在​​切换ID之前​​的行为数据(例如:广告点击、浏览记录)和​​切换ID之后​​的行为数据(例如:登录、付费)被割裂开来,无法归属于同一个人。

  • 从而严重影响后续的广告效果归因、用户行为路径分析等数据的准确性。

​3.3 我们的建议与最佳实践​

为了确保数据的连续性和准确性,我们为您推荐以下做法:

  1. ​保持标识符稳定​

    理想情况下,应在应用启动时初始化一次SDK,并在此后保持使用同一个ClientID。您可以将首次初始化得到的ClientID进行本地保存,后续需要时(如重试初始化)始终使用这个保存的值,以确保标识符的一致性。

  2. ​如何正确关联用户信息​

    如果您需要在用户登录后关联其业务身份,​​请不要通过重新初始化SDK来实现​​。我们提供了更安全的方式:请使用 ​​用户属性设置接口​​(例如 user_set()方法)。

    这样,既能将用户ID与设备行为关联起来,又不会破坏设备标识符的稳定性。

  3. ​安全地重试初始化​

    如果出于网络容错等原因需要多次调用初始化,请确保每次传入的都是同一个ClientID。只要传入的ID保持一致,多次初始化是完全安全的。

​3.4 总结

请将初始化时传入的ClientID视为设备的“身份证”,一旦确定,应尽量避免更改。关联用户信息时,请使用专门的user_set方法,而非重新初始化。

上一个
SDK总览
下一个
Android
最近修改: 2025-09-23Powered by