android开发步步为营之70:android接入Google Analytics总结

       求人不如求己,今天项目里要接入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。

posted on 2015-12-24 12:31  何林子  阅读(1153)  评论(0编辑  收藏  举报

导航