티스토리 뷰
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를 이용해서 데이터를 분석하면 됩니다 :)
'개발 > Android' 카테고리의 다른 글
[Android] / [안드로이드] / googlemap / marker(마커) zIndex(z축) 설정하는 방법 (2) | 2016.09.29 |
---|---|
Android Nougat requires the IDE to be running with Java 1.8 or later 에러 해결 / Mac OS 기준 (0) | 2016.09.28 |
[Android] / [안드로이드] / Android App 첫 실행 체크 / Android First Run Check (0) | 2016.09.27 |
[Android] / [안드로이드] / 이미지 버튼 이미지 크기 맞추기 / imagebutton (0) | 2016.09.27 |
[Android] 안드로이드 Title bar 제거하기 (0) | 2016.09.27 |
- Total
- Today
- Yesterday
- GoogleAnalytics
- comma
- imagesize
- 소스코드
- imageButton
- zindex
- 코드 넣기
- Marker
- 앱
- development
- Google Map
- Android Studio
- Android
- 구글맵
- SyntaxHighlighter
- jQuery
- 개발
- 안드로이드
- 코드삽입
- 개발자
- GOOGLE PLAY
- 코드
- JavaScript
- Google Analytics
- play service
- 마커
- dependencies
- titlebat
- googlemap
- 깜빡임
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |