博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
了解talkingData
阅读量:6587 次
发布时间:2019-06-24

本文共 3625 字,大约阅读时间需要 12 分钟。

什么是talkingData

TalkingData 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
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); }

IOS

RCT_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:@"%@%@,",str,dic[@"IsSuccess"]];  }  if(dic[@"MemberId"]!=nil){    str = [NSString stringWithFormat:@"%@%@,",str,dic[@"MemberId"]];  }  NSString *message = dic[@"Message"];  if(message!=nil){    if([message length]>50){      message = [message substringToIndex:50];    }    str = [NSString stringWithFormat:@"%@%@",str,message];  }    [mutable setObject:str forKey:@"InfoDetail"];    [TalkingData trackEvent:[NSString stringWithFormat:@"Log_%@",eventName] label:nil parameters:mutable];  }

RN

使用方法就是NativeModule.addTalkingData(event,label,obj);

不过通常都是需要默认带上一些信息,以及不想每个地方都声明一次NativeModule模块,于是就直接单开一个文件把该方法开出去给其他文件使用

'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
= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)) { len++; } else { len+=2; } } return len; }, talkingData(event,label,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,label,obj); }}

OK,这样外部文件只需要引用这个talkingData文件,使用的时候就是

talkingData('myevent','mylabel',{'name':xxx,'error':'xxx'});

这样流程就走完了,然后看数据的话就可以去talkingData官网去查看,可以看到非常的牛逼啊,版本筛选,渠道筛选啊等等,各种统计分析都存在。同时,如果程序出现错误,也在上面可以查看,方便定位错误地方。截图一张,体会下

clipboard.png

转载地址:http://vfeno.baihongyu.com/

你可能感兴趣的文章
0712 - 坚守,加强老本
查看>>
MarkDown语法
查看>>
这么说吧,NIO很简单,其实就是个牛逼IO
查看>>
七、【应用的主要框架】
查看>>
使用Python快速获取公众号文章定制电子书(二)
查看>>
weak和assign的区别
查看>>
iOS下JS与OC互相调用(七)--Cordova 基础
查看>>
两列自适应布局方案整理
查看>>
测试本地node包
查看>>
Three.js 关于立方体贴图产生边缘锯齿问题
查看>>
自己动手,在macOS High Sierra中编译一个可debug的JDK
查看>>
用掘金-Markdown 编辑器写文章
查看>>
一文搞懂前端对象的深拷贝与浅拷贝
查看>>
Like Sunday, Like Rain - JavaScript运算符优先级
查看>>
Nacos v0.7.0:对接CMDB,实现基于标签的服务发现能力
查看>>
Android播放器基础封装库PlayerBase
查看>>
最大熵模型
查看>>
【开发问题记录①】关于滑动CollectionView时ContentSize变化的问题
查看>>
一篇搞定导航守卫(vue-router源码学习)
查看>>
纯前端控件集 WijmoJS 2018V2发布,提供可视化设计器,在React、Vue和Angular中的更易用...
查看>>