求人不如求己,今天项目里要接入Google Analytics,这个是做应用统计分析用的,可以查看当前手机活跃用户,事件点击等等数据,先看看效果:
之前eclipse里面接入已经成功,昨天项目组决定项目转成使用android studio来开发,看google官方文档,官方文档https://developers.google.com/analytics/devguides/collection/android/v4/,然后官方文档里面的配置文件是用google-services.json的,这个说是放在app文件夹下面,然后之前在eclipse values文件夹下面的analytics.xml怎么用呢?官方文档又没个说明,真是啃爹啊。然后它在github上的https://github.com/googlesamples/google-services这个demo也不是完整,配置文件呢?google这么大的公司为何要给开发者埋这么多坑啊,然后网上找资料,找了半天,目前网上还没有介绍如何在android studio里面接入ga,android开发者qq群咨询也没有个回应,后来自己琢磨,终于解决了,所谓的google-services.json根本就不用,然后analytics.xml应该放在xml文件夹下。new的时候正好用到。
private Tracker mTracker;
synchronized public Tracker getDefaultTracker() {
if (mTracker == null) {
GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
// To enable debug logging use: adb shell setprop log.tag.GAv4 DEBUG
mTracker = analytics.newTracker(R.xml.analytics);
}
return mTracker;
}
一、使用eclipse开发android应用如何接入Google Analytics
1:创建analytics账号
https://www.google.com/analytics/在这个网站,你可以使用你的gmail账号登录,然后可以去创建你的应用,一步一步的操作,然后你会获取到一个跟踪id,这样的:
UA-66283842-1,这个后面需要你添加到analytics.xml文件夹中去。
2、下载Google Analytics Services SDK,得到的libGoogleAnalyticsServices.jar放在项目libs文件夹
https://developers.google.com/analytics/devguides/collection/android/resources?hl=es
3、AndroidManifest.xml添加权限
4、配置analystics.xml,放在values文件夹下即可
analystics.xml内容如下
UA-66283842-1
true
true
warning
20
100.0
30
5、添加统计代码
在activity中或者在application中,这么写:
/**
*
*/
package com.figo.study;
import com.google.analytics.tracking.android.EasyTracker;
import com.google.analytics.tracking.android.MapBuilder;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
/**
* @author figo
*
*/
public class GAActivity extends BaseActivity {
private Button btnAnalytics;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ga);
btnAnalytics=(Button)findViewById(R.id.btn_ga);
btnAnalytics.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
try {
EasyTracker tracker = EasyTracker.getInstance(GAActivity.this);
tracker.send(MapBuilder
.createEvent("lang", "lang_download", "types", 2l)
.build()
);
} catch (Exception e) {
// TODO: handle exception
}
}
});
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
EasyTracker.getInstance(this).activityStart(this);
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
EasyTracker.getInstance(this).activityStop(this);
}
}
二、使用Android Studio开发android应用如何接入Google Analytics
参考文档:https://developers.google.com/analytics/devguides/collection/android/v4/start,androidstudio开发中,创建GA账号和项目和之前一样。
其他步骤如下:
1、Add the dependency to your project's top-level build.gradle:
classpath 'com.google.gms:google-services:1.3.0-beta1'
2、Add the plugin to your app-level build.gradle:
apply plugin: 'com.google.gms.google-services'
3、Now, you need to add a dependency for Google Play Services. Inside your app's build.gradle add:
compile 'com.google.android.gms:play-services-analytics:7.3.0'
4、Application里放上
private Tracker mTracker;
synchronized public Tracker getDefaultTracker() {
if (mTracker == null) {
GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
mTracker = analytics.newTracker(R.xml.analytics);
}
return mTracker;
}
analytics.xml和eclipse上一样,但是是放在xml文件夹下
5、其他地方调用
public void onEvent(String category, String action, String label, Long value) {
try {
mTracker = MainApp.shared().getDefaultTracker();
mTracker.send(new HitBuilders.EventBuilder()
.setCategory(category)
.setAction(action).setLabel(label).setValue(value)
.build());
} catch (Exception e) {
if (e != null) {
e.printStackTrace();
}
}
}
https://www.google.com/analytics/web/
7、提示
GA一般要求需要通过国外才能访问的。我们的应用一般给国外用户使用,所以国外用户访问调用GA的接口是没有问题的,国内用户测试的时候需要连上国外。