友盟统计 实例

Posted 白乾涛

tags:

篇首语:本文由小常识网(cha138.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();
    }
}






附件列表

     











    以上是关于友盟统计 实例的主要内容,如果未能解决你的问题,请参考以下文章

    ios 友盟统计

    友盟的常见使用----三方登陆分享和“埋点”(友盟统计)

    swift集成友盟统计

    Android 友盟统计的配置及实现(事件报错统计)

    iOS友盟统计及错误处理

    友盟统计怎么算新增用户 android