友盟统计 实例

官网:http://www.umeng.com/

集成步骤

详细步骤详见官方文档:http://dev.umeng.com/analytics/android-doc/integration

报表解读:http://dev.umeng.com/analytics/reports/dashboard

1、下载并导入SDK

  • 只需将jar包拷到 libs 子目录下即可

2、配置清单文件

  • 添加权限,填写appkey,填写channel(渠道,非必须)

3、代码中使用

  • 在所有的Activity中都调用 MobclickAgent.onResume() 和MobclickAgent.onPause()方法
  • 详细统计API详见官方文档

演示代码

public class MainActivity extends Activity {

private Context mContext;

private final String mPageName = "AnalyticsHome";//页面名称,可自定义

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.umeng_example_analytics);

mContext = this;

//使用集成测试服务

MobclickAgent.setDebugMode(true);

// 统计Fragment时,需要关闭Activity自带的页面统计,这样将不会再自动统计Activity。

// 然后在每个页面中重新集成页面统计的代码(包括调用了 onResume 和 onPause 的Activity)。

MobclickAgent.openActivityDurationTrack(false);

// MobclickAgent.setAutoLocation(true);

// MobclickAgent.setSessionContinueMillis(1000);

}

@Override

public void onResume() {

super.onResume();

MobclickAgent.onPageStart(mPageName);//统计页面(针对页面,页面可能是Activity 也可能是Fragment或View)

MobclickAgent.onResume(mContext);

}

@Override

public void onPause() {

super.onPause();

MobclickAgent.onPageEnd(mPageName);

MobclickAgent.onPause(mContext);

}

//******************************************************************************************

public void onButtonClick(View view) {

int id = view.getId();

switch (id) {

case R.id.umeng_example_analytics_signin:// 用户登录

MobclickAgent.onProfileSignIn("example_id");//用户账号ID

MobclickAgent.onProfileSignIn("WB", "userID");//第一个参数为:账号来源。当用户使用第三方账号登录时可以这样统计

break;

case R.id.umeng_example_analytics_signoff:// 用户退出

MobclickAgent.onProfileSignOff();

break;

case R.id.umeng_example_analytics_event://普通事件:统计事件发生次数

MobclickAgent.onEvent(mContext, "enent_bqt");//后一个参数eventId 为当前统计的【事件的ID】,是在友盟后台注册的

break;

case R.id.umeng_example_analytics_ekv://多属性事件:统计点击行为各属性被触发的次数

Map<String, String> map_ekv = new HashMap<String, String>();

map_ekv.put("type", "白乾涛");

map_ekv.put("quantity", "3");

MobclickAgent.onEvent(mContext, "enent_bqt2", map_ekv);

break;

//******************************************************************************************

case R.id.umeng_example_analytics_event_begin://事件开始,不推荐

MobclickAgent.onEventBegin(mContext, "music");

MobclickAgent.onEventBegin(mContext, "music", "one");

Map<String, String> map = new HashMap<String, String>();

map.put("type", "popular");

map.put("artist", "JJLin");

MobclickAgent.onKVEventBegin(mContext, "music", map, "flag0");

break;

case R.id.umeng_example_analytics_event_end://事件结束,不推荐

MobclickAgent.onEventEnd(mContext, "music");

MobclickAgent.onEventEnd(mContext, "music", "one");

MobclickAgent.onKVEventEnd(mContext, "music", "flag0");

break;

case R.id.umeng_example_analytics_social://社交统计

UMPlatformData platform = new UMPlatformData(UMedia.SINA_WEIBO, "user_id");//参数:支持的平台,用户ID

platform.setGender(GENDER.MALE); // 性别,optional(可选)

platform.setWeiboId("weiboId"); // optional

MobclickAgent.onSocialEvent(this, platform);

break;

case R.id.umeng_example_analytics_duration://数值型统计

Map<String, String> map_value = new HashMap<String, String>();//当前事件的属性和取值

map_value.put("type", "popular");

map_value.put("artist", "JJLin");

MobclickAgent.onEventValue(this, "music", map_value, 12000);//最后一个参数为:当前事件的数值

break;

//******************************************************************************************

case R.id.umeng_example_analytics_make_crash://模拟程序崩溃

"123".substring(10);

break;

case R.id.umeng_example_analytics_js_analytic://WebView统计

startActivity(new Intent(this, WebviewAnalyticActivity.class));

break;

case R.id.umeng_example_analytics_fragment_stack://统计 Fragment 页面(Stack)

startActivity(new Intent(this, FragmentStackActivity.class));

break;

case R.id.umeng_example_analytics_fragment_tabs://统计 Fragment 页面( Tab )

startActivity(new Intent(this, FragmentTabsActivity.class));

break;

}

}

@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

if (keyCode == KeyEvent.KEYCODE_BACK) {

Hook();

return true;

}

return super.onKeyDown(keyCode, event);

}

// 对于好多应用,会在程序中杀死 进程,这样会导致我们统计不到此时Activity结束的信息,

// 对于这种情况需要调用 MobclickAgent.onKillProcess 方法,保存一些页面调用的数据。正常的应用是不需要调用此方法的。

private void Hook() {

AlertDialog.Builder builder = new AlertDialog.Builder(mContext);

builder.setPositiveButton("退出应用", new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int whichButton) {

//如果开发者调用 Process.kill  或者 System.exit  之类的方法杀死进程,请务必在此之前调用此方法,用来保存统计数据

MobclickAgent.onKillProcess(mContext);

int pid = android.os.Process.myPid();

android.os.Process.killProcess(pid);

}

});

builder.setNeutralButton("后退一下", new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int whichButton) {

finish();

}

});

builder.setNegativeButton("点错了", new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int whichButton) {

}

});

builder.show();

}

}

来自为知笔记(Wiz)

附件列表

时间: 2024-10-19 20:17:13

友盟统计 实例的相关文章

友盟统计,监听事件次数。

1.去友盟,添加自己的项目app,并获得APPKEY. 2.下载,安装UMSocial_Sdk_4.0 3.在.pch中 #define MOBCLICK_APPKEY @"54488ed8fd98c552f4001d27" // 友盟统计APPKEY 在appDelegate.m中,开启友盟 #import "MobClick.h" 在- (BOOL)application:(UIApplication *)application didFinishLaunchi

Android开发和测试实践 - 接入友盟统计

这两年一直在做无线的测试,后续还会继续去做无线的测试,但是之前因为时间的原因一直都没有非常仔细的了解到代码层面.近期抽空自己做了些app的开发,决定如果想把移动的测试做好做深入,有一定的app开发经验非常的有必要,因为只有这样很多东西才能真正理解了.另一个方面,这本身也很有趣.目前尝试的一些东西都还比较基础,准备持续的做下去. 实践的过程也想陆续整理出来,做下笔记,也给别人一些参考,遇到很多问题的时候也是到谷歌度娘的找答案,帮助很多.目前更多关注android,ios的部分稍继续. 基本上现在任

线上应用bug跟踪查找-友盟统计

线上的应用只要用心点点都能发现些bug,连微信,QQ也不列外.但是bug中最严重的算是闪退了,这导致了用户直接不能使用我们的app. 我们公司是特别注重用户反馈和体验的,我们会定期打电话咨询用户的使用情况.我们也有自己的天使用户群,这些用户会跟我们及时的反馈应用的使用情况,bug情况,还有他们的需求. 用户不是技术人员他无法跟你清楚的描述怎么产生闪退的,于是我们需要一个bug统计的功能,我们公司采用友盟统计实现bug的记录.我们在iOS应用中植入友盟统计的功能,我也经常在查看友盟的错误统计和错误

iOS:友盟SDK第三方登录 分享及友盟统计的使用

本文转载至 http://www.it165.net/pro/html/201503/37101.html Tag标签:第三方 view sourceprint? 01.#import "UMSocial.h" 02.#import "UMSocialWechatHandler.h" 03.#import "UMSocialQQHandler.h" 04.#import "UMSocialSinaHandler.h" 05.

ios 友盟统计

最近一直在忙 版本大改  所以想分享的东西没写到博客  今天就来分享下友盟统计的使用  1.下载sdk 2.方法封装 3.在合适的地方调用 我们在工程里建立一个基类控制器  BaseViewController   因为这样 我们把统计方法写进去 子类自然有统计功能   我没有专门针对一个点击事件写统计方法 不过基本道理一样 建立一个类 用来写统计方法  可以复制出去使用 #import <Foundation/Foundation.h> @interface UMUtils : NSObje

Android开发之友盟统计

当我们开发好App后就会把它发到应用市场上,但是目前有很的应用市场(如,豌豆荚,应用宝,安卓市场等)那么问题来了,假如我们想统计我们开发的应用的下载次数,就必须把各个应用市场的下载量加起来,就这一点就会让你放弃这个想法,那么有没有更好的方法呢,答案是肯定的,用友盟统计啊,它不仅可以统计我们的应用的下载量,启动次数,还可以统计页面访问量.查看程序的bug等等,那么它怎么使用呢?它的使用步骤如下: 一.注册友盟的账号并申请key 集成友盟SDK之前,您首先需要到友盟官网注册并且添加新应用,获得App

iOS 友盟统计的bug分析

前提:保留打包发布时的 myapp.xcarchive文件(注:在xcode-window-Organizer-Archives 中可以找到,通过命令打包需要自己当时备份下这个文件) 1.从myapp.xcarchive中得到myapp.app.dSYM 和myapp 两个文件并放到同一个文件夹中 2.找到一条该版本app 在友盟bug统计中崩溃日志的,在其中可以找到崩溃时的地址信息如:0x1001ed424 友盟统计的崩溃logApplication received signal SIGSE

友盟-统计不到线上应用数据的坑

原文链接: 友盟-统计不到线上应用数据的坑 简书主页:http://www.jianshu.com/users/37f2920f6848 Github主页:https://github.com/MajorLMJ iOS开发者公会-技术1群 QQ群号:87440292 iOS开发者公会-技术2群 QQ群号:232702419 iOS开发者公会-议事区   QQ群号:413102158

swift集成友盟统计

坑爹啊:友盟统计官方不支持swift:自己按照oc的桥接集成各种问题:无奈骚扰客服一个多小时终于搞定,集成代码和oc的不一样啊!! 下面是客服给出答案,并在自己代码中运行成功的集成过程:1按照集成文档第一步在工程中添加.framework,在Link Binary With Libraries-->Add Other添加.framework  2在自己的桥接文件中引入头文件:#import <UMMobClick/MobClick.h> 并编译  3didFinishLaunchingW