aid 是 Aegis SDK 为每台设备分配的唯一标识,用于区分设备、计算 UV 等。同一台设备上的 aid 会持久化保存,卸载应用或清理应用数据后才会更新。
前提条件
RN 环境下的持久化实现
RN 环境通过可选依赖
@react-native-async-storage/async-storage(>= 1.0.0)持久化 aid,存储 key 为 AEGIS_ID。已安装
@react-native-async-storage/async-storage:首次运行生成 aid 并持久化,同一设备后续启动复用同一 aid,设备去重与 UV 统计正常。未安装:SDK 自动降级(不报错),上报数据中 aid 字段为空、不持久化,设备去重与 UV 统计将受影响。如需完整的 UV 统计,建议安装该可选依赖:
$ npm install --save @react-native-async-storage/async-storage
说明:
兼容说明:SDK 同时兼容旧版 RN(< 0.59)内置的
AsyncStorage,独立包与内置模块均不可用时才会降级。自定义 aid 上报规则
您可以根据下列算法自定义 aid 上报规则(RN 环境示例,使用 AsyncStorage)。
import AsyncStorage from '@react-native-async-storage/async-storage';async function getAid(callback) {try {let aid = await AsyncStorage.getItem('AEGIS_ID');if (!aid) {aid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {const r = (Math.random() * 16) | 0;const v = c === 'x' ? r : (r & 0x3) | 0x8;return v.toString(16);});AsyncStorage.setItem('AEGIS_ID', aid);}callback?.(aid || '');} catch (e) {callback?.('');}}
说明: