友盟统计事件添加

友盟统计

SDK集成

通过在工程build.gradle配置脚本中添加maven线上依赖,导入最新版本组件化基础库和统计SDK。 在Gradle依赖中添加:

dependencies {
    compile 'com.umeng.sdk:common:latest.integration'
    compile 'com.umeng.sdk:analytics:latest.integration'
}

如果无法正常集成请添加如下配置:

allprojects {
    repositories {
            mavenCentral()     
    }
}

SDK初始化

在项目工程的自定义application中的onCreate方法中添加

注意: 如果项目的Manifest文件中已经配置友盟的appkey和channel,则使用该方法初始化。

/**
*参数1:上下文,必须的参数,不能为空l
参数2:设备类型,必须参数,传参数为UMConfigure.DEVICE_TYPE_PHONE则表示手机;传参数为UMConfigure.DEVICE_TYPE_BOX则表示盒子;默认为手机
参数3:Push推送业务的secret,需要集成Push功能时必须传入Push的secret,否则传空
*/
 UMConfigure.init(this, UMConfigure.DEVICE_TYPE_PHONE, "1fe6a20054bcef865eeb0991ee84525b");

权限添加

<!-- 必须的权限 --> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
 <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
<uses-permission android:name="android.permission.INTERNET" />
 <!-- 推荐的权限 --> 
<!-- 添加如下权限,以便使用更多的第三方SDK和更精准的统计数据 --> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
 <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

AndroidManifest清单配置文件方式初始化appkey和channel

<manifest>
 <application ……>
 …… 
<meta-data android:value="YOUR_APP_KEY" android:name="UMENG_APPKEY"/>
 <meta-data android:value="Channel ID" android:name="UMENG_CHANNEL"/>
 </application>
 </manifest>

常用接口

设置Log开关

/**
* 参数: boolean 默认为false,如需查看LOG设置为true
*/
UMConfigure.setLogEnabled(true);

设置日志加密

/**
* 参数:boolean 默认为false(不加密)
*/
UMConfigure.setEncryptEnabled(true);

统计

session统计

在每个Activity的onResume方法中调用 MobclickAgent.onResume(Context),
onPause方法中调用 MobclickAgent.onPause(Context)

public void onResume() {
     super.onResume();
     MobclickAgent.onResume(this);
 }
 public void onPause() { 
    super.onPause(); 
    MobclickAgent.onPause(this); 
} 
  • 确保在所有的Activity中都调用 MobclickAgent.onResume() 和onPause()方法,这两个调用将不会阻塞应用程序的主线程,也不会影响应用程序的性能。
  • 注意如果您的Activity之间有继承或者控制关系请不要同时在父和子Activity中重复添加nPause和nResume方法,否则会造成重复统计,导致启动次数异常增高。(eg.使用TabHost、TabActivity、ActivityGroup时)。
  • 当应用在后台运行超过30秒(默认)再回到前端,将被认为是两个独立的session(启动),例如用户回到home,或进入其他程序,经过一段时间后再返回之前的应用。
  • 可通过接口:setSessionContinueMillis(long interval) 来自定义这个间隔(参数单位为毫秒)。
  • 如果开发者调用kill或者exit之类的方法杀死进程,请务必在此之前调用onKillProcess(Context context)方法,用来保存统计数据。

页面统计

只由Activity构成的应用

如果您已经完成之前的代码添加(session统计),那么SDK已默认统计了每个Activity的跳转路径。页面统计不需要再添加其他代码。

包含Activity、Fragment或View的应用

手动页面统计API:一次成对的 onPageStart -> onPageEnd 调用,对应一次手动页面生命周期统计。

    public static void onPageStart(String viewName);
    public static void onPageEnd(String viewName);

MobclickAgent.onResume() 和MobclickAgent.onPause() 方法是用来统计应用时长的(也就是Session时长,当然还包括一些其他功能)
MobclickAgent.onPageStart()和MobclickAgent.onPageEnd()方法是用来统计页面跳转的

自定义事件统计(数据埋点)

  • event id:自定义事件id。
  • key:自定义事件下的参数。
  • value:自定义事件参数下的参数值。
计数事件

在您希望跟踪的代码部分,调用如下方法:
public static void onEvent(Context context, String eventID);
public static void onEvent(Context context, String eventID, String label);

  • context 当前宿主进程的ApplicationContext上下文。
  • eventId 为当前统计的事件ID。
  • label 事件的标签属性。
统计点击行为各属性被触发的次数

考虑事件在不同属性上的取值,可以调用如下方法:
public static void onEvent(Context context, String eventID, Map<String, String> map);

  • context 当前宿主进程的ApplicationContext上下文。
  • eventID 为当前统计的事件ID。
  • map 为当前事件的属性和取值(Key-Value键值对)。
    比如:统计电商应用中”购买”事件发生的次数,以及购买的商品类型及数量,那么在购买的函数里调用:
    HashMap<String,String> map = new HashMap<String,String>();
    map.put("type","book");
    map.put("quantity","3"); 
    MobclickAgent.onEvent(mContext, "purchase", map);

事件统计封装工具类

public class EventStatisticsUtil {


    /**
     * 统计触发事件的ID和参数
     * @param mContext
     * @param eventId
     * @param params
     */
    public static void onEvent(Context mContext, String eventId, Map<String, String> params) {
        MobclickAgent.onEvent(mContext, eventId, params);
    }

    /**
     * 只统计事件触发ID
     * @param mContext
     * @param eventId
     */
    public static void onEvent(Context mContext, String eventId) {
        MobclickAgent.onEvent(mContext, eventId);
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容