当前位置:   article > 正文

Android友盟统计多渠道打包配置_友盟设置渠道

友盟设置渠道

一:

前言

app上线后,一般公司都希望跟踪app在市场上的使用情况。包括新增用户、活跃用户、渠道信息、错误信息等,还有例如商城类的app,需要跟踪用户最喜欢浏览哪种类型的店铺或商品。这些都可以通过集成友盟统计来轻松实现。

(小提示:由于截的都是大图,在简书显示比较模糊,需要查看清晰图片则鼠标点击图片放大即可)

集成

一、获取Appkey

集成友盟SDK之前,首先需要到友盟官网注册并且添加新应用,获取Appkey(一般公司项目不需要自己申请账号,跟项目经理要即可)。每个应用对应的Appkey是唯一的,如下:

 

二、导入SDK

有两种方法:(本Demo中采用第二种方法)

  • 方法一:下载SDK,将解压出来的jar包复制到工程libs/目录下。
    下载地址:http://mobile.umeng.com/custom_sdk
    只需要下载Analytics SDK即可,如下:

     

  • 方法二:添加SDK在maven中心库的线上依赖
    1、在app的builde.gradle中添加依赖

  1. /*友盟统计需要的最新版本组件化基础库和统计SDK*/
  2. compile 'com.umeng.sdk:common:latest.integration'
  3. compile 'com.umeng.sdk:analytics:latest.integration'

如果无法正常集成,则需要在项目的builde.gradle中添加如下配置:

  1. allprojects {
  2. repositories {
  3. mavenCentral()
  4. }
  5. }

三、在AndroidManifest.xml中添加权限、配置Appkey与渠道(Channel)

1、添加权限

  1. <!--友盟统计所需权限-->
  2. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
  3. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
  4. <uses-permission android:name="android.permission.INTERNET"></uses-permission>
  5. <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>

2、配置Appkey

  1. <!--value的值填写你在友盟后台申请的应用Appkey-->
  2. <meta-data android:value="5a910933f29d986f35000064" android:name="UMENG_APPKEY"/>

3、配置渠道
由于一般会有多个渠道,所以这里的渠道名称不能写死,应该设置成动态的,如下:

  1. <!--value的值填写渠道名称,例如yingyongbao。这里设置动态渠道名称变量-->
  2. <meta-data android:value="${UMENG_CHANNEL_VALUE}" android:name="UMENG_CHANNEL"/>

在app的builde.gradle中配置需要的渠道(这里只测试应用宝、豌豆荚、小米),对应上面的渠道名称变量。

  1. /*配置渠道*/
  2. productFlavors {
  3. yingyongbao {
  4. manifestPlaceholders = [UMENG_CHANNEL_VALUE: "yingyongbao"]
  5. }
  6. wandoujia {
  7. manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]
  8. }
  9. xiaomi {
  10. manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xiaomi"]
  11. }
  12. }
  • 完整AndroidManifest.xml如下:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest package="com.wildma.umenganalytics"
  3. xmlns:android="http://schemas.android.com/apk/res/android">
  4. <!--友盟统计所需权限-->
  5. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
  6. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
  7. <uses-permission android:name="android.permission.INTERNET"></uses-permission>
  8. <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
  9. <application
  10. android:name=".MyApplication"
  11. android:allowBackup="true"
  12. android:icon="@mipmap/ic_launcher"
  13. android:label="@string/app_name"
  14. android:supportsRtl="true"
  15. android:theme="@style/AppTheme">
  16. <activity android:name=".MainActivity">
  17. <intent-filter>
  18. <action android:name="android.intent.action.MAIN"/>
  19. <category android:name="android.intent.category.LAUNCHER"/>
  20. </intent-filter>
  21. </activity>
  22. <!--友盟统计配置Appkey与Channel-->
  23. <!--value的值填写你在友盟后台申请的应用Appkey-->
  24. <meta-data android:value="5a910933f29d986f35000064" android:name="UMENG_APPKEY"/>
  25. <!--value的值填写渠道名称,例如yingyongbao。这里设置动态渠道变量-->
  26. <meta-data android:value="${UMENG_CHANNEL_VALUE}" android:name="UMENG_CHANNEL"/>
  27. </application>
  28. </manifest>
  • 完整app的builde.gradle如下:
  1. apply plugin: 'com.android.application'
  2. android {
  3. compileSdkVersion 26
  4. buildToolsVersion "26.0.2"
  5. defaultConfig {
  6. applicationId "com.wildma.umenganalytics"
  7. minSdkVersion 14
  8. targetSdkVersion 26
  9. versionCode 1
  10. versionName "1.0"
  11. testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
  12. }
  13. buildTypes {
  14. release {
  15. minifyEnabled false
  16. proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
  17. }
  18. }
  19. //签名信息配置
  20. signingConfigs {
  21. release {
  22. storeFile file("./keystore/UMengAnalyticsKeystore.jks")
  23. keyAlias "UMengAnalyticsKeystore"
  24. storePassword "123456"
  25. keyPassword "123456"
  26. }
  27. debug {
  28. storeFile file("./keystore/debug.keystore")
  29. }
  30. }
  31. /*配置渠道*/
  32. productFlavors {
  33. yingyongbao {
  34. manifestPlaceholders = [UMENG_CHANNEL_VALUE: "yingyongbao"]
  35. }
  36. wandoujia {
  37. manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]
  38. }
  39. xiaomi {
  40. manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xiaomi"]
  41. }
  42. }
  43. }
  44. dependencies {
  45. compile fileTree(dir: 'libs', include: ['*.jar'])
  46. androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
  47. exclude group: 'com.android.support', module: 'support-annotations'
  48. })
  49. compile 'com.android.support:appcompat-v7:26.0.0-alpha1'
  50. testCompile 'junit:junit:4.12'
  51. /*友盟统计需要的最新版本组件化基础库和统计SDK*/
  52. compile 'com.umeng.sdk:common:latest.integration'
  53. compile 'com.umeng.sdk:analytics:latest.integration'
  54. }

四、添加初始化方法

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

  1. public class MyApplication extends Application {
  2. @Override
  3. public void onCreate() {
  4. super.onCreate();
  5. /**
  6. * 初始化common
  7. * 参数1:上下文,必须的参数,不能为空
  8. * 参数2:友盟 app key,非必须参数,如果Manifest文件中已配置app key,该参数可以传空,则使用Manifest中配置的app key,否则该参数必须传入
  9. * 参数3:友盟 channel,非必须参数,如果Manifest文件中已配置channel,该参数可以传空,则使用Manifest中配置的channel,否则该参数必须传入,channel命名请详见channel渠道命名规范
  10. * 参数4:设备类型,必须参数,传参数为UMConfigure.DEVICE_TYPE_PHONE则表示手机;传参数为UMConfigure.DEVICE_TYPE_BOX则表示盒子;默认为手机
  11. * 参数5:Push推送业务的secret,需要集成Push功能时必须传入Push的secret,否则传空
  12. */
  13. //如果AndroidManifest.xml清单配置中没有设置appkey和channel,则可以在这里设置
  14. // UMConfigure.init(this, "58edcfeb310c93091c000be2", "Umeng", UMConfigure.DEVICE_TYPE_PHONE, "1fe6a20054bcef865eeb0991ee84525b");
  15. UMConfigure.init(this, UMConfigure.DEVICE_TYPE_PHONE,"");
  16. }
  17. }

通过上面的步骤,友盟统计就已经集成好了,下面来看看它各种统计的使用。

使用

Session统计

即启动数据的统计(包括新增用户、活跃用户、启动次数、使用时长等基本数据)

需要在每个Activity的onResume方法中调用 MobclickAgent.onResume(Context),
onPause方法中调用 MobclickAgent.onPause(Context),如下:

  1. protected void onResume() {
  2. super.onResume();
  3. MobclickAgent.onResume(this);
  4. }
  5. protected void onPause() {
  6. super.onPause();
  7. MobclickAgent.onPause(this);
  8. }
  • 确保在所有的Activity中都调用 MobclickAgent.onResume() 和onPause()方法。

  • 如果Activity之间有继承或者控制关系请不要同时在父和子Activity中重复添加nPause和nResume方法,否则会造成重复统计。例如在BaseActivity中添加过,则它的子类就不需要添加了。

  • 当应用在后台运行超过30秒(默认)再回到前端,将被认为是两个独立的session(启动),例如用户回到home,或进入其他程序,经过一段时间后再返回之前的应用。可通过接口:setSessionContinueMillis(long interval) 来自定义这个间隔(参数单位为毫秒)。

  • 如果开发者调用kill或者exit之类的方法杀死进程,请务必在此之前调用onKillProcess(Context context)方法,用来保存统计数据。

安装app启动后。在友盟后台就可以看到统计的数据了。如下:

新增用户、启动次数、日活等数据:

 

 

渠道分析数据:

 

自定义事件统计

自定义事件可以实现在应用程序中埋点来统计用户的点击行为。例如我们的应用是商城类的,就需要统计用户是喜欢进入“nike”店铺,还是“new banlance"店铺。自定义事件目前包括"计数事件"和"计算事件",这里主要讲下计数事件。

1、首先需要在友盟后台添加自定义事件:设置-事件-手工添加-添加事件。如下:

 

2、在需要监听自定义事件的地方添加代码,如下模拟点击进入”nike“店铺。
第二个参数为当前统计的事件ID,需要与友盟后台设置的事件ID一致(即上图的事件ID)。

MobclickAgent.onEvent(this, "nike");//参数二为当前统计的事件ID

3、运行app,触发该事件后。在友盟后台就可以看到统计的数据了。如下:
其中消息数量即为事件被触发的次数。

 

错误统计

错误分析是友盟为移动开发者提供的Crash收集和分析工具,帮助开发者监测App在移动设备上的运行状况,及时发现并解决错误,提升App的稳定性。

Android统计SDK从V4.6版本开始内建错误统计,不需要开发者再手动集成。
SDK通过Thread.UncaughtExceptionHandler 捕获程序崩溃日志,并在程序下次启动时发送到服务器。 如不需要错误统计功能,可通过此方法关闭

MobclickAgent.setCatchUncaughtExceptions(false);

如果开发者自己捕获了错误,需要上传到【友盟+】服务器可以调用下面方法:

  1. public static void reportError(Context context, String error)
  2. //或
  3. public static void reportError(Context context, Throwable e)

现在我在demo中模拟一次错误,如下:

  1. /**
  2. * 模拟错误
  3. * @param view
  4. */
  5. public void createError(View view) {
  6. int i = 1 / 0;
  7. }

再到友盟后台查看错误,如下:

 

其他统计

上面三个统计是比较常用的统计,还有很多统计,例如账号统计、页面统计等就不一一列举了。有需求的可以参考友盟统计集成文档

本文demo源码地址:https://github.com/wildma/UMengAnalytics



 

 

 

二:

多渠道打包:在各个应用市场上上传开发的APP,为了能够快捷并统计用户信息(日活量,Bug信息),可以结合友盟统计来完成。

  • 集成友盟 
    • 第一步:申请友盟key–
    • 第二步:集成友盟,在grandle文件中配置 
      compile ‘com.umeng.analytics:analytics:latest.integration’
    • 第三步:添加友盟权限
    • 第四步:清单文件中配置友盟key和渠道,渠道配置方式如下
  1. <meta-data android:value="58a3be44c895762d5b0009c3" android:name="UMENG_APPKEY"/>
  2. <meta-data android:value="${UMENG_CHANNEL_VALUE}" android:name="UMENG_CHANNEL"/>

以上按照官方文档集成即可,只不过需要配置一下channel为一个未确定的值

  • 添加多渠道打包的配置信息,在grandle文件中进行 
    • 配置一 越过65535限制,设置渠道的默认名称。
  1. defaultConfig {
  2. applicationId "com.example.zhiyuan.myapplication"
  3. minSdkVersion 16
  4. targetSdkVersion 24
  5. versionCode 1
  6. versionName "1.0"
  7. multiDexEnabled true //突破应用方法数65535的一个限制
  8. manifestPlaceholders = [UMENG_CHANNEL_VALUE: "umeng"] //默认名称
  9. testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
  10. }
* 配置二:指定渠道名称,可以定义好多好多...
  1. productFlavors {
  2. wandoujia {}
  3. baidu {}
  4. c360 {}
  5. uc {}
  6. xiaomi {}
  7. huawei {}
  8. productFlavors.all { flavor ->
  9. flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
  10. }
  11. }
  • 配置release版本,需要提前生成签名文件,并放置到和grandle平级的目录下边,如果不使用指令配置,可以不进行配置
  1. //添加签名文件配置---如果使用指令,必须添加这一样
  2. signingConfigs {
  3. debug {}
  4. release {
  5. storeFile file("common.jks")
  6. storePassword "123456"
  7. keyAlias "zhiyuan"
  8. keyPassword "123456"
  9. }
  10. }
  • 生成签名文件

    • 方式一:使用指令生成 
      ./gradlew assembleRelease
    • 方式二:使用studio导出 
      这里写图片描述 
      这里写图片描述
  • 测试是否打包成功

    • 将打包好的应用程序,选择一个渠道的应用安装到手机上。然后到友盟后台看一下用户渠道信息。比如,我往手机上安装了360渠道上的apk,那在后台看一下当前是否统计到了360的信息 
      这里写图片描述

以上就是结合友盟统计进行多渠道打包的过程。

转载:

  1. https://blog.csdn.net/zhiyuan0932/article/details/55194631
  2. https://www.jianshu.com/p/e4da2f477cd8

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/252968?site
推荐阅读
相关标签
  

闽ICP备14008679号