目录

HiAnalytics

Class Info

Analytics Kit接口承载类,提供上报用户行为数据的公共方法。

Public Method Summary

Qualifier and Type

Method Name and Description

void

config

初始化Analytics Kit。

void

configWithRoutePolicy:(nullable NSString *)routePolicy

初始化Analytics Kit。支持设置数据处理位置。

void

setReportPolicies:(nullable NSArray<HAReportPolicy *> *)policies

上报策略接口配置。

void

onEvent:(nonnull NSString *)eventId setParams:(nonnull NSDictionary<NSString *, id> *)params

记录事件。

void

setUserProfile:(nonnull NSString *)name setValue:(nullable NSString *)value

设置用户属性。

nullable NSDictionary<NSString *, id> *

userProfiles:(BOOL)preDefined

获取自采集或者自定义的用户属性。

void

setAnalyticsEnabled:(BOOL)enabled

是否打开埋点采集能力。

nonnull NSString *

AAID

获取应用的匿名设备标识。

void

setUserId:(nullable NSString *)userId

设置用户ID。

void

setSessionDuration:(NSTimeInterval)milliseconds

设置Session超时时长。

void

clearCachedData

清除本地缓存的所有采集数据。

void

setRestrictionEnabled:(BOOL)enabled

设置是否限制数据分析能力。

BOOL

isRestrictionEnabled

获取当前限制数据分析开关的状态。

void

setRestrictionShared:(BOOL)enabled

设置是否限制数据共享。

BOOL

isRestrictionShared

获取限制数据共享开关的状态。

void

addDefaultEventParams:(nullable NSDictionary<NSString *, id> *)params

添加默认事件参数。

void

setWXOpenId:(nullable NSString *)openId

设置微信openId。

void

setWXUnionId:(nullable NSString *)unionId

设置微信unionId。

void

setWXAppId:(nullable NSString *)appId

设置微信appId。

void

setMinActivitySession:(NSTimeInterval)milliseconds

设置App在后台运行时刷新Session的最短时间间隔。

Public Methods

[h2]config

Method

+ (void)config

初始化Analytics Kit。

Analytics Kit将根据配置完成初始化,且需要在主线程中初始化。

说明:
  • 如果已经调用过configWithRoutePolicy设置了指定的数据处理位置,再次调用config时HiAnalytics将会切换成默认数据处理位置。
  • 如果您的应用发布到全球多个国家,建议您启用多数据处理位置,使用configWithRoutePolicy初始化SDK,按照用户实际使用区域指定数据上报位置。

[h2]configWithRoutePolicy

Method

+ (void)configWithRoutePolicy:(nonnull NSString *)routePolicy

初始化Analytics Kit。

Analytics Kit将根据配置完成初始化,且需要在主线程中初始化。

说明:
  • 需通过在线提单申请多数据处理位置功能体验,该接口方可生效。在线提单操作详情请参见在线提单指导。
  • 使用多数据处理位置接口时,请务必下载应用对应的最新AGC配置文件,下载方法:在“项目设置”页面中,点击“应用”栏下的“agconnect-services.plist”。

Parameters

Name

Description

routePolicy

设置的数据处理位置。

数据处理位置包括:CN(中国)、DE(德国)、SG(新加坡)、RU(俄罗斯)。

说明:

设置的数据处理位置必须是开通过存储权限的数据处理位置,如果没有开通,数据将无法上报,请务必设置有效的数据处理位置。

[h2]setReportPolicies

Method

+ (void)setReportPolicies:(nullable NSArray<HAReportPolicy *> *)policies

上报策略接口配置。

Parameters

Name

Description

policies

支持四种上报策略,可以设置多个策略同时存在。

  • onAppLaunchPolicy:应用启动上报策略,选择该策略时会立即上报一次,此后每次应用启动时上报一次。
  • onMoveBackgroundPolicy:应用切后台(包括应用退出)上报策略。
  • onScheduledTimePolicy:定时上报策略,根据指定的间隔时间轮循上报事件,取值范围为[60, 1800]秒,如果设置的值超过给定范围则取边界值。
  • onCacheThresholdPolicy:阈值上报策略,缓存事件条数达到阈值时上报事件,取值范围为[30, 1000]条(默认200条),如果设置的值超过给定范围则取边界值。
  • 以上上报策略仅在非调试模式下生效。
  • 应用切后台上报策略和阈值上报策略为必选策略,无论设置什么策略,这两个策略都会生效,但是可以改变阈值上报策略的阈值。
  • 多次调用设置上报策略的接口,会刷新上报策略,仅最后一次设置的策略生效,请谨慎多次调用。
  • 当策略满足触发事件上报时,如果没有网络,则会将事件缓存在本地,等待下次条件满足继续上报。
  • 上报策略持久化保存。

[h2]onEvent:setParams

Method

+ (void)onEvent:(nonnull NSString *)eventId setParams:(nonnull NSDictionary<NSString *, id> *)params

记录事件。

Parameters

Name

Description

eventId

事件标识符。非空,由数字、字母、下划线组成,不能以数字开头,不能包含空格,长度不超过256字符,不能使用自动采集事件ID。

例如:“event_description10”。

params

事件携带的信息。字典内键值对个数不超过2048,同时大小不超过204800个字符。字典内键值对中key由数字、字母、下划线或“$”组成,不能以数字开头。

[h2]setUserProfile:setValue

Method

+ (void)setUserProfile:(nonnull NSString *)name setValue:(nullable NSString *)value

设置用户属性。用户属性值将在整个应用程序生命周期和会话期间保持不变。最多支持25个用户属性名称,如果后面设置属性有重复的name,则刷新value值。

Parameters

Name

Description

name

用户属性的标识符。非空,由数字、字母、下划线组成,必须以字母开头,长度不超过256字符。

value

属性值。长度不超过256个字符。

  • value可以设置nil,通过传nil来实现删除对应的用户属性。
  • 如果您删除或新增属性,需要在端侧和云侧同步修改,并通过设置的属性name进行关联。

[h2]userProfiles

Method

+ (nullable NSDictionary<NSString *, id> *)userProfiles:(BOOL)preDefined

获取自采集或者自定义的用户属性。

说明:

此接口获取不到自动采集用户属性中的AAID。

Parameters

Name

Description

preDefined

获取自采集或者自定义的用户属性。

  • YES:获取自采集用户属性。
  • NO:获取自定义用户属性。

Returns

Type

Description

NSDictionary<NSString *, id>

自采集或者自定义的用户属性。

[h2]setAnalyticsEnabled

Method

+ (void)setAnalyticsEnabled:(BOOL)enabled

是否打开埋点采集能力。关闭后将上报所有缓存,并不再记录任何数据。

说明:

Parameters

Name

Description

enabled

是否打开埋点采集开关,默认YES。

  • YES:打开
  • NO:关闭

Sample code:

SDK默认打开采集数据,您可参考以下示例代码,关闭埋点采集能力。

-(BOOL)application:(UIApplication *)applicationdidFinishLaunchingWithOptions:(NSDictionary*)launchOptions {
  // Override point for customization after application launch.
  [HiAnalytics config];
  [HiAnalytics setAnalyticsEnabled:NO];
  return YES;
}

[h2]AAID

Method

+ (nonnull NSString *)AAID

获取应用的匿名设备标识。

Returns

Type

Description

NSString *

应用的匿名设备标识。

[h2]setUserId

Method

+ (void)setUserId:(nullable NSString *)userId

设置用户ID。

调用setUserId接口时,如果旧userId不为空字符串且和新userId不同,会重新生成新的session会话。若您不希望使用setUserId标识用户(如用户退出时),必须将userId设为nil。

Parameters

Name

Description

userId

匿名化用户标识,在华为分析服务侧通过此标识进行关联用户数据。只有您可以使用该标识符追溯到具体用户,分析系统无法使用您设置的ID追溯到具体用户。

非空,长度不超过256字符。

说明:

设置userId时,需要遵守分析服务协议,避免使用能标识个人身份信息的原始userId,建议使用随机化的userId。

[h2]setSessionDuration

Method

+ (void)setSessionDuration:(NSTimeInterval)milliseconds

设置Session超时时长。App一直在前台运行,当两个相邻事件的时间间隔超过此接口设置的阈值时,将生成一个新的会话。

Parameters

Name

Description

milliseconds

Session超时时长。单位:毫秒。

取值范围:最小值5秒,最大值5小时。如果设置的值小于最小则取最小,大于最大则取最大。默认1800000毫秒(30分钟)。

[h2]clearCachedData

Method

+ (void)clearCachedData

清除本地缓存的所有采集数据,包括发送失败的缓存数据。

通过以下接口设置的数据将被清理:

说明:

调用此接口将重置AAID,userId也会被重置。

[h2]setRestrictionEnabled

Method

+ (void)setRestrictionEnabled:(BOOL)enabled

设置是否限制数据分析能力。限制分析开关默认值为NO,即默认不限制数据分析能力。

Parameters

Name

Description

enabled

打开或关闭数据分析能力。默认值为NO,即打开数据分析能力。

  • YES:关闭
  • NO:打开

[h2]isRestrictionEnabled

Method

+ (BOOL)isRestrictionEnabled

获取当前限制数据分析开关状态。

Returns

Type

Description

BOOL

获取当前限制数据分析开关状态。

  • YES:当前数据分析是关闭状态。
  • NO:当前数据分析是打开状态。

[h2]setRestrictionShared

Method

+ (void)setRestrictionShared:(BOOL)enabled

设置是否限制数据共享能力。限制数据共享开关默认值为NO,即默认开启数据共享能力。

说明:

仅中国大陆可用,非中国大陆调用无效。

Parameters

Name

Description

enabled

打开或关闭数据共享能力。默认值为NO,即打开数据共享能力。

  • YES:关闭
  • NO:打开

[h2]isRestrictionShared

Method

+ (BOOL)isRestrictionShared

获取当前限制数据共享开关状态。

说明:

仅中国大陆可用,非中国大陆调用无效。

Returns

Type

Description

BOOL

获取当前限制数据共享开关状态。

  • YES:当前数据共享是关闭状态。
  • NO:当前数据共享是打开状态。

[h2]addDefaultEventParams

Method

+ (void)addDefaultEventParams:(nullable NSDictionary<NSString *, id> *)params

添加默认事件参数,默认事件参数将被添加到除自动采集事件之外的所有事件中,默认事件参数与事件参数同名时,使用事件参数。

Parameters

Name

Description

params

默认事件参数。

参数最多支持100个键值对,每个键值对中key的长度不能超过256个字符,且只能由数字、字母、下划线组成,不能以数字开头;value长度不能超过256个字符。

说明:
  • 如果传入的params为nil,将清除所有缓存的默认事件参数;如果传入的键值对中value为NSNull类型,将删除对应的默认事件参数;如果传入的键值对中key已存在,将更新对应的默认事件参数。
  • 默认事件参数的个数和大小会被onEvent计入,请注意参数的使用限制。

[h2]setWXOpenId

Method

+ (void)setWXOpenId:(nullable NSString *)openId

设置微信openId。

若您不希望使用setWXOpenId标识用户(如用户退出时),必须将openId设为nil。

Parameters

Name

Description

openId

非空,长度不超过256字符。

说明:
  • 如果参数非法,SDK将会重置openId为空字符串。
  • 如果传入的openId为nil,将清除设置的微信openId。

[h2]setWXUnionId

Method

+ (void)setWXUnionId:(nullable NSString *)unionId

设置微信unionId。

若您不希望使用setWXUnionId标识用户(如用户退出时),必须将unionId设为nil。

Parameters

Name

Description

unionId

非空,长度不超过256字符。

说明:
  • 如果参数非法,SDK将会重置unionId为空字符串。
  • 如果传入的unionId为nil,将清除设置的微信unionId。

[h2]setWXAppId

Method

+ (void)setWXAppId:(nullable NSString *)appId

设置微信AppId。

Parameters

Name

Description

appId

非空,长度不超过256字符。

说明:
  • 如果参数非法,SDK将会重置appId为空字符串。
  • 如果传入的appId为nil,将清除设置的微信appId。

[h2]setMinActivitySession

Method

+ (void)setMinActivitySession:(NSTimeInterval)milliseconds

设置App在后台运行时刷新Session的最短时间间隔。当App在后台运行,若在后台持续时间超过此接口设置的阈值时,再次进入前台时,将生成一个新的会话。

Parameters

Name

Description

milliseconds

刷新Session的最短时间间隔。单位:毫秒。

取值范围:最小值5秒,最大值5小时。如果设置的值小于最小则取最小,大于最大则取最大。默认30000毫秒(30秒)。