Google Analystic 是一个对mobile app和网站进行统计和分析的平台,对于产品来说,不管是功能的测试还是调整完善都与用户的使用和反馈直接相关。Google Analystic数据统计和分析的结果是用来发现和产品的不足的利器。
如何集成 Google Analytics到android 应用
Google Analystics的集成过程可以概略为两部分:
- 创建账户
Google Analystics可以被视为数据收集平台,既然收集了数据,必然是给人看的,少不了的就是相应的管理页面。当然第一步就是要在Google Analystics平台上注册管理账户。 接着就可以在自己账户下配置自己想要跟踪的app。
整个过程需要的产出只有两个:
google-services.json 文件
trackID
-
集成Api:
将 下载下来的google-services.json 文件拷贝到需要被跟踪的app,项目文件下的/app目录
-
修改build.gradle文件,添加相关依赖
- 项目外层的build.gradle文件(版本号已更新很多):
classpath 'com.google.gms:google-services:1.4.0-beta3'
- app module 下的build.gradle修改:
// other plugins apply plugin: 'com.google.gms.google-services' dependencies { // other dependencies compile 'com.google.android.gms:play-services-analytics:8.1.0' }
- AndroidManifest.xml 给app配置INTERNET和ACCESS_NETWORK_STATE权限
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.analytics"> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <application android:name="AnalyticsApplication">
</application>
</manifest>
```
在代码中跟踪想要获取的信息
-
使用Application的子类获取track实例
``` synchronized public Tracker getDefaultTracker() { if (mTracker == null) { GoogleAnalytics analytics = GoogleAnalytics.getInstance(this); mTracker = analytics.newTracker(R.xml.global_tracker); } return mTracker; } ```
跟踪Activity
- 在Activity中进行跟踪
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// set up the shared Tracker
AnalyticsApplication application = (AnalyticsApplication) getApplication();
mTracker = application.getDefaultTracker();
}
@Override
public void onStart() {
super.onStart(); // Always call the superclass method first
// add log to make sure that GA is being called... Log.i(TAG, "Setting screen name: " + name);
mTracker.setScreenName("Image~" + name);
// send the "hit" to GA
mTracker.send(new HitBuilders.ScreenViewBuilder().build());
}
上面的示例中,包含了两部分,其一是获取tracker的实例,tracker的实例化过程都交给application去做,这样的带来好处的就是对于tracker的统一管理,其二便是通过tracker把screen name 发送到GA,当然更建议的做法就是把tracker的发送screen的这部分功能也放到application类或其余便于管理的地方。对于应用的代码来说,只需要知道自己使用了tracker的tracker screen方法便可,并不需要在每个页面实现同样的方法。
其实就Track Activity来说,Google Analystics支持了两种方式,第一种就是上面示例的方法,通过代码来实现。另外一种就是直接在配置文件中定义好要Track的页面。相比较而言code的方式的扩展性要强一点,比如要是想要在知道用户访问页面的时间段或者其他一些信息,就必须借助自定义维度或自定义变量,而配置文件的方式是不支持这种功能的。