您的位置:首页 > 移动开发 > Android开发

Android使用GoogleAnalytics

2013-11-12 13:52 369 查看
网站:https://developers.google.com/analytics/devguides/collection/android/v3/

做个笔记,先测试下!

准备工作:

1、Android developer
SDK

2、Google
Analytics SDK for Android v3

3、需要添加Google Analytics的App

4、在Google Analyties账户中配置App属性

具体流程:

1、更新AndroidManifest.xml,添加需要的权限

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

2、添加EasyTracker代码

package com.example.app;

import android.app.Activity;

import com.google.analytics.tracking.android.EasyTracker;

/**
* An example Activity using Google Analytics and EasyTracker.
*/
public class myTrackedActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}

@Override
public void onStart() {
super.onStart();
... // The rest of your onStart() code.
EasyTracker.getInstance(this).activityStart(this);  // Add this method.
}

@Override
public void onStop() {
super.onStop();
... // The rest of your onStop() code.
EasyTracker.getInstance(this).activityStop(this);  // Add this method.
}
}

3、在res/values目录下创建analytics.xml文件

<?xml version="1.0" encoding="utf-8" ?>

<resources>
<!--Replace placeholder ID with your tracking ID-->
<string name="ga_trackingId">UA-XXXX-Y</string>

<!--Enable automatic activity tracking-->
<bool name="ga_autoActivityTracking">true</bool>

<!--Enable automatic exception tracking-->
<bool name="ga_reportUncaughtExceptions">true</bool>
</resources>

高级配置:

1、初始化Tracker

// Initialize a tracker using a Google Analytics property ID.
GoogleAnalytics.getInstance(this).getTracker("UA-XXXX-Y")


2、发送数据

/*
* Send a screen view to Google Analytics by setting a map of parameter
* values on the tracker and calling send.
*/
Tracker tracker = GoogleAnalytics.getInstance(this).getTracker("UA-XXXX-Y");

HashMap<String, String> hitParameters = new HashMap<String, String>();
hitParameters.put(Fields.HIT_TYPE, "appview");
hitParameters.put(Fields.SCREEN_NAME, "Home Screen");

tracker.send(hitParameters);


3、使用
MapBuilder
简化发送

// Sending the same screen view hit using MapBuilder.createAppView()
tracker.(MapBuilder
.createAppView()
.set(Fields.SCREEN_NAME, "Home Screen")
.build()
);

4、多个事件

// Set screen name on the tracker to be sent with all hits.
tracker.set(Fields.SCREEN_NAME, "Home Screen");

// Send a screen view for "Home Screen"
tracker.send(MapBuilder
.createAppView()
.build()
);

// This event will also be sent with &cd=Home%20Screen.
tracker.send(MapBuilder
.createEvent("UX", "touch", "menuButton", null)
.build()
);

// Clear the screen name field when we're done.
tracker.set(Fields.SCREEN_NAME, null);

5、Default Tracker

// Tracker t1 becomes the default tracker because it is initialized first.
Tracker t1 = GoogleAnalytics.getInstance(this).getTracker("UA-XXXX-1");
Tracker t2 = GoogleAnalytics.getInstance(this).getTracker("UA-XXXX-2");

// Returns tracker t1.
Tracker defaultTracker = GoogleAnalytics.getInstance(this).getDefaultTracker();

// Hit sent to UA-XXXX-1.
defaultTracker.send(MapBuilder
.createAppView()
.set(Fields.SCREEN_NAME, "Home Screen")
.build()
);

// Override the default tracker.
GoogleAnalytics.getInstance(this).setDefaultTracker(t2);

// Now this call returns tracker t2.
defaultTracker = GoogleAnalytics.getInstance(this).getDefaultTracker();

// Hit sent to UA-XXXX-2.
defaultTracker.send(MapBuilder
.createAppView()
.set(Fields.SCREEN_NAME, getClass().toString())
.build()
);


Dispatching:

今天的数据明天上午4:00以后才可以看到。

发送间隔:

默认30分钟

// Set the dispatch period in seconds.
GAServiceManager.getInstance().setLocalDispatchPeriod(15);

<integer name="ga_dispatchPeriod">30</integer>

手动调用:

GAServiceManager.getInstance().dispatchLocalHits();


事件追踪:

Field NameTracker FieldTypeRequiredDescription
Category
Fields.EVENT_CATEGORY
String
YesThe event category
Action
Fields.EVENT_ACTION
String
YesThe event action
Label
Fields.EVENT_LABEL
String
NoThe event label
Value
Fields.EVENT_VALUE
Long
NoThe event value
实现:

@Override
public void onClick(View v) {
// May return null if a EasyTracker has not yet been initialized with a
// property ID.
EasyTracker easyTracker = EasyTracker.getInstance(this);

// MapBuilder.createEvent().build() returns a Map of event fields and values
// that are set and sent with the hit.
easyTracker.send(MapBuilder
.createEvent("ui_action",     // Event category (required)
"button_press",  // Event action (required)
"play_button",   // Event label
null)            // Event value
.build()
);
}


遇到的问题:

11-12 17:17:22.874: W/GAV3(13904): Thread[GAThread,5,main]: Service unavailable (code=1), will retry.

11-12 17:17:22.884: I/GAV3(13904): Thread[GAThread,5,main]: No campaign data found.

11-12 17:17:27.879: W/GAV3(13904): Thread[Service Reconnect,5,main]: Service unavailable (code=1), using local store.

这个问题可以忽略,不用处理!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: