Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

1. 基本设置指南

1.1 注册应用,获取AppKey

1)登陆账号后,点击管理->新建应用:

2)填写应用的相关信息,平台请选择Android:

...

4)除了第一次创建应用可以查看到AppKey之外,还可以在应用对应报表左侧:管理->应用渠道 查看。

1.2  Android SDK使用步骤

1)导入Cobub SDK Jar包

       打开下载文件中的razor-0.8.0\sdk\android_sdk目录, 导入SDK项目到eclipse(或其它IDE),打包生成jar包。

...

添加引用 import com.wbtech.ums.UmsAgent;

  • 初始化Ums对象

在Android应用的入口Activity的onCreate()方法中调用UmsAgent.init(Context context, String url,String AppKey)方法,注意这个方法应置于所有其他的方法之前。url为自行安装的Cobub Razor服务端地址,注意地址以index.php?/ums结束,如:"http://demo.cobub.com/razor/index.php?/ums"。

  • 获取用户ID

在可以获得用户唯一标识符的地方(如登录界面)调用UmsAgent.bindUserIdentifier(Context context, String userID)方法,该方法会记录下该标示符(如app应用的用户名,手机号或邮箱等标识用户唯一性的id),该函数会将设备与用户id的关系发至服务端保存。

  • 绑定tag

在可以获得用户tag的地方调用postTags(Context context, String tags),将tag数据传至后台,以后可用来对用户进行分类。

  • 注册Activity

在Android应用的每个Activity的onResume方法中调用UmsAgent.onResume(Context context),参数为当前的context引用,这个方法将会记录下用户进入该页面的时间。不要传递全局(application)的context。

protected void onResume(){
   super.onResume();
   UmsAgent.onResume(this);
}

在Android应用的每个Activity的onPause方法中调用UmsAgent.onPause(Context context),参数为当前activity的context,该方法会记录下用户离开该页面的时间。

protected void onPause(){
   super.onPause();
   UmsAgent.onPause(this);
}

代码样例:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Button button = (Button) findViewById(R.id.button1);
    UmsAgent.init(this,"http://192.168.1.204/UMS/index.php?/ums","3cf1eaadcd7a74dc0bc0bc0f50fb3926");
    UmsAgent.update(this);
 
    UmsAgent.setDefaultReportPolicy(this, SendPolicy.POST_NOW);
    UmsAgent.bindUserIdentifier(this, "cobub");
 
    button.setOnClickListener(new OnClickListener() {
 
       @Override
       public void onClick(View v) {
          // TODO Auto-generated method stub
          UmsAgent.onEvent(MainActivity.this, "eventid");
          UmsAgent.onEvent(MainActivity.this, "event_id", "label", 30.0);
       }
    });
 
}

4)集成说明

建议在Android应用的所有的activity中都调用UmsAgent.onResume()和UmsAgent.onPause()方法。如果不添加,将会造成相应Activity的使用时间等相关信息统计不到。

1.3 注意事项

  • 权限

确认所需的权限都已经添加

  • API使用

确认所有的Activity中都调用了onResume和onPause方法

  • 联网检查

确认测试手机或者模拟器已成功连入网络

2 高级基本设置指南

2.1 错误报告

       SDK可以帮您捕捉用户在使用应用过程中出现的异常退出(FC),并将错误报告发送给服务器,错误报告包含应用程序版本、操作系统版本和设备型号以及程序出现异常时的Stacktrace,这些数据将帮助您调试应用程序的错误。

注意:您需要在AndroidManifest.xml里面添加权限android.permission.READ_LOGS

2.2 自定义事件

1)除了基本统计分析功能外,SDK还支持您自定义的事件的统计分析,例如您可以统计广告点击次数或者视频被播放的次数等等,这里我们将提供几个简单而通用的接口:

UmsAgent.onEvent(Context context,String event_id)

2)在您需要发送事件报告的代码段,调用如下方法就可以向服务器发送事件记录,将统计event_id对应事件发送次数,变化趋势,例如广告点击,短信发送量等等。参数context为当前context的引用,event_id为当前统计事件的ID。

比如,监测应用程序里广告的点击次数,事件ID为“ad_click”。那么需要在程序里每次广告点击时调用UmsAgent.onEvent(this,“ad_click“)通知服务器一个广告点击事件发生。

UmsAgent.onEvent(Context context,String event_id,String label)

3)除了能够统计event_id所对应事件的发生次数,变化趋势外,还能统计事件中具体标签所占的比例,label为当前标签,同样这里的event_id字符串中也不能有空格。

例如:在应用程序中省份对应一个event_id,每个城市对应一个label,这样我们可以再生成的统计表中看到不同城市的比例。

对于程序中的某些可能被频繁触发的事件,开发者可以再程序中维护一个计数器,这样事件被多次触发只需要生成一个消息,这个消息包括该事件被触发的次数,这里我们重载了之前的两个接口:

UmsAgent.onEvent(Context context,String event_id,int acc)
UmsAgent.onEvent(Context context,String event_id,String label,int acc)

acc:对应事件被触发的次数。

4)这里我们除了可以对某个事件的发生次数统计外,增加了一个针对事件下某一标签的价值的保存和统计。重载方法如下:

UmsAgent.onEvent(Context context,String event_id,String label,double value)

例如 event_id代表一个“下单”事件,那么label可以标记为某个“订单号”,而value就为该“订单号”的金额(即价值)。

2.3 调试

       Cobub Android SDK提供了调试的功能,提供尽可能多的日志信息,以确定可能出现的问题。 调用以下函数,可以打开调试功能,sdk所有上报的数据可以在logcat中显示。

注意:请在产品正式发布时,关闭该功能。

UmsAgent.setDebugEnabled(true);

Log的不同等级,可以通过以下函数设置:

UmsAgent.setDebugLevel(UmsAgent.LogLevel);

LogLevel分为Info,Debug,Warn,Error和Verbose,分别对应Log的五个等级。

3 应用程序更新

3.1 上传APK

       这个功能将帮助您把新版的Android应用程序推送给用户,您只需修改AndroidManifest.xml中的VersionCode,并把应用程序的apk文件上传到服务器。

       需要添加的权限:android.permission.WRITE_EXTERNAL_STORAGE

3.2 基本功能

       在Android应用程序的入口Activity的onCreate()方法中调用UmsAgent.update(this),应用程序将自动检测服务端是否有新的版本。

public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);
   UmsAgent.update(this);
}

考虑到用户流量的限制,默认在Wi-Fi介入情况下才进行自动更新提醒。

3.3 机制说明

       每次更新Android应用程序,您只需要修改VersionCode,把Android应用程序的apk文件上传到服务器。UmsAgent.update(Context context)方法会判断是否有新版应用程序,如果发现可更新的应用程序安装包,会提示用户是否更新。用户选择更新后,安装包会下载安装更新。(根据version code来检测是否需要更新

4 数据发送

4.1 模式解释

  • 启动时发送

应用程序每次只会在启动时向服务器发送一次消息,在应用程序过程中产生的所有消息都会在下次启动时候发送。如果应用程序启动时处在不联网状态,那么消息将会缓存在本地,下次再尝试发送。

  • 实时发送(推荐使用)

应用程序每产生条消息时,就立即发送到服务器。这种方式使得计算更及时

  • 间隔发送

按时间间隔发送,默认的时间间隔为1min。如果需要修改该时间间隔,可以通过如下函数修改:

UmsAgent.setPostIntervalMillis(Context context, long interval); 参数 interval的时间单位为:ms。

4.2 设置发送模式

       在Android应用程序的入口Activity中调用UmsAgent.setDefaultReportPolicy(Context context,int mode),参数int可取值:SendPolicy.POST_ONSTART,SendPolicy.POST_NOW,SendPolicy.POST_INTERVAL,分别对应:下次启动发送,实时发送,按时间间隔发送。

      UmsAgent.setDefaultReportPolicy(this, SendPolicy.POST_ONSTART);// 下次启动发送

      UmsAgent.setDefaultReportPolicy(this, SendPolicy.POST_NOW);// 实时发送

      UmsAgent.setDefaultReportPolicy(this,SendPolicy.POST_INTERVAL);//按时间间隔发送

 

5  设置是否发送位置信息

       在程序中调用方法UmsAgent.setAutoLocation(boolean)设置是否发送位置信息。
参数为true时即发送用户位置信息。
蚕食为false时即不发送用户位置信息。

 

6 设置Session时长

       在程序中调用UmsAgent.setSessionContinueMillis(Context context,long interval)方法设置session的存活时间,session 默认时长30秒。
两次启动程序的间隔超过设置的时长时,第二次启动会生成一个新的session。否则两次启动活当作同一个session。

7 使用在线配置功能

UmsAgent.updateOnlineConfig(Context context)

       在Android应用程序的入口Activity的onCreate()方法中调用。SDK将联网检测您的在线配置,将这些信息保存在本地。

       你可以通过下面的方法读取您的自定义参数:

UmsAgent.getConfigParameter(String AppKey);