了解talkingData
什么是talkingDataTalkingData App Analytics于2012年2月正式上线,5月正式发布。是一套针对移动应用推出的数据统计分析平台,旨在解决移动应用数据统计、渠道评估等日常应用运营数据需求。聚美优品,滴滴打车,去哪网,e代驾等企业均在使用,App Analytics的主要优势有:
了解背景项目由于使用人数越来越多,并且人多bug也多(苦逼程序员了),PM迫切需要一个可以分析用户习惯,分析错误报告日志的东西,原始的情况项目使用的是基础的给后台生成个Log文件来打日志的方式,但是局限性很高,而且是用来分析用户的错误情况,并没有一个用户的使用场景和习惯的分析,咨询了无线部门的同事后就知道了talkingData 使用先要原生来封装 安卓import com.tendcloud.tenddata.TCAgent; @ReactMethod public void addTalkingData(String EVENT_ID,String EVENT_LABEL,ReadableMap map) { Map<String,Object> newMap = new HashMap(); ReadableMapKeySetIterator iterator = map.keySetIterator(); while (iterator.hasNextKey()) { String key = iterator.nextKey(); switch (map.getType(key)) { case Null: newMap.put(key,JSONObject.NULL); break; case Boolean: newMap.put(key,map.getBoolean(key)); break; case Number: newMap.put(key,map.getDouble(key)); break; case String: newMap.put(key,map.getString(key)); break; } TCAgent.onEvent(reactContext,EVENT_ID,EVENT_LABEL,newMap); } IOSRCT_EXPORT_METHOD(addTalkingData:(NSString *)eventName andLableName:(NSString *)lblName andDic:(NSDictionary *)dic){ [TalkingData trackEvent:eventName label:lblName parameters:dic]; } RCT_EXPORT_METHOD(addLog:(NSString *)eventName andDic:(NSDictionary *)dic){ NSMutableDictionary *mutable = [[NSMutableDictionary alloc] init]; NSString *str = @""; if(dic[@"Date"]!=nil){ str = [NSString stringWithFormat:@"%@%@,",str,dic[@"Date"]]; } if(dic[@"IsSuccess"]!=nil){ str = [NSString stringWithFormat:@"%@%@,dic[@"IsSuccess"]]; } if(dic[@"MemberId"]!=nil){ str = [NSString stringWithFormat:@"%@%@,dic[@"MemberId"]]; } NSString *message = dic[@"Message"]; if(message!=nil){ if([message length]>50){ message = [message substringToIndex:50]; } str = [NSString stringWithFormat:@"%@%@",message]; } [mutable setObject:str forKey:@"InfoDetail"]; [TalkingData trackEvent:[NSString stringWithFormat:@"Log_%@",eventName] label:nil parameters:mutable]; } RN使用方法就是 'use strict'; import React,{ NativeModules } from 'react-native'; import { Version,} from './AppConfig'; const NativeModule = NativeModules.RNModule; module.exports = { //判断字符长度 strlen(str){ var len = 0; for (var i=0; i<str.length; i++) { var c = str.charCodeAt(i); //单字节加1 if ((c >= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)) { len++; } else { len+=2; } } return len; },talkingData(event,obj){ if(obj.length > 0){ for(var item in obj){ //超过64位字符 截取显示 if(obj[item].length > 64){ obj[item] = obj[item].substring(0,60) + "..."; } } } obj.version = Version; obj.error = obj.error.toString(); try{ obj.error = JSON.stringify(obj.error); }catch(e){ obj.error = obj.error.toString(); } obj.versionJobNumber = obj.version + '#' + (obj.employee || ''); NativeModule.addTalkingData(event,obj); } } OK,这样外部文件只需要引用这个talkingData文件,使用的时候就是
这样流程就走完了,然后看数据的话就可以去talkingData官网去查看,可以看到非常的牛逼啊,版本筛选,渠道筛选啊等等,各种统计分析都存在。同时,如果程序出现错误,也在上面可以查看,方便定位错误地方。截图一张,体会下
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ios – Xcode 7中两个UIImage视图之间的水平间距
- Solr 配置文件之core.properties、solr.xml和Config Sets
- ruby-on-rails – Ruby:给出一个日期,找到下一个第二或第四
- 如何在Swift 4.1中将混合值类型字典编码为JSON
- 读《大话设计模式》---依赖倒转原则
- c#-4.0 – Windows 8 WinRT中的锁定屏幕
- 给已有数据的oracle表建立外键关系
- 如何在iphone应用程序中使用进度条
- 可能是东半球最好的 React + Redux 启动器,基于 Vue Cli 二
- 转:oracle connect by level start with使用