求人不如求己,今天项目里要接入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 ,二、使用Android Studio开发android应用如何接入Google Analytics 。供大家参考。
一、使用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添加权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
4、配置analystics.xml,放在values文件夹下即可
analystics.xml内容如下
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- 您要向其发送数据的Google Analytics(分析)跟踪ID。ID中的短划线必须未经编码。您可以不提供此值,以此停用跟踪功能。 -->
<!-- LockBooster Release版本(UA-56887526-12); Dev版本(UA-56887526-7) UA-56887526-15-->
<string name="ga_trackingId">UA-66283842-1</string>
<!-- 每次用户启动Activity时自动跟踪屏幕浏览量。默认值为false。 -->
<bool name="ga_autoActivityTracking">true</bool>
<!-- 每次您的应用中出现未捕获的异常时,自动对其进行跟踪。默认值为false。 -->
<bool name="ga_reportUncaughtExceptions">true</bool>
<!-- SDK日志记录器的详细程度。从最简略到最详细的有效值分别为:error、warning、info、verbose。日志级别默认设置为warning。 -->
<string name="ga_logLevel">warning</string>
<!-- 数据发送间隔,以秒为单位。默认值为30分钟。 -->
<integer name="ga_dispatchPeriod">20</integer>
<!-- 要使用的抽样率。默认值为100.0。可以是0.0和100.0之间的任何值。 -->
<string name="ga_sampleFrequency">100.0</string>
<!-- 您的应用在会话结束前可在后台停留的时间(以秒为单位)。默认值为30秒。将此值设为负值即可停用EasyTracker会话管理。 -->
<integer name="ga_sessionTimeout">30</integer>
</resources>
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();
}
}
}
6、登录ga查看效果
https://www.google.com/analytics/web/
7、提示
GA一般要求需要通过国外vpn才能访问的。我们的应用一般给国外用户使用,所以国外用户访问调用GA的接口是没有问题的,国内用户测试的时候需要连上国外vpn。