个推应用统计产品(个数)Android集成实践

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

前段时间,我们公司的产品又双叒叕给我们提了新需求,要求我们把APP相关的数据统计分析一下,这些指标包括但不限于应用每日的新增、活跃、留存率等等,最好每天都能提供数据报表。这种事情真是想想就麻烦,大家最后还是决定交给专业的团队来解决。我们一直在用个推推送,相比于其他第三方推送,个推的到达率比较高,刚好他们旗下有一款叫“个数·应用统计”的产品,非常符合我们的需求。经过一段时间的体验,我们发现个数效果还是很不错的,集成操作简单方便,数据快准狠。好东西当然要拿出来分享出来了,下面就手把手教大家快速集成个数Android SDK。

 

  • 一、 登录账号并创建应用

 

  • 1. 访问个推开发者中心,点击立即注册(如果已有账号了可以直接进入步骤3):

 

  •  

 

  • 2. 根据个人情况填写并注册账号:

 

  •  

 

  • 3. 注册好了之后就可以登录啦,选择主界面左边菜单栏的个数·应用统计:

 

  •  

 

  • 4.进入个数·应用统计面板后,选择右上角的“新增应用”添加新的应用:

 

 

  • 5.填写应用相关信息,勾选Android,点击提交:

 

  •  

 

  • 6.提交后,页面自动返回应用列表,我们就能看到刚刚添加的应用了。点击应用配置:

 

 

  • 7.在应用配置界面可以看到APPID,我们可以将其复制保存下来,它在后续的集成环节会被用到:

 

 

  • 二、配置个数SDK

 

  • 个数Android SDK提供两种集成方式,分别是maven集成和aar包手动集成(本人推荐使用maven集成,更加简单方便)。
  •  
  • 三、maven集成方式

 

  • 1.添加maven库地址

 

  • 在以项目名命名的顶层 build.gradle 文件中,添加个推 maven 库地址,如下所示:

 

  • maven{
  •     url 'http://mvn.gt.igexin.com/nexus/content/repositories/releases'
  • }

 

  • 2.配置依赖

 

  • 在 app/build.gradle 文件中引用个数SDK依赖库,如下图所示:

 

  •  

 

  • dependencies{
  • compile 'com.getui:gssdk:2.2.3.0'
  • }
  •  
  • 四、aar包集成方式

 

  • 去官网下载SDK文档

 

  • 将资源文件中的 GSSDKxxx.aar 以及 GTCxxx.aar 一起复制到 app 模块下的 libs 文件中,打开 app/build.gradle ,在 dependencies 中添加相应包的引用 :

 

 

  • dependencies {
  • implementation files('libs/GTC-2.0.0.aar')
  • implementation files('libs/GSSDK-2.2.2.0.aar')
  • }

 

  • GTC为个推平台的公共代码库,如果你已经接入过个推其他包含GTC的产品,则无需再次引入。
  • 五、SDK配置

 

  • 这一步需要配置混淆。首先需要在混淆文件中加入如下配置:
  •  
  • -dontwarn com.getui.**
  • -keep class com.getui.**{*;}

 

  • 然后配置个数应用参数:

 

  • 在 app/build.gradle 文件中的 android.defaultConfig 下添加 manifestPlaceholders ,配置个数相关的应用参数,如下图所示:

 

 

 

  • manifestPlaceholders = [
  • GS_APPID : "APP_ID",
  • GT_INSTALL_CHANNEL : "APP_CHANNEL"
  • ]

 

  • APP_ID为步骤1中从官方网站获取到的值,APP_CHANNEL为将要发布的渠道。
  • APP_CHANNEL也可以通过Gsconfig类中setInstallChannel的方法来设置。需要注意的是,若使用这个方法,需要在SDK初始化之前配置,否则不能生效。

 

  • 做完了这一步,SDK集成工作就完成啦。

 

  • 六、SDK初始化

 

  • 个数SDK的初始化操作非常简单,只需在Application的onCreate方式中添加如下代码即可:

 

  • GsManager.getInstance().init(Context context);

 

  • 初始化后SDK产品功能就能正常使用了。新增、日活、留存率、人均访问时长、各个页面的浏览次数……APP数据统计涉及到的各类指标,都能够通过个数SDK自动统计完成。

 

  • 七、一些自定义的功能

 

  • 应用时长统计:

 

  • 应用时长统计功能主要用于统计APP的启动次数和真实活跃时长,集成个数SDK 后不需要开发者调用额外的接口。其中Android平台一次完整的启动指的是如下两种情况之一:
  • (1)从启动应用到关闭应用。
  • (2)从启动应用到应用退至后台,且在后台运行时间超过默认值30s。这个默认值支持修改:

 

  • void GsConfig.setSessionTimoutMillis(long time);    

 

  • 注意:GsConfig配置类的操作需要在SDK初始化之前完成。

 

  • 1.自定义事件功能:

 

  • 自定义事件可以统计某些用户自定义埋点的发生时间以及次数,例如广告点击、短信数量等。通常 event_id 用于表示某种行为或功能的统计(如统计“发送”按钮被触发多少次),而参数properties则用于标识被统计的具体对象(如功能为“下载”的按钮)。通过event_id 和 properties ,我们可以为一个事件打上唯一标识。
  • 自定义事件主要分为两种:
  • (1)次数统计:统计指定行为被触发的次数。
  • (2)时长统计:统计指定行为消耗的时间,单位为秒。需要 eventBegin 和 eventEnd 接口成对使用才可生效。
  • 其中每类事件都支持使用 properties 参数类型。
  • 注意:event_id 需要先在个数网站上面配置,才能参与正常的数据统计。event_id 不能包含空格或转义字符,如下:

 

  • (1)点击侧边菜单栏事件列表。

 

 

  • (2)点击新增事件按钮。

 

 

  • 3、根据事件类型分别输入相应的事件ID以及事件名称。

 

 

  • 目前个数的自定义事件有两种:

 

  • 1.次数统计事件

 

  • 在事件执行开始时调用次数统计方法,SDK会根据事件ID,统计该事件被点击的次数。

 

  • void GsManager.getInstance().onEvent(String eventId, Properties properties)

 

  • 参数:
  • eventId :自定义事件ID,用于标识唯一的事件
  • properties : key-value ,自定义属性,用于扩展统计需求
  • key和value都是string类型

 

  • 使用代码:

 

  •  

 

  • 1.事件时长统计

 

  • 在事件开始和结束时调用对应的方法,可以获取并上传事件的时间。

 

  • void GsManager.getInstance().onBeginEvent(String eventId, Properties properties)

 

  • void GsManager.getInstance().onEndEvent(String eventId, Properties properties)

 

  • 参数:
  • eventId :自定义事件ID,用于标识唯一的事件
  • properties : key-value ,自定义属性,用于扩展统计需求,key和value都是string 类型
  • 使用代码:

 

  •  

 

  • 1.数据上传策略

 

  • 开发者可根据自身应用需求,设置不同的数据上报策略,从而有效地控制用户流量开销。

 

  • (1)个数目前支持的上报策略包括以下5种:

 

  • void GsConfig.setUploadStrategyType(GsConfig.GESHU_STRATEGY_REAL_TIME);

 

  •  
  • 目前默认的规则是:在连接WIFI的情况下实时上传,未连接WIFI则每隔 1 小时上报一次数据。开发者也可以手动关闭WIFI环境下实时上传数据的开关。

 

  • void GsConfig.setEnableSmartReporting(boolean isEnable);

 

  • (2)数据上传相关的设置接口

 

  • 1)(仅在发送策略为GESHU_STRATEGY_PERIOD时有效)设置间隔时间(默认为60,单位是分钟,即 1 小时)

 

  • void GsConfig.setUploadPeriodMinutes(int minutes);

 

  • 2)(仅在发送策略为GESHU_STRATEGY_BATCH时有效)设置最大批量发送消息的个数(默认值为32)

 

  • void GsConfig.setMaxBatchReportCount(int maxCount);

 

  • 注意:GsConfig配置类需要在SDK初始化之前完成。

 

  • 以上内容就是本人集成个推应用统计产品(个数)的经验总结,希望对你有帮助!如果大家在集成过程中遇到问题了,可以在个推官网底部找到他们的技术支持,或者在评论区给我留言,大家一起解决,一起进步。 

转载于:https://my.oschina.net/u/1782938/blog/1924318

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/450998.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JVM对象占用内存计算

大家都知道,jvm中对象实例存储在堆中,对象的引用存储在栈中,而对象的元数据(类型数据)存储在方法区。在我们进行内存优化的过程中经常需要了解每个对象占用的内存大小。接下来我将介绍对象占用内存大小的计算方式。 Java的对象模型 java是面…

MyEclipse 皮肤、主题、背景色

第一步:打开myeclipse--->help--->install from site--->Add将路径粘贴在这里。等待安装颜色主题。https://raw.github.com/guari/eclipse-ui-theme/master/com.github.eclipseuitheme.themes.updatesite 第二步:http://eclipsecolorthemes.org…

RPC 远程过程调用协议

RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。 RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携…

SOA (面向服务的架构)

见:https://baike.baidu.com/item/SOA/2140650?fraladdin UDDI 解说参见:UDDI是什么 SOAP解说参见: SOAP:简单对象访问协议 面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称…

[cerc2012][Gym100624B]20181013

转载于:https://www.cnblogs.com/KonjakJuruo/p/9809637.html

Nginx服务器证书部署-亚洲诚信

Nginx服务器证书部署发布时间:2018-01-17 16:15:25依赖建议l SSL卸载驱动。建议:openssl版本1.1.0f。l nginx版本Stable version:最新稳定版,生产环境上建议使用的版本。获取证书MPKI方式:1. 登录https://mpki.tru…

用反卷积(Deconvnet)可视化理解卷积神经网络还有使用tensorboard

『cs231n』卷积神经网络的可视化与进一步理解 深度学习小白——卷积神经网络可视化(二) TensorBoard--TensorFlow可视化 原文地址:http://blog.csdn.net/hjimce/article/details/50544370 作者:hjimce 一、相关理论 本篇博文主要讲…

不怕烧钱怕翻车:雷军与马化腾现场“过招”

说起微信,很多时尚潮人都很熟悉。这款软件可以发送语音信息、可以在有无线网络的地方免费发送、甚至只需摇一摇就能找到在你附近的用户,这些方便、时尚、新颖的元素使微信受到了很多用户的喜爱,也夺得了大量的市场。其实,在微信发…

Thread.yield()和Thread.sleep(0)

关于Thread.yield()和Thread.sleep(0)的语义问题真是一个让人挠头的问题,翻了好多资料,在java6语言规范中看到了一段这样的描述: 重点在红框中,简而言之就是:sleep(0)和yield()的实现不需要任何可见的效果。那么在实现…

DCT原型 ——傅里叶级数

傅里叶级数 法国数学家傅里叶发现,任何周期函数都可以用正弦函数和余弦函数构成的无穷级数来表示(选择正弦函数与余弦函数作为基函数是因为它们是正交的),后世称为傅里叶级数(法语:srie de Fourier&#xf…

红黑树和B+树

(一)红黑树 红黑树是一种自平衡二叉查找树,也被称为"对称二叉B树",它可以在O(logn)时间内利用 O(logn)的空间来完成查找、插入、删除操作。红黑树的读操作与普通二叉查找树相同,而插入和删除操作可能会破坏…

策略模式、观察者模式、代理模式、装饰模式 应用场景和实现

有个大神写的很好: 参考:设计模式学习笔记(四:策略模式) 参考:设计模式学习笔记(二:观察者模式) 参考:设计模式学习笔记-代理模式 参考:设计模式-…

李国杰院士:国内开源社区的崛起需要一个过程

[CSDN.NET 付江/文]日前,在第二届“龙芯杯”中国开源软件设计大赛启动仪式上,CSDN记者专访了中国工程院院士、第三世界科学院院士李国杰。李国杰院士就国产基础软件现状、面临的机遇和挑战、开源环境以及生态系统建设等话题分享了自己的看法。 打造自主…

SuperMap iObject入门开发系列之五管线属性查询

本文是一位好友“托马斯”授权给我来发表的,介绍都是他的研究成果,在此,非常感谢。 管线属性查询功能针对单一管线图层进行特定的条件查询,然后将查询结果输出为列表,并添加点位闪烁功能,例如查询污水管线中…

三类基于贪心思想的区间覆盖问题

一、区间完全覆盖问题 问题描述:给定一个长度为m的区间,再给出n条线段的起点和终点(注意这里是闭区间),求最少使用多少条线段可以将整个区间完全覆盖。 样例:一个长度为8的区间,可选的线段有[2,…

Eclipse搭建Android开发环境(安装ADT,Android4.4.2)

见:http://blog.csdn.net/zht666/article/details/29837777 使用Eclipse做Android开发,需要先在Eclipse上安装ADT(Android Development Tools)插件。 1.安装JDK 1.7 JDK官网http://www.oracle.com/technetwork/java/javase/downlo…

Silverlight Blend动画设计系列八:拖放(Drag-Drop)操作与拖放行为(DragBehavior)

Silverlight & Blend动画设计系列八:拖放(Drag-Drop)操作与拖放行为(DragBehavior) 原文:Silverlight & Blend动画设计系列八:拖放(Drag-Drop)操作与拖放行为(DragBehavior)在Silverlight中自身并没有提供拖放功能的相关实现,要实现拖…

mysql查询显示行号

见:http://blog.csdn.net/muzizhuben/article/details/49449853 使用mysql查询显示行号,没有像oracle这么方便。 不过也可以通过设定变量显示行号,例如: -- 生成 行号 select r:r1 as rowno , a.* from my_tb a ,(select r:0) b …

深入了解Spring IoC

IoC全称Inversion of Control即控制反转,它还有一个别名依赖注入。spring利用Ioc容器帮我们自动构建对象及注入依赖对象,减少了对象构建与业务代码的耦合,使得我们能够更加高效愉快的写bug🐞了( ̄▽ ̄)"…

java类加载顺序

在java中类的加载、初始化都是在程序运行期完成的,虽然会稍微增加开销,但是却很大的增加了灵活性,我们可用在运行期间动态的去网络或其他地方加载一个二进制流来作为程序代码的一部分。接下来我们简单介绍下java类加载过程。 从上图中我们可…