티스토리 뷰


Google Analytics와 Android 를 Android Studio에서 연동하는 방법에 대해서 작성해보겠습니다.



제 글을 읽고 이해가 잘 되지 않는 부분이나 부족한 부분은 Google Developers에 보면 사용법과 적용에 관해서 설명이 되어있으니 참고하시기 바랍니다.


저는 GA를 적용할때 여기 블로그를 참고해서 적용 했습니다. 





1. Traking ID 생성


Google Analytics   에 접속합니다. 


구글 계정이 있으면 기존의 구글 계정을 이용해서 로그인을 하고 계정이 없을경우 새로 만들어줍니다.




로그인이 완료되면 아래와 같은 화면을 볼 수 있습니다. 가입을 눌러줍니다.



가입을 하면 traking ID를 만들기 위한 창이 나오게 되는데 저희는 Android에 적용 할것이기 때문에 아래처럼 모바일앱을 선택 해주고 나머지 정보들을 본인의 취지에 맞게 입력해주면 됩니다.




모든 정보를 기입한 후 추적 ID 가져오기를 누르면 완료됩니다.


모든 절차가 완료되면


UA-XXXXXXXX-X

형태의 Tracking ID 를 얻을 수 있습니다.





2. 프로젝트에 필요한 코드 및 파일 추가


A. Permissions 추가


아래의 2가지 permission을 AndroidManifest.xml파일에 추가해줍니다.

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




B. Dependencies 추가


Build.gradle 파일을 열어서 아래의 코드를 먼저 추가해줍니다

apply plugin: 'com.google.gms.google-services'



위의 코드를 추가하고 아래의 코드를 dependencies 색션에 넣어줍니다. google play services 버전은 현재  studio에 설치된 최신 버전으로 하시면 됩니다. 꼭 버전을 따라서 맞출 필요는 없습니다.

compile 'com.google.android.gms:play-services:9.4.0'


dependencies 색션에 아무것도 없다면

dependencies {
compile 'com.google.android.gms:play-services:9.4.0'
}

이런 형태가 될 것 입니다.




이제 google-services.json file이 필요합니다. (저 같은 경우는 아래의 과정을 생략하고 진행했지만 잘 됬습니다.)


여기로 이동합니다.



다음과 같은 화면이 나오는데 자신에게 맞는 정보를 입력합니다.



입력 후 Choose and configure services를 클릭합니다.


클릭하면 google 여러가지 구글 서비스에 관한 파일 생성 과정이 나오는데 지금 당장은 Google Analytics에 관한 파일만 있으면 되기때문에  Google Analytics 에 정보를 적절히 입력하고 파일을 생성 해줍니다.



생성된 파일을 자신의 자신의 프로젝트 경로에 넣어줍니다


예를 들면 C:\Users\<USERNAME>\AndroidStudioProjects\GoogleAnalyticsAndroidTutorial\app





C. XML 파일 추가


res > xml 폴더에 다음과 같은 파일을 만들어 준다 (xml 폴더가 없으면 만들어 주시면 됩니다.)


analytics_tracker.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="ga_trackingId">UA-XXXXXXX-X</string>
<bool name="ga_reportUncaughtExceptions">true</bool>
</resources>

NOTE. step1에서 만든 tracking ID를  ga_trackingId 태그안에 넣어주세요. 정확하게 넣지 않을경우 정상 작동하지 않습니다.






D. Google Analytics 클래스 추가


NOTE. 반드시 Application클래스를 상속 받아야 합니다.



먼저 필요한 패키지를 import해줍니다

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


다음과 같은 함수를 만들어 줍니다.

/**
* Gets the default {@link Tracker} for this {@link Application}.
* @return tracker
*/
synchronized public Tracker getDefaultTracker() {
if (mTracker == null) {
GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
// Setting mTracker to Analytics Tracker declared in our xml Folder
mTracker = analytics.newTracker(R.xml.analytics_tracker);
}
return mTracker;
}




완성된 모습은 다음과 같을 것입니다.

package com.coderefer.googleanalyticsandroidtutorial;

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


public class GoogleAnalyticsApplication 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);
// Setting mTracker to Analytics Tracker declared in our xml Folder
mTracker = analytics.newTracker(R.xml.analytics_tracker);
}
return mTracker;
}

}




클래스를 완성 한 후 Androidmanifest.xml 파일로 이동합니다.


Androidmanifest.xml 파일의 application 태그안에 속성으로 아래와 같이 입력합니다.

android:name=".GoogleAnalyticsApplication"



그럼 Androidmanifest.xml파일은 전체적으로 다음과 같은 모습을 하고 있을 것입니다.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.umhoonsub.test">


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


<application
android:name=".GoogleAnalyticsApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

</manifest>





3. Activity내에서 트래킹 하기




Activity나 Screens을 트래킹하기 위해서, HitBuilders 클래스의 ScreenViewBuilder() 함수를 사용합니다. ScreenViewBuilder() 함수를 이용해서 Google Analytics Android로 Screens를 보냅니다.



자 이제 트래킹 하고 싶은 Activity를 열어주세요.

아래와 같이 Tracker를 만들어주세요

private Tracker mTracker;



Tracker를 만들고 onCreate()함수안에 다음과 같은 코드를 삽입하여 줍니다.

GoogleAnalyticsApplication application = (FoodflyRiderApp) getApplication();
mTracker = application.getDefaultTracker();



이제 우리는 오버라이딩onResume() 함수에 다음과 같은 코드를 작성해주면 됩니다.

@Override
protected void onResume() {
super.onResume();
//using tracker variable to set Screen Name
mTracker.setScreenName(name);
//sending the screen to analytics using ScreenViewBuilder() method
mTracker.send(new HitBuilders.ScreenViewBuilder().build());
}


setScreenName() 함수내의 parameter는 자신이 사용하고 싶은 스크린 이름을 String 값으로 넣으시면 됩니다.


예를 들면

mTracker.setScreenName("메인");




모든 과정이 정상적으로 진행되었으면 Google Analytics의 자신의 App / 실시간 탭에서 다음과 같은 화면을 볼 수 있습니다.


Important NOTE. 실시간 탭에서 바로 활성 사용자가 '1'로 표시되지 않을 수도 있습니다. 실시간 이지만 1~3분정도의 딜레이가 발생합니다. 앱을 실행하고 잠시만 기다려 보세요 :)





4. Event Tracking


Envet Tracking은 어떠한  event라도 트래킹 할 수 있습니다. 버튼클릭, 다운로드, 아이템구매 등 다양한 이벤트에 모두 적용이 가능합니다.


Event를 트래킹 하기 위해서는 HitBuilder 클래스의 EventBuilder()함수를 사용합니다.


아래의 코드를 보면 쉽게 적용 하실 수 있습니다.

bEvent.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// Get tracker.
Tracker t = ((GoogleAnalyticsApplication) getApplication()).getDefaultTracker();

// Build and send an Event.
t.send(new HitBuilders.EventBuilder()
.setCategory(getString(R.string.categoryId))
.setAction(getString(R.string.actionId))
.setLabel(getString(R.string.labelId))
.build());
Toast.makeText(MainActivity.this, "Event is recorded. Check Google Analytics!", Toast.LENGTH_LONG).show();
}
});

Action, Label, Category에는 자신이 원하는 값들을 넣으시면 됩니다.


예를들면 이런식으로!

t.send(new HitBuilders.EventBuilder()
.setCategory("메인")
.setAction("구매버튼")
.setLabel("구매")
.build());





이제 Google Analytics를 이용해서 데이터를 분석하면 됩니다 :)

댓글
댓글쓰기 폼