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,添加需要的权限
2、添加EasyTracker代码
3、在res/values目录下创建analytics.xml文件
高级配置:
1、初始化Tracker
2、发送数据
3、使用
4、多个事件
5、Default Tracker
Dispatching:
今天的数据明天上午4:00以后才可以看到。
发送间隔:
默认30分钟
手动调用:
事件追踪:
实现:
遇到的问题:
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.
这个问题可以忽略,不用处理!
做个笔记,先测试下!
准备工作:
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 Name | Tracker Field | Type | Required | Description |
---|---|---|---|---|
Category | Fields.EVENT_CATEGORY | String | Yes | The event category |
Action | Fields.EVENT_ACTION | String | Yes | The event action |
Label | Fields.EVENT_LABEL | String | No | The event label |
Value | Fields.EVENT_VALUE | Long | No | The 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.
这个问题可以忽略,不用处理!
相关文章推荐
- Android使用BottomSheetBehavior 和 BottomSheetDialog实现底部弹窗
- 使用Vitamio打造自己的Android万能播放器(2)—— 手势控制亮度、音量、缩放
- Android开发使用PopupWindow在指定View上/下/左/右显示
- 关于android中使用很多大图片的一些做法(转)
- Android AIDL使用详解
- Android中使用sqlite3操作SQLite
- Android中使用ormlite实现持久化--HelloOrmLite
- Android访问网络,使用HttpURLConnection还是HttpClient?
- Android图片裁剪库——cropper使用,完美解决图片填充不满布局问题
- Qt on Android的数据库使用(read-only错误)
- android stdio 使用butterknife的方法
- Google C++ unit test 在ARM Android 2.3 上的编译与使用
- Android开发之避免被第三方使用代理抓包
- Android系统Recovery工作原理之使用update.zip升级过程分析(三)---Android系统的三种启动模式
- Android actionbar使用方法
- Android中shape的使用
- Android native反调试方式及使用IDA绕过反调试
- Android之AsyncTask的使用(一)之简单使用
- Android-百度地图定位的使用
- android知识回顾-------使用到的设计模式及举例