将 Google Analytics(分析)添加到 Android 应用中

将 Google Analytics(分析)添加到 Android 应用中

本指南介绍了如何将 Google Analytics(分析)添加到您的 Android 应用以衡量用户在已命名屏幕上的活动。如果您目前没有应用,而是仅仅想了解一下 Google Analytics(分析)的工作原理,请参阅我们的示例应用。

必需:最新版 Android Studio 和 Google Play 服务

请注意:Google Analytics(分析)可在不带 Google Play 服务的设备上使用并正常工作。在这种情况下,您仍需下载并使用 Google Play 服务 SDK,而 Google Analytics(分析)将会自动回退为使用本地数据发送。

添加网络权限

更新您项目的 AndroidManifest.xml 文件,以使其包含 INTERNET 和 ACCESS_NETWORK_STATE 权限:

 xmlns:android="http://schemas.android.com/apk/res/android"
         
package="com.example.analytics">

 
android:name="android.permission.INTERNET"/>
 
android:name="android.permission.ACCESS_NETWORK_STATE"/>

 
android:name="AnalyticsApplication">
    ...
 

适用于  Gradle  的 Google 服务插件会解析  google-services.json  文件中的配置信息。通过更新您的顶级 build.gradle  和应用一级  build.gradle  文件来将该插件添加到您的项目中,具体操作如下所示:

  1. 将下面的依赖关系添加到您的项目一级 build.gradle 中:
    classpath 'com.google.gms:google-services:1.5.0-beta2'
  2. 将下面的插件添加到您的应用一级 build.gradle 中:
    apply plugin: 'com.google.gms.google-services'

现在,您需要为 Google Play 服务添加一个依赖关系。为此,请在您应用的 build.gradle 中添加以下内容:

 
   
compile 'com.google.android.gms:play-services-analytics:8.4.0'

获取配置文件

点击下面的按钮即可获取配置文件以将其添加到您的项目中。

该配置文件提供了您的应用的服务专用信息。要获取该文件,您必须为您的应用选择一个现有项目或新建一个项目。此外,您还需要为应用提供一个文件包名称。

注意:要获取该配置文件,您必须拥有 Google Analytics(分析)帐户和已注册的媒体资源。 获取配置文件

将配置文件添加到项目中

将您刚刚下载的 google-services.json 文件复制到您 Android Studio 项目的 app/ 或 mobile/ 目录中。打开 Android Studio 的“终端”窗格:

MAC/LINUXWINDOWS
$ mv path-to-download/google-services.json app/

添加屏幕跟踪

此时,每当用户打开或切换您应用上的屏幕时,您都会向 Google Analytics(分析)发送一次已命名的屏幕浏览。您的代码应能够:

  • 通过 Application 子类提供共享的跟踪器。
  • 替换前台活动的回调方法。
  • 为屏幕提供名称并执行跟踪。

注册谷歌Play服务

 
   

 


Application声明:

  public class AnalyticsApplication extends Application {
        private Tracker mTracker;
        /**
         * Gets the default {@link Tracker} for this {@link Application}.
         * @return tracker
         */
        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.global_tracker);
            }
            return mTracker;
        }
    }


将google-services.json 放到你的app/ 


下载google-services.json  要注册谷歌账户,并开通GoogleAnalysis 服务。

在Activity 中使用:

package com.gasample;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;

import com.google.android.gms.analytics.HitBuilders;
import com.google.android.gms.analytics.Tracker;

public class MainActivity extends AppCompatActivity {
    private final  String TAG="MainActivity";
   private  Tracker mTracker;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Obtain the shared Tracker instance.
        AnalyticsApplication application = (AnalyticsApplication) getApplication();
        mTracker = application.getDefaultTracker();
    }

    @Override
    protected void onResume() {
        super.onResume();

//        Log.i(TAG, "Setting screen name: " + name);
//        mTracker.setScreenName("Image~" + name);
//        mTracker.send(new HitBuilders.ScreenViewBuilder().build());


        //发送事件
        mTracker.send(new HitBuilders.EventBuilder()
                .setCategory("Action")
                .setAction("onResume")
                .build());
    }

    @Override
    protected void onStart() {
        super.onStart();
        //发送事件
        mTracker.send(new HitBuilders.EventBuilder()
                .setCategory("Action")
                .setAction("onStart")
                .build());
    }
}

可参考  https://segmentfault.com/a/1190000000498423






-----------------------------------------------------------------------------------------------------------------------



实际应用 中 GA 接入步骤:
1.   相关Module 下的build.gradle     compile 'com.google.android.gms:play-services-analytics:8.4.0'
 2. 在manifest 目录下 的Application 节点下 添加GA 配置:
 
 
        
3.在 res目录下 新建 xml 文件夹   将配置文件  :


4. 在 Application.java  文件中:
package com.google.android.apps.mobileplayground;

import com.google.android.gms.analytics.GoogleAnalytics;
import com.google.android.gms.analytics.Tracker;

import android.app.Application;

import java.util.HashMap;

/**
 * An extension to Application class to provide tracker for analytics purposes. Having the tracker
 * instances here allows all the activities to access the same tracker instances. The trackers can
 * be initialised on startup or when they are required based on performance requirements.
 */
public class AnalyticsSampleApp extends Application {

  // The following line should be changed to include the correct property id.
  private static final String PROPERTY_ID = "UA-XXXXX-Y";

  /**
   * Enum used to identify the tracker that needs to be used for tracking.
   *
   * A single tracker is usually enough for most purposes. In case you do need multiple trackers,
   * storing them all in Application object helps ensure that they are created only once per
   * application instance.
   */
  public enum TrackerName {
    APP_TRACKER, // Tracker used only in this app.
    GLOBAL_TRACKER, // Tracker used by all the apps from a company. eg: roll-up tracking.
    ECOMMERCE_TRACKER, // Tracker used by all ecommerce transactions from a company.
  }

  HashMap mTrackers = new HashMap();

  public AnalyticsSampleApp() {
    super();
  }
  synchronized Tracker getTracker(TrackerName trackerId) {
    if (!mTrackers.containsKey(trackerId)) {

      GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
      Tracker t = (trackerId == TrackerName.APP_TRACKER) ? analytics.newTracker(R.xml.global_tracker)
          : (trackerId == TrackerName.GLOBAL_TRACKER) ? analytics.newTracker(PROPERTY_ID)
              : analytics.newTracker(R.xml.ecommerce_tracker);
      mTrackers.put(trackerId, t);

    }
    return mTrackers.get(trackerId);
  }

5 通过 相应的方法 去统计 点击事件:
eg 页面统计:
Tracker t = ((AnalyticsSampleApp) getActivity().
getApplication()).getTracker(TrackerName.APP_TRACKER);

t.enableAdvertisingIdCollection(true);
//UserID为登录用户的唯一识别号,若用户未登录,为空值          
t.set("&uid", UserID); 
//screenName为页面名称,设置规则见下页PPT
t.setScreenName(screenName);       

HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder()
 .setCustomDimension(1, UserID) 
.setCustomDimension(2, t.tracker.get("&cid")) 

t.send(builder.build());


你可能感兴趣的:(安卓)