IOS_SDK_接入说明文档
一、说明
1.适用范围
本文档适用于IOS 7.0及以上的操作系统。
2.统计说明
为了能够在接入过程中保持概念统一,针对通用概念做如下说明:
- 设备
指某台安装了IOS应用的终端,例如iPhone、iPad、iTouch等。
- 账号
指用户在某台设备上安装了应用之后,在应用中的唯一标识。
通常用作账号的标识符可以是用户注册应用时的唯一用户名(如邮件地址),也可以是用户注册时自动生成的唯一字符串。
二、接入流程
1.申请APP GUID
1)打开https://go.tkioglobal.com,使用您已注册的热云账号进行登录。
2)进入”Apps&Assets“创建App,获取”APP GUID“,APP GUID为应用的唯一标识,用于集成到SDK中。
注:为了保证您的数据安全,请勿泄露您的APP GUID。
2.导入SDK
1)点击下载iOS SDK,下载SDK压缩包,解压至本地目录。
2)将目录中的tkioglobal_ios_1.x.x.a,tkioglobal_ios_1.x.x.h导入到您的工程中。
导入方法:在工程目录结构中,右键选择Add->Existing Files...,选择tkioglobal_ios_1.x.x.a和tkioglobal_ios_1.x.x.h(或将文件拖入Xcode工程目录结构中)文件,在弹出的界面中勾选Copy items into destination group's folder(if needed),并确保Add To Targets勾选相应target。
3.接入SDK
详见“三、接入方法说明”
4.测试
1)在开发环境中进行Debug测试:
+(void) setPrintLog :(BOOL)print;
注:热云SDK所有API接口的http response均以status:0表示成功,若不成功,会在返回的json里提示详细错误信息。
2)查看测试数据:
在"Apps&Assets"-"Install Feed Validation"中查看最近一次您上报的激活数据,如提示”Integration Success“说明SDK初始化(激活事件)成功;
在”Event Manager“中查看您最近一次上报的事件数据,如在页面中显示您上报的事件名,说明事件上报成功
三、接入方法说明
1.添加SDK所需依赖框架
使用Security.framework来存储设备标识,
使用CoreTelephony.framework来获取运营商信息,
使用AdSupport.framework来获取Advertising Identifier信息,
使用SystemConfiguration.framework来检查当前网络环境,
使用libsqlite3.dylib用来存储数据,
使用iAd.framework、AVFoundation.framework来获取数据。
使用libz.tbd来压缩数据。
• 添加方法:
在工程目录中,选择
TARGETS-->Build Phases-->Link Binary With Libraries-->+ -->选择Security.framework、CoreTelephony.framework、AdSupport.framework、SystemConfiguration.framework
、libsqlite3.dylib、iAd.framework 、AVFoundation.framework、libz.tbd等库文件。
新版xcode .dylib以.tbd为后缀,添加对应动态库。
注:
1)如上动态库请全部配置,避免报错。
2)xcode 7及以上版本,.dylib后缀结尾的系统库均更改为.tbd后缀结尾
2.初始化热云SDK
用途:报送激活
方法接口:+ (void)initWithAppKey:(NSString *)appKey withChannelId:(NSString *)channelId;
参数说明:
| 参数 | 类型 | 是否必填 | 长度 | 说明 |
|---|---|---|---|---|
| appKey | NSString* | 是 | APP GUID | |
| channelId | NSString* | 是 | 最长64位 | 填写_default_ |
示例代码:
#import “tkioglobal_ios_1.x.x.h”
-(BOOL)application:(UIApplication *)applicationdidFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[ReYunTracking initWithAppKey:@"475938c702f7451a88eaffb524962649" withChannelId:@"_default_"];
}
3.统计用户注册
用途:报送注册事件
方法接口:
+ (void)setRegisterWithUserName:(NSString *)userName UserId:(NSString *)userId referralFrom:(NSString *)referralFrom;
参数说明:
| 参数 | 类型 | 是否必填 | 长度 | 说明 |
|---|---|---|---|---|
| userName | NSString* | 是 | 最长64位 | 用户名称标识 |
| userId | NSString* | 是 | 最长64位 | 用户唯一id(账号id) |
| referralFrom | NSString* | 是 | 最长64位 | 事件引荐来源 |
示例代码:
[ReYunTracking setRegisterWithUserName:@"helloworld" UserId:@"UserUniqueID_test123" referralFrom:@"FromPhoneNumberRegistered"];
4.统计用户登录
用途:报送登录事件
方法接口:
+ (void)setLoginWithUserName:(NSString *)userName UserId:(NSString *)userId referralFrom:(NSString *)referralFrom;
参数说明:
| 参数 | 类型 | 是否必填 | 长度 | 说明 |
|---|---|---|---|---|
| userName | NSString* | 是 | 最长64位 | 用户名称标识 |
| userId | NSString* | 是 | 最长64位 | 用户唯一id(账号id) |
| referralFrom | NSString* | 是 | 最长64位 | 事件引荐来源 |
示例代码:
[ReYunTracking setLoginWithUserName:@"helloworld" UserId:@"UserUniqueID_test123" referralFrom:@"FromPhoneNumberRegistered"];
5.统计用户订单
用途:报送订单事件
注:前端报送支付有掉单风险,收入数据会出现误差,为确保支付数据准确,建议使用服务器报送支付(请参考S2S集成文档)。
方法接口:
+(void)setDDWithName:(NSString *)name userId:(NSString *)userId checkoutAsGuest:(NSString *)checkoutAsGuest contentId:(NSString *)contentId tid:(NSString *)ryTID hbType:(NSString*)hbType hbAmount:(float)hbAmount;
参数说明:
| 参数 | 类型 | 是否必填 | 长度 | 说明 |
|---|---|---|---|---|
| name | NSString* | 是 | 最长64位 | 订单名称 |
| userId | NSString* | 是 | 最长64位 | 用户唯一id(账号id) |
| checkoutAsGuest | NSString* | 是 | 最长64位 | 任何有关游客下单的数据 |
| contentId | NSString* | 是 | 最长64位 | 下单商品id |
| ryTID | NSString* | 是 | 最长64位 | 流水单id,确保唯一 |
| hbType | NSString* | 是 | 最长3位 | 货币类型,按照国际标准组织ISO4217中规范的3位大写字母,如USD |
| hbAmount | float | 是 | 最长16位 | 订单金额 |
示例代码:
[ReYunTracking setDDWithName:@"GameProps_1234" userId:@"UserUniqueID_test123" checkoutAsGuest:@"null" contentId:@"34234124235232" tid:@"2131231211212" hbType:@"USD" hbAmount:1.1];
6.统计用户付费
用途:报送付费事件
注:前端报送支付有掉单风险,收入数据会出现误差,为确保支付数据准确,建议使用服务器报送支付(请参考S2S集成文档)。
方法接口:
+(void)setRyzfWithName:(NSString *)name userId:(NSString *)userId checkoutAsGuest:(NSString *)checkoutAsGuest contentId:(NSString *)contentId tid:(NSString *)ryTID hbType:(NSString*)hbType hbAmount:(float)hbAmount;
参数说明:
| 参数 | 类型 | 是否必填 | 长度 | 说明 |
|---|---|---|---|---|
| name | NSString* | 是 | 最长64位 | 付费名称 |
| userId | NSString* | 是 | 最长64位 | 用户唯一id(账号id) |
| checkoutAsGuest | NSString* | 是 | 最长64位 | 任何有关游客下单的数据 |
| contentId | NSString* | 是 | 最长64位 | 付费商品id |
| ryTID | NSString* | 是 | 最长64位 | 流水单id,确保唯一 |
| hbType | NSString* | 是 | 最长3位 | 货币类型,按照国际标准组织ISO4217中规范的3位大写字母,如USD |
| hbAmount | float | 是 | 最长16位 | 付费金额 |
示例代码:
[ReYunTracking setRyzfWithName:@"GameProps_1234" userId:@"UserUniqueID_test123" checkoutAsGuest:@"null" contentId:@"34234124235232" tid:@"2131231211212" hbType:@"USD" hbAmount:2.2];
7.统计用户订阅
用途:报送订阅事件
注:前端报送支付有掉单风险,收入数据会出现误差,为确保支付数据准确,建议使用服务器报送支付(请参考S2S集成文档)。
方法接口:
+(void)setSubscribeWithName:(NSString *)name userId:(NSString *)userId checkoutAsGuest:(NSString *)checkoutAsGuest contentId:(NSString *)contentId tid:(NSString *)ryTID hbType:(NSString*)hbType hbAmount:(float)hbAmount;
参数说明:
| 参数 | 类型 | 是否必填 | 长度 | 说明 |
|---|---|---|---|---|
| name | NSString* | 是 | 最长64位 | 订阅名称 |
| userId | NSString* | 是 | 最长64位 | 用户唯一id(账号id) |
| checkoutAsGuest | NSString* | 是 | 最长64位 | 任何有关游客下单的数据 |
| contentId | NSString* | 是 | 最长64位 | 订阅商品id |
| ryTID | NSString* | 是 | 最长64位 | 流水单id,确保唯一 |
| hbType | NSString* | 最长3位 | 货币类型,按照国际标准组织ISO4217中规范的3位大写字母,如USD | |
| hbAmount | float | 最长16位 | 订阅金额 |
示例代码:
[ReYunTracking setSubscribeWithName:@"7dVIP_Free" userId:@"UserUniqueID_test123" checkoutAsGuest:@"null" contentId:@"34234124235232" tid:@"2131231211212" hbType:@"USD" hbAmount:3.3];
8.统计用户App内搜索
用途:报送搜索事件
方法接口:
+(void)setSearchWithUri:(NSString *)uri results:(NSString *)results;
参数说明:
| 参数 | 类型 | 是否必填 | 长度 | 说明 |
|---|---|---|---|---|
| uri | NSString* | 是 | 搜索内容 | |
| results | NSString* | 是 | 最长64位 | 搜索结果 |
示例代码:
[ReYunTracking setSearchWithUri:@"search-uri" results:@"1234results"];
9.统计用户App内浏览
用途:报送浏览事件
方法接口:
+(void)setViewWithName:(NSString *)name userId:(NSString *)user_id referralFrom:(NSString *)referral_from contentId:(NSString *)content_id;
参数说明:
| 参数 | 类型 | 是否必填 | 长度 | 说明 |
|---|---|---|---|---|
| name | NSString* | 是 | 最长64位 | 浏览内容 |
| user_id | NSString* | 是 | 最长64位 | 用户唯一id(账号id) |
| referral_from | NSString* | 是 | 最长64位 | 事件引荐来源 |
| content_id | NSString* | 是 | 最长64位 | 浏览内容唯一id |
示例代码:
[ReYunTracking setViewWithName:@"KidShoes" userId:@"UserUniqueID_test123" referralFrom:@"FromSearch" contentId:@"34234124235232"];
10.统计用户加入购物车
用途:报送加入购物车事件
方法接口:
+(void)setAddToCartWithName:(NSString *)name userId:(NSString *)user_id referralFrom:(NSString *)referral_from contentId:(NSString *)content_id;
参数说明:
| 参数 | 类型 | 是否必填 | 长度 | 说明 |
|---|---|---|---|---|
| name | NSString* | 是 | 最长64位 | 加购内容 |
| user_id | NSString* | 是 | 最长64位 | 用户唯一id(账号id) |
| referral_from | NSString* | 是 | 最长64位 | 事件引荐来源 |
| content_id | NSString* | 是 | 最长64位 | 加购内容唯一id |
示例代码:
[ReYunTracking setAddToCartWithName:@"KidShoes" userId:@"UserUniqueID_test123" referralFrom:@"FromSearch" contentId:@"34234124235232"];
11.统计用户加入愿望清单(收藏)
用途:报送加入愿望清单事件
方法接口:
+(void)setAddToWishlistWithName:(NSString *)name userId:(NSString *)user_id referralFrom:(NSString *)referral_from contentId:(NSString *)content_id;
参数说明:
| 参数 | 类型 | 是否必填 | 长度 | 说明 |
|---|---|---|---|---|
| name | NSString* | 是 | 最长64位 | 收藏内容 |
| user_id | NSString* | 是 | 最长64位 | 用户唯一id(账号id) |
| referral_from | NSString* | 是 | 最长64位 | 事件引荐来源 |
| content_id | NSString* | 是 | 最长64位 | 收藏内容唯一id |
示例代码:
[ReYunTracking setAddToWishlistWithName:@"KidShoes" userId:@"UserUniqueID_test123" referralFrom:@"FromSearch" contentId:@"34234124235232"];
12.统计用户完成教程
用途:报送完成教程事件
方法接口:
+(void)setTutorialCompleteWithName:(NSString *)name userId:(NSString *)user_id duration:(NSString *)duration;
参数说明:
| 参数 | 类型 | 是否必填 | 长度 | 说明 |
|---|---|---|---|---|
| name | NSString* | 是 | 最长64位 | 教程名称 |
| user_id | NSString* | 是 | 最长64位 | 用户唯一id(账号id) |
| duration | NSString* | 是 | 最长64位 | 完成教程所花费的时间,单位:秒 |
示例代码:
[ReYunTracking setTutorialCompleteWithName:@"1stTutorial" userId:@"UserUniqueID_test123" duration:@"1234"];
13.统计用户达成等级
用途:报送达成等级事件
方法接口:
+(void)setLevelCompleteWithName:(NSString *)name userId:(NSString *)user_id duration:(NSString *)duration;
参数说明:
| 参数 | 类型 | 是否必填 | 长度 | 说明 |
|---|---|---|---|---|
| name | NSString* | 是 | 最长64位 | 等级信息 |
| user_id | NSString* | 是 | 最长64位 | 用户唯一id(账号id) |
| duration | NSString* | 是 | 最长64位 | 达成等级所花费的时间,单位:秒 |
示例代码:
[ReYunTracking setLevelCompleteWithName:@"Level9" userId:@"UserUniqueID_test123" duration:@"1234"];
14.统计用户达成成就
用途:报送达成成就事件
方法接口:
+(void)setAchievementWithName:(NSString *)name userId:(NSString *)user_id duration:(NSString *)duration;
参数说明:
| 参数 | 类型 | 是否必填 | 长度 | 说明 |
|---|---|---|---|---|
| name | NSString* | 是 | 最长64位 | 成就信息 |
| user_id | NSString* | 是 | 最长64位 | 用户唯一id(账号id) |
| duration | NSString* | 是 | 最长64位 | 达成成就所花费的时间,单位:秒 |
示例代码:
[ReYunTracking setAchievementWithName:@"BattleVictory" userId:@"UserUniqueID_test123" duration:@"1234"];
15.统计用户点击广告数据
用途:报送广告点击事件
方法接口:
+(void)setAdClickWithAdType:(NSString *)ad_type adNetworkName:(NSString *)ad_network_name placement:(NSString *)placement;
参数说明:
| 参数 | 类型 | 是否必填 | 长度 | 说明 |
|---|---|---|---|---|
| ad_type | NSString* | 是 | 最长64位 | 广告类型或唯一标识(id) |
| ad_network_name | NSString* | 是 | 最长64位 | 广告平台名称 |
| placement | NSString* | 是 | 最长64位 | 广告位名称 |
示例代码:
[ReYunTracking setAdClickWithAdType:@"RewardedVideo" adNetworkName:@"Facebook" placement:@"placementID_test123"];
16.统计用户展示广告
用途:报送广告展示事件
方法接口:
+(void)setAdViewWithAdType:(NSString *)ad_type adNetworkName:(NSString *)ad_network_name placement:(NSString *)placement;
参数说明:
| 参数 | 类型 | 是否必填 | 长度 | 说明 |
|---|---|---|---|---|
| ad_type | NSString* | 是 | 最长64位 | 广告类型或唯一标识(id) |
| ad_network_name | NSString* | 是 | 最长64位 | 广告平台名称 |
| placement | NSString* | 是 | 最长64位 | 广告位名称 |
示例代码:
[ReYunTracking setAdViewWithAdType:@"RewardedVideo" adNetworkName:@"Facebook" placement:@"placementID_test123"];
17.统计用户评分
用途:报送评分事件
方法接口:
+(void)setRatingWithAdRatingValue:(float)rating_value maxRatingValue:(float)max_rating_value;
参数说明:
| 参数 | 类型 | 是否必填 | 长度 | 说明 |
|---|---|---|---|---|
| rating_value | float | 是 | 最长64位 | 用户评分值 |
| max_rating_value | float | 是 | 最长64位 | 最高评分值 |
示例代码:
[ReYunTracking setRatingWithAdRatingValue:3.0 maxRatingValue:5.0];
18.自定义事件
用途:统计自定义事件,自定义事件名称不能与上述标准事件一致,后台每个app最多可显示100个事件(包括标准事件)。
方法接口:
+(void)setEvent:(NSString *)eventName andExtra:(nullable NSDictionary *)extra;
参数说明:
| 参数 | 类型 | 是否必填 | 长度 | 说明 |
|---|---|---|---|---|
| eventName | NSString* | 是 | 最长64位 | 自定义事件名称 |
| extra | NSDictionary* | 是 | 键值对不能超过20个,键为string型,值不做要求 | 自定义事件参数 |
示例代码:
[ReYunTracking setEvent:@"eve" andExtra:@{@"name":@"levelup",@"currentlevel":@10}];
四、技术支持
如有任何问题,请及时联系我们的技术支持工程师:
技术支持邮箱:[email protected]
技术支持QQ:2785608528