Đưa google Analytics V4 vào ứng dụng android của bạn
Giới thiệu
Bạn đã bao giờ muốn kiểm tra xem có bao nhiều đang on trên ứng dụng hoặc game của bạn hay chưa, họ đang dùng ở mục nào nhiều nhất ..v.v.v . Vậy thì google Analytics sẽ là lựa chọn cực kì hợp lý cho bạn nào muốn theo dõi hành vi người dùng kiểm tra lỗi phần mềm kiểm tra
Mục Lục
- I. Tạo google Analytics ID cho ứng dụng của bạn
- II. Tạo Project
- III. Đưa google analytic vào ứng dụng của bạn
Bắt đầu
I. Tạo google Analytics ID cho ứng dụng của bạn
I.1 - Bạn vào trang
https://www.google.com/analytics/web/#home/ đăng nhập nếu chưa có thì tạo 1 tài khoản mới .
I.2 - Ở tab
ADMIN bên góc bên phải màn hình trong phần
ACCOUNT tạo mới 1 ACCOUNT
I.3 - Chọn
Industry Category & Report Time Zone chọn
Get Tracking ID. rồi next
I.4 - Bạn sẽ được 1 cái ID dạng như vầy
UA-XXXXXXXX-X
II. Khởi tạo project của bạn
II.1 - Bạn chọn
New Project ----> chọn
Blank Activity
II.2 - Tạo mới 2 cái parket dưới tên
activity và
app để dễ dàng tổ chức ứng dụng hơn, bạn tạo thêm 1
MainActivity.java đưa vào mục
activity
II.3 - Mở File
strings.xml dưới mục
res ⇒ values bạn sửa lại
strings.xml
<resources>
<string name="app_name">Google Analytics</string>
<string name="action_settings">Settings</string>
<string name="title_activity_second">Second Activity</string>
<string name="toast_track_exception">Exception is recorded. Check the Crashes and Exceptions on Google Dashboard!</string>
<string name="toast_app_crash">The app will crash now! Check the Crashes and Exceptions on Google Dashboard!</string>
<string name="fragment_footer">Fragment is loaded! Check the screen view on Google Analytics Dashboard.</string>
<string name="msg_instructions">Click on each button to see the appropriate tracking on Google Analytics</string>
<string name="btn_second_screen">Second Screen</string>
<string name="btn_send_event">Track Event</string>
<string name="btn_exception_tracking">Track Exception</string>
<string name="btn_app_crash">Track App Crash</string>
<string name="btn_load_fragment">Fragment Tracking</string>
</resources>
II.3 - Mở Fle
color.xml dưới mục
res ⇒ values bạn sửa lại, nếu mà không thấy thì bạn có thể tạo 1 cái file xml mới với tên color luôn
colors.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#FF6D00</color>
<color name="colorPrimaryDark">#FF6D00</color>
<color name="textColorPrimary">#FFFFFF</color>
<color name="windowBackground">#FFFFFF</color>
<color name="navigationBarColor">#000000</color>
<color name="colorAccent">#FFD180</color>
<color name="btnBackground">#e7e7e7</color>
</resources>
III. Đưa google analytic vào ứng dụng của bạn
III.1 - Mở mục
trong app của bạn ra thêm vào trong dependencies{...}
build.gradle
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.google.android.gms:play-services-analytics:7.3.0'
}
III.2 - Tạo mới một file tên
app_tracker.xml dưới thư mục
res rồi viết thành
app_tracker.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- End current session if app sleeps for a period of time -->
<integer name="ga_sessionTimeout">300</integer>
<!-- Enable automatic Activity measurement -->
<bool name="ga_autoActivityTracking">true</bool>
<!-- The property id associated with this analytics tracker -->
<string name="ga_trackingId">UA-58121605-1</string>
<string name="ga_sampleFrequency">100.0</string>
<bool name="ga_reportUncaughtExceptions">true</bool>
<!--
See Project Structure -> Analytics -> Google Analytics -> Learn More
to learn more about configuring this file.
-->
</resources>
Bạn nên chắc chắn rằng
ga_trackingId phải thay bằng cái
ID mà bạn lấy ở
mục I cái này rất quan trọng nếu không bạn sẽ không thấy được thành quả của bạn :)
III.3 - Dưới app package tạo mới 1 class AnalyticsTrackers.java với code dưới đây
AnalyticsTrackers.java
import android.content.Context;
import com.google.android.gms.analytics.GoogleAnalytics;
import com.google.android.gms.analytics.Tracker;
import java.util.HashMap;
import java.util.Map;
import info.androidhive.googleanalytics.R;
/**
* A collection of Google Analytics trackers. Fetch the tracker you need using
* {@code AnalyticsTrackers.getInstance().get(...)}
* <p/>
* This code was generated by Android Studio but can be safely modified by
* hand at this point.
* <p/>
* TODO: Call {@link #initialize(Context)} from an entry point in your app
* before using this!
*/
public final class AnalyticsTrackers {
public enum Target {
APP,
// Add more trackers here if you need, and update the code in #get(Target) below
}
private static AnalyticsTrackers sInstance;
public static synchronized void initialize(Context context) {
if (sInstance != null) {
throw new IllegalStateException("Extra call to initialize analytics trackers");
}
sInstance = new AnalyticsTrackers(context);
}
public static synchronized AnalyticsTrackers getInstance() {
if (sInstance == null) {
throw new IllegalStateException("Call initialize() before getInstance()");
}
return sInstance;
}
private final Map<Target, Tracker> mTrackers = new HashMap<Target, Tracker>();
private final Context mContext;
/**
* Don't instantiate directly - use {@link #getInstance()} instead.
*/
private AnalyticsTrackers(Context context) {
mContext = context.getApplicationContext();
}
public synchronized Tracker get(Target target) {
if (!mTrackers.containsKey(target)) {
Tracker tracker;
switch (target) {
case APP:
tracker = GoogleAnalytics.getInstance(mContext).newTracker(R.xml.app_tracker);
break;
default:
throw new IllegalArgumentException("Unhandled analytics target " + target);
}
mTrackers.put(target, tracker);
}
return mTrackers.get(target);
}
}
III.4 - Dưới
app tiếp tục tạo 1 class
MyApplication.java class này chứa 1 số hàm quan trọng như
trackScreenView() : Hàm để theo dõi màn hình (Activity hoặc Fragment)
trackException() : Hàm để bắt exceptions khi bạn sử dụng khối try catch
trackEvent() : Hàm để bắt sự kiện
MyApplication.java
import android.app.Application;
import com.google.android.gms.analytics.GoogleAnalytics;
import com.google.android.gms.analytics.HitBuilders;
import com.google.android.gms.analytics.StandardExceptionParser;
import com.google.android.gms.analytics.Tracker;
/**
* Created by Ravi on 13/08/15.
*/
public class MyApplication extends Application {
public static final String TAG = MyApplication.class
.getSimpleName();
private static MyApplication mInstance;
@Override
public void onCreate() {
super.onCreate();
mInstance = this;
AnalyticsTrackers.initialize(this);
AnalyticsTrackers.getInstance().get(AnalyticsTrackers.Target.APP);
}
public static synchronized MyApplication getInstance() {
return mInstance;
}
public synchronized Tracker getGoogleAnalyticsTracker() {
AnalyticsTrackers analyticsTrackers = AnalyticsTrackers.getInstance();
return analyticsTrackers.get(AnalyticsTrackers.Target.APP);
}
/***
* Tracking screen view
*
* @param screenName screen name to be displayed on GA dashboard
*/
public void trackScreenView(String screenName) {
Tracker t = getGoogleAnalyticsTracker();
// Set screen name.
t.setScreenName(screenName);
// Send a screen view.
t.send(new HitBuilders.ScreenViewBuilder().build());
GoogleAnalytics.getInstance(this).dispatchLocalHits();
}
/***
* Tracking exception
*
* @param e exception to be tracked
*/
public void trackException(Exception e) {
if (e != null) {
Tracker t = getGoogleAnalyticsTracker();
t.send(new HitBuilders.ExceptionBuilder()
.setDescription(
new StandardExceptionParser(this, null)
.getDescription(Thread.currentThread().getName(), e))
.setFatal(false)
.build()
);
}
}
/***
* Tracking event
*
* @param category event category
* @param action action of the event
* @param label label
*/
public void trackEvent(String category, String action, String label) {
Tracker t = getGoogleAnalyticsTracker();
// Build and send an Event.
t.send(new HitBuilders.EventBuilder().setCategory(category).setAction(action).setLabel(label).build());
}
}
III.5 - Mở file
AndroidManifest.xml thêm vào 2 dòng sau trên <
application> tag
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
Dưới tag </activity> bạn thêm vào dòng sau
<receiver
android:name="com.google.android.gms.analytics.AnalyticsReceiver"
android:enabled="true">
<intent-filter>
<action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH" />
</intent-filter>
</receiver>
<service
android:name="com.google.android.gms.analytics.AnalyticsService"
android:enabled="true"
android:exported="false" />
<!--
Optionally, register CampaignTrackingReceiver and CampaignTrackingService to enable
installation campaign reporting
-->
<receiver
android:name="com.google.android.gms.analytics.CampaignTrackingReceiver"
android:exported="true">
Chúc mừng bạn bạn đã đưa được GG Ananytic thành công