首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JJEvent 一个可靠的Android端数据SDK

V1.0.0功能列表 是否支持 接口自定义 支持 缓存策略 支持 外部cookie注入 支持 推送周期设定 支持 强制推送 支持 自定义事件 支持 独立运行 支持 多线程写入 支持 后台线程服务 支持...但是 这些统计, 第一,就是上传的频率,比较固定, 难以满足要求不同的频次需求. 第二,需要统计到的字段和规则都是死板的,无法定制....后续, 我会继续思考,更好的实现方式. 也请大家一起分享自己的思路....JJEvent设计初衷为:一个统计SDK, 可以单独发布到仓库,单独被项目依赖而不产生冲突,拥有自己的数据存储,网络请求....后期,在我们做自己的业务线的时候,大家也可以采用这种方法. sdk生成,版本管理,混淆打包 自己在gradle中写了一个打包脚本,让打包的过程,自动化.详情见源码. 1task release_jj_analytics_lib_aar

2K40

腾讯二面:现在要你实现一个监控SDK,你会怎么设计?

这是小伙伴上周被问到的一个综合性设计题,如果是没有用过监控系统,或者没有深入了解,基本就凉凉。 这篇文章会讲清楚: 监控系统负责处理哪些问题,需要怎么设计api?...什么是监控SDK 举个例子,公司开发上线了一个网站,但开发人员不可能预测,用户实际使用时会发生什么:用户浏览过哪几个页面?几成用户会点击某个弹窗的确认按钮,几成会点击取消?有没有出现页面崩溃?...所以我们需要一个监控SDK去做数据的收集,后续再统计分析。有了分析数据,才能有针对性对网站进行优化:PV特别少的页面就不要浪费大量人力;有bug的页面赶紧修复,不然要325了。...公众号后台回复「ReactSDK」可获取react版本的github 监控的职能范围 因为业务需要的不同,大部分公司都会自己开发一套监控系统,但基本上都会涵盖这三类功能: 用户行为监控 负责统计...,要怎么接入我们自己SDK

1.8K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    数据|六个步骤实现数据方案设计

    为了避免这些问题,小编把自己踩过的坑总结出来并形成一套方法论,希望初学的你或即将转行的你能够少采坑,高效地完成数据工作!...当然,这只是一些初步的方案,想要让指标变得“准”而“全”当然还需要另外一些方法实现,比如用户路径之类的。...02 六个步骤实现数据设计 数据设计师数据分析师是的重中之重,设计得好能够极大地方便后续的数据应用。对于数据设计,我们也总结了六个关键步骤。...,确定每一个步骤学要看哪些字段才能实现数据需求。...(6)明确数据优先级:根据需求的紧急程度,给每一个任务标上优先级。 ? 根据上面的六个步骤,将每一个步骤需要记录的字段按照标准格式汇总到文档,即可完成初步的设计。

    8.4K12

    「前端曝光上报」实现方案

    曝光的含义比较模糊,具体的统计方式也比较麻烦,本文分享一个前端曝光上报的实现方案。 方案 为了统计曝光数据,首先要做的是,定义什么是曝光,然后制定上报数据的策略。...开始操作 整体实现 具体的代码实现如下: 使用IntersectionObserver观察是否出现和消失在窗口,用IntersectionObserver polyfill提升兼容性。...用vue的指令,实现上报数据的绑定,最后使用的时候,只需要为需要上报的元素,加上v-treport=“上报的数据”。...观测元素的几种情况: A:进入窗口,500ms后退出窗口,需要上报 B:进入窗口,没有退出窗口,超过了500ms,需要上报 C:进入窗口,不到500ms退出窗口,不需要上报 代码实现 require('

    1.4K21

    还在手动么?out 了。不到百行代码实现自动

    一个常见的需求,就是在函数里面上报一些信息。像一些性能的,每个函数都要处理,很繁琐。能不能自动呢? 答案是可以的。...只是在函数里面插入了一段代码,这段代码不影响其他逻辑,这种函数插入不影响逻辑的代码的手段叫做函数插桩。 我们可以基于 babel 来实现自动的函数插桩,在这里就是自动的。...return 'bbb'; } } const c = () => 'ccc'; const d = function () { console.log('ddd'); } 我们要实现就是要转成这样...;return PREV_BODY;}`)({PREV_BODY: bodyPath.node}); bodyPath.replaceWith(ast); } } 这样我们就实现了自动...我们实现了自动! 总结 函数插桩是在函数中插入一段逻辑但不影响函数原本逻辑,就是一种常见的函数插桩,我们完全可以用 babel 来自动做。

    53820

    【实战】还在手动么?out 了。不到百行代码实现自动

    一个常见的需求,就是在函数里面上报一些信息。像一些性能的,每个函数都要处理,很繁琐。能不能自动呢? 答案是可以的。...只是在函数里面插入了一段代码,这段代码不影响其他逻辑,这种函数插入不影响逻辑的代码的手段叫做函数插桩。 我们可以基于 babel 来实现自动的函数插桩,在这里就是自动的。...return 'bbb'; } } const c = () => 'ccc'; const d = function () { console.log('ddd'); } 我们要实现就是要转成这样...;return PREV_BODY;}`)({PREV_BODY: bodyPath.node}); bodyPath.replaceWith(ast); } } 这样我们就实现了自动...代码在这里,建议自己实现一遍。

    47020

    Navigator.sendBeacon实现页面统计

    早之前做过页面统计,用的是神策和百度统计,里面那些数据个人觉得已经很全面了,最近公司进行一些特殊统计,需要在市场想要的地方一个一个加方法调接口。...如果要自己统计页面浏览时长和点击事件,就只能做一些延迟和牺牲一些准确性,反正就是页面跳转需要统计的数据会丢失一些。...上面都是延迟页面卸载,牺牲体验保证准确性,另一种是把数据传递到下一个页面,然后在下一个页面调用接口统计,比如地址携带、本地存储、浏览器提供的API等都能把数据传递到下一个页面。...应该是近几年对统计的需求比重大了,浏览器已经有了草案navigator.sendBeacon(),MDN上面描述了上面方法的痛: 这个方法主要用于满足统计和诊断代码的需要,这些代码通常尝试在卸载(unload...同步的 XMLHttpRequest 迫使用户代理延迟卸载文档,并使得下一个导航出现的更晚。下一个页面对于这种较差的载入表现无能为力。 有一些技术被用来保证数据的发送。

    1.1K10

    日志系统的架构与实现

    ; 监控应用运行状态,提供问题跟踪定位的数据支持; 为营销策略提供数据支持; 实施 AB Testing; 作为数据平台中,数据采集的一个不可缺少的环节; 的技术难点 现在的业务技术架构都不仅仅是单独的一种技术方案能解决的...这里包含 WEB、HTML5, App(IOS、Android、Hybrid形式) 后端应用系统 服务器系统 关于Hybrid 类型 客户端内的 H5 生成使用的是 JavaScript SDK...要满足精细化、精准化的数据分析需求,可根据实际需要的分析场景,选择一种或多种组合的采集方式,毕竟采集全量数据不是目的,实现有效的数据分析,从数据中找到关键决策信息实现增长才是重中之重。...,将用户核心行为进行采集,从而实现精准的可交叉的用户行为分析; 代码+服务端:以电商平台为例, 用户在支付环节,由于中途会跳转到第三方支付平台,是否支付成功需要通过服务器中的交易数据来验证,此时可通过代码和服务端相结合的方式...黄金令箭 用户在页面上某个行为触发一个异步请求,按照约定的格式向日志服务器发送请求,展现、点击、等待、报错等等都可以作为交互行为。 系统架构设计 ? 具体日志发送流程如下图: ?

    9.8K10

    Java 应用通过 OpenTelemetry API 实现手动

    我们知道对于 Java 应用可以通过 OpenTelemetry 提供的 Java agent 来实现自动功能,在大多数场景下也完全足够了,但是有时候我们需要更加精细的控制,这时候我们就需要使用手动的方式来实现了...使用注解 我们可以在 Java 应用通过手动的方式来实现链路追踪,但如果我们不希望进行太多的代码更改,那么可以使用注解的方式来实现,OpenTelemetry 提供了一些注解来帮助我们实现手动...使用 API 手动 除了使用注解的方式来实现之外,我们还可以使用 OpenTelemetry 提供的 API 来实现手动,这样我们就可以更加精细的控制我们的 span 了,当然这样也会增加我们的代码量...在 Java 应用中,要实现手动,首先第一步是获取 OpenTelemetry 接口的实例,我们需要尽早在应用程序中配置一个 OpenTelemetrySdk 的实例,我们可以使用 OpenTelemetrySdk.builder...比如现在我们在 OrderController 中的 getAllOrders 处理器中来手动,代码如下所示: // src/main/java/com/youdianzhishi/orderservice

    1.2K30

    页面日志采集()思路及其实现

    指的是当一个页面被浏览器或者APP加载呈现时采集的日志,也是页面浏览量(Page View, PV)和访客数(Unique Visitors,UV)的统计基础。 页面交互日志采集。...获取用户操作日志,通过量化获知用户的兴趣或者体验优化。 页面浏览日志采集流程 目前典型的网页访问过程是以客户端发送请求、服务器响应并返回所请求的内容进行的。...一般需要采集当前页面参数、浏览行为的上下文信息(如读取用户访问当前页面时的上一个页面)以及一些运行环境信息(如当前浏览器和分辨率等)。...服务端日志收集 日志服务器收到客户端发来的日志请求后,一般会立即向浏览器返回一个请求成功的响应,以免对页面的正常加载造成影响。...日志采集实现思路 首先明确我们想要采集的数据-页面浏览日志和页面交互日志。正常情况下我们会在进入页面时发送日志信息,但是用户在每个页面的停留时间我们将很难统计到。

    2.4K41

    通过实现代码层面上报Prometheus

    :Spring Boot 使用 Micrometer 集成 Prometheus 监控 Java 应用性能 三、埋头苦干,放眼全局 在完成了代码的Prometheus接入后,我们便可以在代码中自定义的啦...现在在代码里进去的,便是我们后续在Grafana中看到的指标啦~的方式,上一节的文章中都是有的,大家参考食用。...现在就是埋头苦干的时候啦,现在越多,将来我们能获取到的指标也就越多~ 那为什么还要放眼全局呢?其实我是想为大家提供一些我指标上报时候的一些小思路,借此抛砖引玉。...针对这一场景,我们就可以通过对服务的响应时间加上指标来实现接口响应时间的监控。...原文链接:《通过实现代码层面上报Prometheus》 发布日期:2021-03-02

    3.8K60

    Cobub无码关键技术实现流程(附图)

    前端作为一个比较成熟的数据接入手段被广泛应用着。目前分为两种方式,有码与无码。有码比较容易理解,即调用SDK的API,在代码中插入的相关代码,实现用户行为采集。...由于我们在开发项目的时候,都是手动的,每次业务需求的改变都要到处,而无码,即不需要手动插入代码,只需要前期进行相关配置,SDK自动采集用户行为,极大程度避免了因需求变更、点错误等原因导致的重新繁复工作...本文主要介绍无码的技术实现。 无码实现流程 1.可视化视图圈选,在页面上会出现浮动的圆圈,拖动圆圈至想配置事件的控件上,将会弹出输入事件的弹框。...实现流程中的技术 可视化视图圈选实现 自定义UIWindow的子类,当做悬浮小圆圈,添加UIPanGestureRecognizer手势,根据手势的位移,设置悬浮框的位移。...下面给出一个简单视图和可复用视图的viewPath的例子。

    1.4K60

    实现监测的真相——革新还是噱头?

    监测代码、SDK   我们知道,我们能够监测网站上用户的行为,或者app上用户的行为,是需要在网站的每一页或者app中加上一些程序代码的(这里就不考虑日志分析这种方法了)。...,每个监测都要加一个专属于自己的事件监测代码),不能错加或者漏加,这是一个繁琐的工作,且很容易出现错误。...国内出现无的解决方案,要比这些工具晚不少。   现在,连百度统计都在宣传自己拥有“无”方法了!这个方法看来要变得非常“稀疏平常”了。...不过,无论哪种方法,都还是需要在app中加上实现基础监测的SDK。 ? 上图:铂金分析(Ptengine)的app无监测设置界面   “无”方法是怎么实现的呢?...上图:无方法的优缺点对比   关于方法的不能回溯前数据的问题,我也稍微啰嗦几句,现在方法也在改进,一些工具也可以实现数据回溯。

    3.3K71

    分享一个自动化框架wqrfproxy

    最近搞了一套自动化框架,虽然第一版不太完美,但是更新还是很效率的。...的参数和请求体中查询这个字符串是否存在,不存在会触发异常~ (5)调用关闭服务方法 stop_wqrfproxy() (6)手机挂上代理 ,本机ip:8000 (7)执行脚本,注意看控制台输出的中英文提示 (8)执行后会自动打开一个抓包记录显示的页面...wqrfproxy import * start_wqrfproxy() #启动服务 time.sleep(30) #这行可以替换成实际的ui自动化脚本了 try: #断言该url的请求参数中是否含有'关键字...' assert_proxy('http://xx.xxx.com/xx','关键字') except Exception as e: print(e) #打印出现的错误 stop_wqrfproxy...self): driver.find_element_by_id('').click() #实际ui自动化脚本 #断言url的url参数和请求体中是否含有userId这个关键字

    49910

    【实战】1886- 教你怎么前端实现上报

    那么在一个企业中,我们要如何去了解用户呢?最直接有效的方式就是了解用户的行为,了解用户在网站中做了什么,呆了多久。而如何去实现这一操作,这就涉及到我们前端的点了。...下面介绍下这三种上报方式 基于ajax的上报 介绍 因为实际上是对关键节点的数据进行上报是和服务端交互的一个过程,所以我们可以和后端约定一个接口通过ajax去进行数据上报。...代码实现 我们可以封装一个方法,代码如下: js复制代码function buryingPointAjax(data) { return new Promise((resolve, reject)...基于img的上报 上面可以看到如果使用ajax的话,会存在跨域的问题。而且数据上报前端主要是负责将数据传递到后端,并不过分强调前后端交互。因此我们可以通过一些支持跨域的标签去实现数据上报功能。...image.png 结论 因此当我们做上报时,使用img是一个不错的选择。

    54410

    通过Vue自定义指令实现前端

    在营销活动中,通过可以获取用户的喜好及交互习惯,从而优化流程,进一步提升用户体验,提高转化率。 在之前的方案实现中,都是在具体的按钮或者图片被点击或者被曝光时主动通过事件去上报。...前端常见的方法有三种: 手动 可视化 无痕 手动,顾名思义就是纯手动写代码,调用 SDK 提供的函数,在需要的业务逻辑中添加对应方法,上报点数据。...实现思路其实也很清晰:在需要的DOM节点挂载特殊属性,通过SDK监听挂载了相应属性对应的事件,在事件触发时进行点数据上报。 那么问题来了,怎么监听呢?...这里存在一个场景就是对于同一个按钮或者图片,同时存在既需要点击又需要曝光的场景。...但是这也只是一个最简单的实现,还有很多情况需要考虑: 曝光时频次很高,是否可以考虑批量上报? 用户访问一半页面,突然切出,之后又重新进入,这种情况又该如何上报?

    3K30

    AOP编程之AspectJ实战实现数据无痕

    最近在给某某银行做项目的时,涉及到了数据,性能监控等问题,那我们起先想到的有两种方案,方案之一就是借助第三方,比如友盟、Bugly等,由于项目是部署在银行的网络框架之内的,所以该方案不可行。...文章背景 最近在给某某银行做项目的时,涉及到了数据,性能监控等问题,那我们起先想到的有两种方案,方案之一就是借助第三方,比如友盟、Bugly等,由于项目是部署在银行的网络框架之内的,所以该方案不可行...好多都应无奈之举放弃了该需求,但数据实现用户行为的收集分析和性能监控对于技术部和运营部来说是一件非常有价值的事情,所以作为程序的我必应寻找解决方案,庆幸的是我们除了OOP编程思想外,还有一种编程思想就是...每一个对象都有自己的一套垂直的系列方法和属性,使得我们使用对象的时候不需要太多的关系它的内部细节和实现过程,只需要关注输入和输出,这跟我们的思维方式非常相近,极大的降低了我们的编写代码成本(而不像C那样让人头痛...这种编程范式假定『横切关注』(cross-cutting concerns,多处代码中需要的逻辑,但没有一个单独的类来实现)应该只被实现一次,且能够多次注入到需要该逻辑的地方。

    2.9K20

    通过自定义 Vue 指令实现前端曝光

    政采云前端团队(ZooTeam)通过浑仪系统实现数据采集及数据可视化,分析量化的能力,想了解浑仪系统或者还不了解的同学可以先阅读 前端工程实践之数据分析系统。...浑仪系统的数据采集是基于代码侵入式方案实现的,提供了自动发送和手动调用信息上报接口发送两种方式实现点数据上报。...其中页面和点击是使用自动上报的方式实现,在 DOM 节点挂载特殊属性,通过采集 JSSDK 监听挂载了相应属性对应的事件,在事件触发时进行点数据上报。...具体实现 了解了 Intersection Observer 的基本用法了以后,下面我们来实现前端的曝光。因为业务是基于 Vue 实现的,所以我们通过自定义 Vue 指令实现前端的曝光。...本文只是针对前端曝光实现方案,如有问题处,请大佬们多多交流。

    1.6K40

    通过自定义 Vue 指令实现前端曝光

    政采云前端团队(ZooTeam)通过浑仪系统实现数据采集及数据可视化,分析量化的能力,想了解浑仪系统或者还不了解的同学可以先阅读 前端工程实践之数据分析系统。...浑仪系统的数据采集是基于代码侵入式方案实现的,提供了自动发送和手动调用信息上报接口发送两种方式实现点数据上报。...其中页面和点击是使用自动上报的方式实现,在 DOM 节点挂载特殊属性,通过采集 JSSDK 监听挂载了相应属性对应的事件,在事件触发时进行点数据上报。...具体实现 了解了 Intersection Observer 的基本用法了以后,下面我们来实现前端的曝光。因为业务是基于 Vue 实现的,所以我们通过自定义 Vue 指令实现前端的曝光。...本文只是针对前端曝光实现方案,如有问题处,请大佬们多多交流。

    1.5K10
    领券