• iOS SDK API
    • SDK 接口说明
    • SDK SDK初始化
    • SDK 页面流统计
    • SDK 地理位置统计
    • SDK 崩溃日志统计
    • SDK 日志等级设置
    • 事件统计
    • 登录事件模型
    • 注册事件模型
    • 购买事件模型
    • 浏览事件模型
    • 计数事件模型
    • 计算事件模型
    • SDK 设置用户信息
    • SDK 解绑当前的用户信息
    • SDK 设置上报频率
    • 开启圈选埋点
    • 技术支持

    iOS SDK API

    SDK 接口说明

    • JANALYTICSService类,包含统计SDK的所有接口
    • JANALYTICSLaunchConfig类,统计SDK启动配置模型
    • JANALYTICSEventObject类,统计事件模型

    SDK SDK初始化

    • + (void)setupWithConfig:(JANALYTICSLaunchConfig *)config

      • 接口说明:

        • 初始化接口,建议在application:didFinishLaunchingWithOptions:中调用
      • 参数说明:

        • config:JANALYTICSLaunchConfig类
      • 调用示例:
    1. JANALYTICSLaunchConfig * config = [[JANALYTICSLaunchConfig alloc] init];
    2. config.appKey = @"your appkey";
    3. config.channel = @"channel";
    4. [JANALYTICSService setupWithConfig:config];

    SDK 页面流统计

    • + (void)startLogPageView:(NSString *)pageName

      • 接口说明:

        • 页面流统计开始接口,建议在ViewControler的viewDidAppear:方法中调用
      • 参数说明:

        • pageName:要开始统计的页面名
      • 调用示例:
    1. - (void)viewDidAppear:(BOOL)animated {
    2. [JANALYTICSService startLogPageView:@"first_page_flow"];
    3. }
    • + (void)stopLogPageView:(NSString *)pageName

      • 接口说明:

        • 页面流统计结束接口,建议在ViewControler的viewDidDisappear:方法中调用;结束后,默认即时上报此页面。可通过[setFrequency:]方法更改为周期性上报策略
      • 参数说明:

        • pageName:要结束统计的页面名
      • 调用示例:
    1. - (void)viewDidDisappear:(BOOL)animated {
    2. [JANALYTICSService stopLogPageView:@"first_page_flow"];
    3. }

    SDK 地理位置统计

    • + (void)setLatitude:(double)latitude longitude:(double)longitude

      • 接口说明:

        • 上报LBS信息
      • 参数说明:

        • latitude:纬度
        • longitude: 经度
          调用示例:
    1. [JANALYTICSService setLatitude:116.46 longitude:39.92];
    • + (void)setLocation:(CLLocation *)location

      • 接口说明:

        • 上报LBS信息
      • 参数说明:

        • location: CoreLocation.framework框架中的LBS类
          调用示例:
    1. CLLocation * location = [[CLLocation alloc] initWithCoordinate:CLLocationCoordinate2DMake(116.46, 39.92) altitude:50 horizontalAccuracy:50 verticalAccuracy:50 timestamp:[NSDate date]];
    2. [JANALYTICSService setLocation:location];

    SDK 崩溃日志统计

    • + (void)crashLogON
      • 接口说明:
        • 开启crash日志收集,默认是关闭状态
          调用示例:
    1. [JANALYTICSService crashLogON];

    SDK 日志等级设置

    • + (void)setDebug:(BOOL)enable

      • 接口说明:

        • 设置是否打印sdk产生的Debug级log信息, 默认为NO(不打印log)
      • 参数说明:

        • enable:设置为YES开启,设置为NO关闭
          调用示例:
    1. [JANALYTICSService setDebug:YES];

    事件统计

    • + (void)eventRecord:(JANALYTICSEventObject *)event

      • 接口说明:

        • 自定义事件。通过传入不同的事件模型来进行各种事件的统计,具体的事件模型请查看事件模型介绍
      • 参数说明:

        • event:事件统计对象
          关于事件统计的说明:
    • 模板属性值分为非空和可选,参考下面介绍

    • 字符串属性以及自定义属性(extra中的key与value)限制大小不超过256字节,当存在越界时该事件将会被丢弃.
    • 自定义键值对数目不能超过10个,超过10个限制该事件将会被丢弃.
    • 默认即时上报事件。可通过[setFrequency:]方法更改为周期性上报策略

    • JANALYTICSEventObject

    该模型是通用的父模型,不能单独使用参数说明:

    参数名称参数类型参数说明
    extraNSDictionary自定义属性

    登录事件模型

    • JANALYTICSLoginEvent
      该模型是登录事件模型,可以设置参数进行数据上报。

    参数说明:

    参数名称参数类型参数说明
    methodNSString登录方式(非空)
    successBOOL登录是否成功(非空)

    调用示例:

    1. JANALYTICSLoginEvent * event = [[JANALYTICSLoginEvent alloc] init];
    2. event.success = YES;
    3. event.method = @"login type";
    4. event.extra = @{@"custom key1":@"custom value"};
    5. [JANALYTICSService eventRecord:event];

    注意:

    1. 登录事件模型中扩展参数中不能使用以下 key 值:
    2. login_method
    3. login_success
    4. 此类 key 已被模型使用,如果使用则会导致统计到的数据不准确.

    注册事件模型

    • JANALYTICSRegisterEvent
      该模型是注册事件模型,可以设置参数进行数据上报。

    参数说明:

    参数名称参数类型参数说明
    methodNSString注册方式(非空)
    successBOOL注册是否成功(非空)

    调用示例:

    1. JANALYTICSRegisterEvent * event = [[JANALYTICSRegisterEvent alloc] init];
    2. event.success = YES;
    3. event.method = @"register type";
    4. event.extra = @{@"custom key1":@"custom value"};
    5. [JANALYTICSService eventRecord:event];

    注意:

    1. 注册事件模型中扩展参数中不能使用以下 key 值:
    2. register_method
    3. register_success
    4. 此类 key 已被模型使用,如果使用则会导致统计到的数据不准确.

    购买事件模型

    • JANALYTICSPurchaseEvent
      该模型是购买事件模型,可以设置参数进行数据上报。

    参数说明:

    参数名称参数类型参数说明
    goodsIDNSString商品id
    goodsNameNSString商品名称
    priceCGFloat购买价格(非空)
    successBOOL购买是否成功(非空)
    currencyJANALYTICSPurchaseCurrency货币类型,目前只支持CNY/USD,具体请参考JANALYTICSPurchaseEvent头文件
    goodsTypeNSString商品类型
    quantityNSInteger商品数量

    调用示例:

    1. JANALYTICSPurchaseEvent * event = [[JANALYTICSPurchaseEvent alloc] init];
    2. event.success = NO;
    3. event.price = 5388.0;
    4. event.goodsName = @"iphone7";
    5. event.goodsType = @"phone";
    6. event.quantity = 1000.1;
    7. event.goodsID = @"123456";
    8. event.currency = JANALYTICSCurrencyCNY;
    9. event.extra = @{@"custom key1":@"custom value"};
    10. [JANALYTICSService eventRecord:event];

    注意:

    1. 购买事件模型中扩展参数中不能使用以下 key 值:
    2. purchase_goods_id
    3. purchase_goods_name
    4. purchase_price
    5. purchase_currency
    6. purchase_goods_type
    7. purchase_quantity
    8. purchase_success
    9. 此类 key 已被模型使用,如果使用则会导致统计到的数据不准确.

    浏览事件模型

    • JANALYTICSBrowseEvent
      该模型是浏览事件模型,可以设置参数进行数据上报。

    参数说明:

    参数名称参数类型参数说明
    contentIDNSString浏览内容id
    nameNSString内容名称(非空)
    typeNSString内容类型
    durationCGFloat浏览时长

    调用示例:

    1. JANALYTICSBrowseEvent * event = [[JANALYTICSBrowseEvent alloc] init];
    2. event.name = @"browse name";
    3. event.type = @"browse type";
    4. event.contentID = @"browse id";
    5. event.duration = 1.2;
    6. event.extra = @{@"custom key1":@"custom value"};
    7. [JANALYTICSService eventRecord:event];

    注意:

    1. 浏览事件模型中扩展参数中不能使用以下 key 值:
    2. browse_content_id
    3. browse_name
    4. browse_type
    5. browse_duration
    6. 此类 key 已被模型使用,如果使用则会导致统计到的数据不准确.

    计数事件模型

    • JANALYTICSCountEvent
      该模型是自定义计数事件模型,可以设置参数进行数据上报。

    参数说明:

    参数名称参数类型参数说明
    eventIDNSString事件ID(非空)

    调用示例:

    1. JANALYTICSCountEvent * event = [[JANALYTICSCountEvent alloc] init];
    2. event.eventID = @"event id";
    3. event.extra = @{@"custom key1":@"custom value"};
    4. [JANALYTICSService eventRecord:event];

    注意:

    1. 自定义计数事件模型中扩展参数中不能使用以下 key 值:
    2. event_id
    3. 此类 key 已被模型使用,如果使用则会导致统计到的数据不准确.

    计算事件模型

    • JANALYTICSCalculateEvent
      该模型是自定义计算事件模型,计算事件会通过相同的事件不同的值进行累加,可以设置参数进行数据上报。

    参数说明:

    参数名称参数类型参数说明
    eventIdString事件Id(非空)
    valueCGFloat事件的值(非空)

    调用示例:

    1. JANALYTICSCalculateEvent * event = [[JANALYTICSCalculateEvent alloc] init];
    2. event.eventID = @"event id";
    3. event.value = 10.2;
    4. event.extra = @{@"custom key1":@"custom value"};
    5. [JANALYTICSService eventRecord:event];

    注意:

    1. 自定义计算事件模型中扩展参数中不能使用以下 key 值:
    2. event_id
    3. event_value
    4. 此类 key 已被模型使用,如果使用则会导致统计到的数据不准确.

    SDK 设置用户信息

    • + (void)identifyAccount:(JANALYTICSUserInfo )userInfo with:(void (\^)(NSInteger err, NSString msg))completion

      • 接口说明:

        • 绑定用户维度
      • 参数说明:

        • userInfo:用户信息模型
        • completion: 错误码和错误信息callback
          调用示例:
    1. JANALYTICSUserInfo * userinfo = [[JANALYTICSUserInfo alloc] init];
    2. userinfo.accountID = @"janalyticsID1";
    3. userinfo.creationTime = [[NSDate date] timeIntervalSince1970];
    4. userinfo.sex = JANALYTICSSexMale;
    5. userinfo.paid = JANALYTICSPaidPaid;
    6. userinfo.email = @"test@jiguang.cn";
    7. [userinfo setExtraObject:@"extraObj1" forKey:@"extrakey1"];
    8. [JANALYTICSService identifyAccount:userinfo with:^(NSInteger err, NSString *msg) {
    9. if (err) {
    10. NSLog(@"identify ERR:%ld|%@", err, msg);
    11. }else {
    12. NSLog(@"identify success");
    13. }
    14. }];

    JANALYTICSUserInfo模型的使用方法请参考对应头文件

    SDK 解绑当前的用户信息

    • + (void)detachAccount:(void (\^)(NSInteger err, NSString * msg))completion

      • 接口说明:

        • 解绑当前绑定的用户维度
      • 参数说明:

        • completion: 错误码和错误信息callback
          调用示例:
    1. [JANALYTICSService detachAccount:^(NSInteger err, NSString *msg) {
    2. if (err) {
    3. NSLog(@"detach ERR:%ld|%@", err, msg);
    4. }else {
    5. NSLog(@"detach success");
    6. }
    7. }];

    SDK 设置上报频率

    • + (void)setFrequency:(NSUInteger)frequency

      • 接口说明:

        • 设置页面流/事件等周期上报频率
        • 默认为未设置频率,即时上报
        • 可以设置为0,即表示取消周期上报,改为即时上报
      • 参数说明:

        • frequency: 定时上报频率单位秒频率允许区间:0,或者 10 - 246060的区间
          调用示例:
    1. //e.g. 十分钟上报一次
    2. [JANALYTICSService setFrequency:600];

    开启圈选埋点

    • + (BOOL)handleUrl:(NSURL *)url

      • 接口说明:

        • 扫码后,跳转至应用,调用此接口开启圈选埋点
      • 参数说明:

        • url: 圈选启动链接,请直接透传给sdk解析
          调用示例:
    1. - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
    2. if ([JANALYTICSService handleUrl:url]) {
    3. return YES;
    4. }
    5. return NO;
    6. }

    技术支持

    邮件联系:support@jiguang.cn