自定义数据上传API

您的APP或网页在集成了 GrowingIO 的 SDK 之后,它将会自动地为您采集一系列用户行为数据,并在 GrowingIO 分析后台供您制成数据分析报表。除上述的用户行为数据(或称为无埋点数据)之外,GrowingIO 还提供了多种 API 接口,供您上传一些自定义事件和变量,下面介绍自定义事件和变量 API 使用方法。

API概览

SDK 提供多种不同类型的API,请根据您的实际需要正确地调用。

// 发送自定义事件 API
+ (void)track:(NSString *)eventId;
+ (void)track:(NSString *)eventId withVariable:(NSDictionary<NSString *, NSObject *> *)variable;

// 发送页面级变量 API,适用于无埋点SDK
+ (void)setPageVariableWithKey:(NSString *)key andStringValue:(NSString *)stringValue toViewController:(UIViewController *)viewController;
+ (void)setPageVariableWithKey:(NSString *)key andNumberValue:(NSNumber *)numberValue toViewController:(UIViewController *)viewController;
+ (void)setPageVariable:(NSDictionary<NSString *, NSObject *> *)variable toViewController:(UIViewController *)viewController;

// 发送转化变量 API
+ (void)setEvarWithKey:(NSString *)key andStringValue:(NSString *)stringValue;
+ (void)setEvarWithKey:(NSString *)key andNumberValue:(NSNumber *)numberValue;
+ (void)setEvar:(NSDictionary<NSString *, NSObject *> *)variable;

// 发送用户变量 API
+ (void)setPeopleVariableWithKey:(NSString *)key andStringValue:(NSString *)stringValue;
+ (void)setPeopleVariableWithKey:(NSString *)key andNumberValue:(NSNumber *)numberValue;
+ (void)setPeopleVariable:(NSDictionary<NSString *, NSObject *> *)variable;

// 访问用户变量 API
+ (void)setVisitor:(NSDictionary<NSString *, NSObject *> *)variable;

// 设置登录用户ID API
+ (void)setUserId:(NSString *)userId;

// 清除登录用户ID API
+ (void)clearUserId;

接口定义

设置登录用户ID

当用户登录之后调用 setUserId API,设置登录用户ID。

// setUserId API原型
+ (void)setUserId:(NSString *)userId;

参数说明

参数名称

类型

是否必须

说明

userId

NSString

用户的登录用户ID

限制:英文数字组合的字符串,长度<=1000,且不能含有特殊字符,不允许传空、"" 或者nil,如有清除操作,请调用 clearUserId 方法

// setuserId API调用示例
[Growing setUserId:@"1234567890"];

如果您的App每次用户升级版本时无需重新登录的话,为防止用户本地缓存被清除导致的无法被识别为登录用户,建议在用户每次升级App版本后初次访问时重新调用上述setUserId方法。

清除登录用户ID

当用户退出登录之后调用clearUserId,清除已经设置的登录用户ID。

// clearUserId API原型
+ (void)clearUserId;
// clearUserId API调用示例
[Growing clearUserId];

设置登录用户变量

当需要上报登录用户变量时,调用 setPeopleVariable API。

发送登录用户信息用于登录用户信息相关分析,在添加代码之前必须在打点管理界面上创建登录用户变量。

// setPeopleVariable API原型
+ (void)setPeopleVariableWithKey:(NSString *)key andStringValue:(NSString *)stringValue;
+ (void)setPeopleVariableWithKey:(NSString *)key andNumberValue:(NSNumber *)numberValue;
+ (void)setPeopleVariable:(NSDictionary<NSString *, NSObject *> *)variable;

参数说明

参数名称

类型

是否必须

说明

key

NSString

用户变量的标识符。

限制:不能为nil或"",长度<=50

value

NSString

用户变量的值。

限制:变量不为nil或者"",若为字符串则长度<= 1000

variables

NSDictionary

用户变量用于用户信息相关的分析。

限制:不能为nil;customerVariables 内部不允许含有NSDictionary或者NSArray;

key 长度<=50,value 长度<=1000,值不能为空串,也就是""。

// setPeopleVariable API调用示例一
[Growing setPeopleVariableWithKey:@"gender" andStringValue:@"male"];
// setPeopleVariable API调用示例二
[Growing setPeopleVariable:@{@"gender":@"male", @"age":@"25"}];

设置访问用户变量

当用户未登录时,定义用户属性变量,也可用于A/B测试上传标签。

当需要上报访问用户变量时,调用 setVisitor API。

发送访问用户信息用于访问用户信息相关分析,在添加代码之前必须在打点管理界面上创建访问用户变量。

SDK版本支持:>=2.4.0

// setVisitor 访问用户变量 API原型
+ (void)setVisitor:(NSDictionary<NSString *, NSObject *> *)variable;

参数说明

参数名称

类型

是否必须

说明

variable

NSDictionary

访问用户信息。

限制:不能为nil;variable 内部不允许含有NSDictionary或者NSArray;

key 长度<=50,value 长度<=1000,值不能为空串,也就是""。

// setVisitor API调用示例
[Growing setVisitor:@{@"gender":@"male", @"age":@"25"}];

设置页面级变量

使用限制:适用于无埋点SDK

当需要上报页面级变量时,调用 setPageVariable API。

发送页面级别的维度信息,用于标记当前页面,在添加代码之前必须在打点管理界面上创建页面级变量。

// setPageVariable API原型
+ (void)setPageVariableWithKey:(NSString *)key andStringValue:(NSString *)stringValue toViewController:(UIViewController *)viewController;
+ (void)setPageVariableWithKey:(NSString *)key andNumberValue:(NSNumber *)numberValue toViewController:(UIViewController *)viewController;
+ (void)setPageVariable:(NSDictionary<NSString *, NSObject *> *)variable toViewController:(UIViewController *)viewController;

参数说明

参数名称

类型

是否必须

说明

key

NSString

页面级变量的标识符。

限制:不能为 nil 或者"",长度<=50

value

NSString

页面级变量的值。

限制:不能为 nil 或者"",若为字符串则长度<= 1000

variable

NSDictionary

页面级别的信息。

限制:不能为 nil;pageLevelVariable 内部不允许含有NSDictionary或者NSArray;

key 长度<=50,value 长度<=1000,值不能为空串,也就是""

SDK 2.6.7 将页面级变量pageLevelVariables与该页面对象绑定,设置不同的值将会合并,如果想要清空,需要传 null 。

代码示例

// setPageVariable API调用示例一
[Growing setPageVariableWithKey:@"author" andStringValue:@"Zhang San" toViewController:myViewController];
// setPageVariable API调用示例二
[Growing setPageVariable:@{@"pageName":@"Home Page", @"author":@"Zhang San"} toViewController:myViewController];

设置转化变量

当需要上报转化变量时,调用 setEvar API。

发送一个转化信息用于高级归因分析,在添加代码之前必须在打点管理界面上创建转化变量。

// setEvar API原型
+ (void)setEvarWithKey:(NSString *)key andStringValue:(NSString *)stringValue;
+ (void)setEvarWithKey:(NSString *)key andNumberValue:(NSNumber *)numberValue;
+ (void)setEvar:(NSDictionary<NSString *, NSObject *> *)variable;

参数说明

参数名称

类型

是否必须

说明

key

NSString

转化变量的标识符。

限制:不能为 nil 或者"",长度<=50

value

NSString

转化变量的值。

限制:变量不为nil或者"",若为字符串则长度<=1000

variable

NSDictionary

转化变量用于高级归因分析。

限制:不能为nil;conversinoLevelVariable 内部不允许含有NSDictionary或者NSArray;

key 长度<=50,value 长度<=1000,值不能为空串,也就是""

// setEvar API调用示例一
[Growing setEvarWithKey:@"campaignId" andStringValue:@"1234567890"];
// setEvar API调用示例二
[Growing setEvar:@{@"campaignId":@"12345", @"campaignOwner":@"Li Si"}];

设置埋点事件和事件级变量

当需要上报埋点事件和事件级变量时,调用 track API。

发送一个埋点事件,在添加所需要发送的事件代码之前,需要在打点管理用户界面创建埋点事件以及事件级变量,并完成埋点事件和事件级变量的绑定。

// track API原型
+ (void)track:(NSString *)eventId;
+ (void)track:(NSString *)eventId withVariable:(NSDictionary<NSString *, NSObject *> *)variable;

参数说明

参数名称

类型

是否必须

说明

eventId

NSString

埋点事件标识符

eventLevelVariable

NSDictionary

事件发生时所伴随的维度信息。

限制:非空,事件级变量个数<=100);eventLevelVariable内部不允许含有NSDictionary或者NSArray; key长度<=50,value长度<=1000,值不能为空字符串,也就是“”

// track API调用示例一
[Growing track:@"registerSuccess"];
// track API调用示例二
[Growing track:@"registerSuccess" withVariable:@{@"gender":@"male", @"age":@"21"}];

最后更新于