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。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-12 12:47:30

android开发步步为营之70:android接入Google Analytics总结的相关文章

android开发步步为营之56:Android开发技术点总结(持续更新)

1.eclipse svn插件下载 http://subclipse.tigris.org/update_1.6.x http://subclipse.tigris.org/update_1.8.x 64位机器 http://subclipse.tigris.org/servlets/ProjectProcess?pageID=p4wYuA 2.eclipse常用插件下载 http://blog.csdn.net/jackiehff/article/details/8181945 3.unico

android开发步步为营之59:android定时任务之ScheduledThreadPoolExecutor

android定时任务有多种,1.Timer+TimerTask 2.Handler.postDelay   3.AlarmManager  4.ScheduledThreadPoolExecutor,前面3种比较常见,相信大家也经常使用,本文介绍采用多线程的ScheduledThreadPoolExecutor,它相比jdk 1.5的Timer的优点有几点:1.采用多线程,Timer是单线程,一旦Timer里面任何一个TimerTask异常的话,整个Timer线程就会停止 2.Timer依赖计

android开发步步为营之61:android定时任务之Handler.postDelayed

/** * */ package com.figo.study; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; /** * @a

android开发步步为营之66:android图片选取

最近做一个页面,反馈问题页面,有个用户上传问题图片的功能.本来很笨的想把系统的所有图片列出来,然后让用户选择,后来发现原来可以直接打开手机所有图片的api的.效果如图: 给出主要代码: 1.选择图片 Intent i = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(i, 1); 2.获取图片 protect

【Android开发】完美解决Android完全退出程序

背景:假说有两个Activity, Activity1和Activity2, 1跳转到2,如果要在2退出程序,一般网上比较常见的说法是用 System.exit(0) 或是 android.os.Process.killProcess(android.os.Process.myPid()) 但实际应用中,并不是能够真正退出,问题出在?1跳转到2时,如果Activity1你finish掉了,两么是可以退出程序的,但有时1跳转到2时,我们不能将Activity1 finish掉,那么在Activit

配置cordova的android开发环境(无android studio)

原文:配置cordova的android开发环境(无android studio) 趁元旦放假想试一下cordova,不想安装庞大的android studio,所以想最小化安装,居然花了一整天的时间才能正常编译cordova工程,记录一下过程,备将来参考. 安装环境:操作系统:windows 10 x64 第一步:安装nodejs,下载最新版本v10.15.0 第二步:设置npm安装源 npm config set registry http://registry.npm.taobao.org

Android开发工具全面转向Android Studio(3)——AS project/module的目录结构(与Eclipse对比)

如果AS完全还没摸懂的,建议先看下Android开发工具全面转向Android Studio(2)——AS project/module的CRUD. 1.其实AS project/module的目录结构很简单,我浓缩成2张图给总结了,先看图,再看下面的文字,因为还有些细节图上体现不出来(我这个图上的项目来源于我之前的Eclipse项目,并且有lib项目库相互依赖) 2.上面的图很直观,但也很眼花缭乱,我再针对图总结下重点和疑问点. ①在AS的世界里,文件夹都以模块(module)为单位组织的,其

android开发步步为营之55:google广告平台admob接入总结

App变现的主要渠道有广告,增值服务,在线交易.最近项目需要接入google的admob广告平台,这里写个总结,方便其他开发者参考. 第一步:通过android sdk manager下载google play services lib,如何下载不了,baidu一下,去下载其他人提供的 下载好了之后,将该lib项目引用到测试项目study,即可调用google play services相关广告的api了      第二步.https://www.google.com/admob/ 注册账号,注

android开发步步为营之68:Facebook原生广告接入总结

开发应用的目的是干嘛?一方面当然是提供优质服务给用户,还有一方面最重要的还是须要有盈利.不然谁还有动力花钱花时间去开发app? 我们的应用主攻海外市场,所以主要还是接入国外的广告提供商.本文就今天刚完毕接入facebook原生广告功能,介绍一下怎样接入fb的原生广告.供大家參考.         第一步:申请接入账号(须要FQ) https://developers.facebook.com/docs/audience-network/getting-started#company_info h