안드로이드에서 구글 애널리틱스 연동하는 방법을 살펴보자!
구글이 제공하는 시작 가이드가 있지만 가이드대로 했더니 약간 부족한 면이 있어 포스팅한다.
구글 애널리틱스 콘솔 화면에서의 작업이 아닌 안드로이드 스튜디오에서 해야할 것들에 대해서 자세히 다룰 것이다.
구글 애널리틱스 콘솔에서 준비하기
우선 analytics.google.com 에 접속하여 앱 데이터를 만든다.
여기서 얻어야 할 것은 바로 UA-00000000-0 형태로 생긴 추적 코드다.
AndroidManifest.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.analytics"> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <application android:name="AnalyticsApplication"> <!-- meta-data: Google Analytics --> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> ... </application> </manifest> | cs |
build.gradle (프로젝트 레벨)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.2.3' classpath 'com.google.gms:google-services:3.0.0' } } allprojects { repositories { jcenter() } } task clean(type: Delete) { delete rootProject.buildDir } | cs |
build.gradle (앱 레벨)
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 | apply plugin: 'com.android.application' android { compileSdkVersion 25 buildToolsVersion "25.0.0" defaultConfig { ... } buildTypes { ... } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:25.2.0' compile 'com.google.android.gms:play-services-analytics:10.0.1' // GA testCompile 'junit:junit:4.12' } apply plugin: 'com.google.gms.google-services' | cs |
google-services.json 파일 얻기
(호우~ 링크가 우주끝까지 나가려하네)
위 링크로 들어가서 앱 이름을 영어로 적고, 앱 패키지 네임을 적으면 앱이 만들어진다. (혹은 만들어 진 앱에서 선택할 수있음)
그러고 단계를 따라가다 보면 google-services.json 파일을 얻을 수 있다.
저장해서 프로젝트의 app 폴더 아래 두자.
AnalyticsApplication.java 만들기
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 | import android.app.Application; import com.google.android.gms.analytics.GoogleAnalytics; import com.google.android.gms.analytics.Tracker; public class AnalyticsApplication extends Application { public static GoogleAnalytics analytics; public static Tracker tracker; private final String trackingId = "<your Tracking ID>"; public void onCreate() { analytics = GoogleAnalytics.getInstance(this); analytics.setLocalDispatchPeriod(1800); tracker = getDefaultTracker(); } synchronized public Tracker getDefaultTracker() { if (tracker == null) { GoogleAnalytics analytics = GoogleAnalytics.getInstance(this); tracker = analytics.newTracker(trackingId); tracker.enableExceptionReporting(true); tracker.enableAdvertisingIdCollection(true); tracker.enableAutoActivityTracking(true); } return tracker; } } | cs |
AnalyticsApplication은 다음과 같이 설정 해 주면 된다.
나중에 Activity가서는 static으로 tracker를 가져와도 되고, 그때 그때 getDefaultTracker()를 이용해 가져와도 된다.
13줄의 setLocalDispatchPeriod(1800)이 궁금할 수도 있으실 텐데 저건 구글 플레이 서비스가 작동안될 때 보내는 주기라고 하는데...
1로 한다고 해서 평소에 달라지는건 없다고 한다.
The dispatching period in seconds when Google Play services is unavailable.
The default period is 1800 seconds or 30 minutes
아무튼 이렇게 하면 GA를 연동할 수 있다.
휴 귀찮다...ㅠㅠ
추가. 이벤트 보내기
1 2 3 4 5 6 | public void sendEventGoogleAnalytics(String title, String message) { tracker = application.getDefaultTracker(); tracker.send(new HitBuilders.EventBuilder() .setCategory(title).setAction(message) .build()); } | cs |
예를들어 어떤 버튼을 클릭했을 때, 이벤트를 받고싶다! 하면 버튼의 onClick 함수 안에
sendEventGoogleAnalytics("클릭", "버튼을 클릭했음"); 이런식으로 적어주면 된다.
저건 내가 임의로 만든 함수이고, 안 속 내용을 참조하면 이벤트를 어떻게 보내는지 알 수 있다.
'프로그래밍 > Android' 카테고리의 다른 글
[안드로이드] Retrofit으로 API 통신하기 (4) | 2017.03.30 |
---|---|
[Retrofit] 안드로이드로 HTTP 통신하는 Retrofit 소개 (0) | 2017.03.28 |
Android DB 서버에서 다운받기, 연동 (0) | 2017.01.26 |
안드로이드 apk 용량 줄이는 효과적인 방법 (0) | 2017.01.06 |
안드로이드 아름다운 카드뷰(Card View) 리스트 만들기 - (4) (1) | 2016.12.13 |