출처 : http://googledevkr.blogspot.kr/2014/06/google-analytics-for-android.html
Google Analytics for Android를 이용한 근거기반 서비스 개발
안녕하세요. GDG SSU 전 운영자 김종찬(flashilver@gmail.com)입니다. 현재 Software Maestro에서 2단계 연수과정을 진행 중이고, 노인분들을 위한 안드로이드 런처를 개발 중입니다.
작년 IT 업계에서 인기있던 키워드 중 하나는 “Lean Start-Up”입니다. 이 글에서는 완벽한 Lean Start-up은 아니지만, 개발자의 입장에서 Google Analytics를 활용하여 그 맛을 조금 보고 흥미를 느낄 수 있을만한 Tutorial을 제공하려 합니다.
준비하실 내용은 다음과 같습니다.
0. 런칭을 목표로 하고있는 독자님의 서비스 혹은 이 글에서 다루고자 하는 예제(Github Repo)
2. Android 개발환경 - Android Studio OR Eclipse+Android SDK
**이 글에서는 Android Studio를 사용합니다.
시작해보시죠!
0. Google Analytics Console 세팅하기
Google Analytics는 런칭된 Application의 상황 통계를 웹페이지 콘솔로써 보여줍니다. 그러한 데이터들을 받고 살펴보기 위해 첫번째 관문으로 Project에 대응되는 Analytics를 세팅하여야 합니다.
> Action 0-1 : http://www.google.com/analytics/ 에 가셔서 Google 계정으로 로그인을 해주시고, 계정이 없다면 가입 절차를 밟아주세요.
Action 0-1까지 수행하셨으면 화면 상단에 위와 같은 탭이 나타납니다.
>Action 0-2 : “관리" 버튼을 눌러주세요.
Action 0-2를 수행하시면 위와 같은 Spinner가 나오는데 저는 이미 Anaytics를 사용하고 있어서 여러가지가 나타나네요.
> Action 0-3 : “새 계정 만들기"를 눌러주세요.
> Action 0-4 :
우리는 이번에 웹사이트에 Anaytics를 거는 것이 아닌, 모바일 앱에 거는 예제를 다룰 것이니 모바일 앱을 클릭하시고 계정 이름, 앱 이름, 업종 카테고리, 보고서 시간대를 세팅해주세요.
계정 이름은 본인이 주로 사용하시는 ID나 프로젝트 명을 적어주시면 되며, 앱 이름과 업종 카테고리는 상황에 맞게 잘 적어주시면 됩니다. 보고서 시간대는 대한민국을 선택하시면 됩니다.
약관이 나오면 빠르게 동의를 눌러주세요.
위와 같은 화면이 나왔으며 “추적 ID”라는 항목이 등장한 것을 살펴 보실 수 있습니다. 이것은 차후에 안드로이드 애플리케이션과 Anlaytics를 연결하는 고리이니 다시 살펴보실 준비를 하셔야 합니다.
1. Android Project에 Google Analytics 세팅하기
다음으로는 Android Project에 Google Anaytics SDK를 추가할 차례입니다.
> Action 1-1 : 이 링크를 참조하여 SDK를 세팅하시면 되겠습니다. 위에서 알려드린 링크의 경우에는 Android Studio에서 세팅하는 법, Eclipse에서 세팅하는 법 둘 다 서술하고 있습니다. SDK 설정이 끝나면 이제는 직접 Android Project 에다가 SDK를 붙여보는 작업을 해보도록 하겠습니다.
> Action 1-2 : 이 링크를 참조하여 AndroidManifest.xml에 두 개의 퍼미션을 등록해주세요. <manifest 아래에 아래의 스크린 샷과 같이 등록하면 됩니다.
Google Analytics에는 Tracker라는 개념이 있습니다. 이 Tracker는 Application을 상속한 클래스에서 커스텀 클래스에서 정의되며, Tracker를 사용 할 때 해당 커스텀 Application 클래스를 통하여 사용하게 됩니다.
> Action 1-3 : 예제의 GuGuAnalyticsV4Example.java와 같이 각자의 커스텀 Application 클래스를 세팅하려합니다.
일단은 이 글에서 서술하는 내용을 따라하는 정도를 위해 클래스명은 프로젝트에 맞게 설정해주시고, PROPERTY_ID를 Google Analytics Console 세팅하기 챕터의 “Action 0-4”에서 확인한 키를 넣어주시고 나머지 부분은 예제의 소스코드와 다르지 않게 세팅해주세요. 그리고 AndroidManifest.xml에서 <application 안에 android:name을 생성하신 클래스명에 맞게 수정해주시면 됩니다.
<AndroidManifest.xml에서 android:name을 설정한 모습>
위의 처리를 해주지 않으면 차후에 getTracker()를 사용하실 때 ClassCastException에러가 유발 됩니다.
<Custom Application 소스의 모습>
위의 소스에서 R.xml 리소스의 global_tracker와 ecommerce_tracker가 요구되는 것이 보이시나요? 이제부터는 위에서 요구하는 두 리소스 파일을 만들어 주어야 합니다.
> Action 1-4 : xml이라는 리소스 폴더를 res폴더의 아래에 생성해주세요. xml 폴더 안에는 ecommerce_tracker.xml과 global_tracker.xml 두 개를 생성 시켜주시면 됩니다.
두 개의 코드는 다음과 같습니다.
<global_tracker.xml>
<ecommerce_tracker.xml>
> Action 1-5 : global_tracker.xml 에서 screenName 태그에서 프로젝트에서 Analytics를 수행 하고자 하는 Activity 혹은 Fragment를 설정해주시면 됩니다. 이 예제에서는 Activity를 설정하고 있습니다.
Google Analytics를 기본적으로 설정하는 이 챕터는 거의 마무리 되어가고 있습니다.
이번엔 위에서 ScreenName을 통하여 지정한 Activity에서 Google Analytics로 Tracker를 보내도록 하겠습니다.
> Action 1-6 : 예제에 있는 MainActivity1 클래스와 같이 Tracking 하고자하는 액티비티 소스를 열고 onStart(), onStop()을 오버라이딩 해주세요.
그리고 onCreate(), onStart(), onStop()에 아래의 스크린샷과 같이 소스를 추가해주세요.
위 소스를 추가하기전에
import com.google.android.gms.analytics.GoogleAnalytics;
import com.google.android.gms.analytics.HitBuilders;
import com.google.android.gms.analytics.Tracker;
위와 같이 import를 처리 해주셔야 합니다. <
위 소스에 대해서 간단히 설명하자면
GoogleAnalytics.getInstance(this).reportActivityStart(this); 는 Activity의 사용자가 어떤 액션을 진행하는지 추적을 시작하는 코드이고
GoogleAnalytics.getInstance(this).reportActivityStop(this); 는 Activity의 추적을 끝내는 코드입니다.
그리고 Tracker t 인스턴스를 초기화 시켜주고나서 행하는 setScreenName()안에 들어갈 인자를 String값으로 지정하고, send()를 이용하여 전송하면 Anaytics Console에서 유저가 액티비티를 살펴보는 것을 추적 가능합니다.
위와 같은 방법을 반복수행하여 모든 Activity에 적용해주면 됩니다.이렇게 하면 얼마나 많은 유저가 어떤 화면을 보고 있는지, 어떤 경로로 앱을 사용하는지 아래의 화면처럼 결과를 나타낼 준비가 된 것 입니다.
2. Event Tracking 설정하기
Event Tracking은 개발자가 어떤 특정한 상황을 Log로 남겨 유저가 어떤 액션을 일으켰는지, 그 액션이 해당 서비스에서 총 몇 번 수행 되었는지를 알게해주는 매우 바람직한 기능입니다.
이것을 이용하여 애플리케이션에서 유저들이 가장 많이 손이 가는 기능이 어디인지, 어디가 인기가 없는지를 감지해내는 것이 가능합니다. 이런 매력적인 기능을 0.Android Project에 Analytics 세팅하기 를 마친 상태라면 어렵지 않게 세팅 가능합니다.
아래의 스크린샷을 보고 따라해 보세요.
> Action 2-1 :
Tracker 인스턴스를 초기화하고,
t.send() 메소드 이후로 Category, Action, Label을 설정하고 build() 메소드를 이용하여 Analytics에 전달합니다.
저는 Category에 이벤트가 일어난 액티비티를 넣었고, Action에는 어떤 종류의 이벤트가 일어났는지, Label에는 어떤 버튼이 눌렸는지를 String을 이용하여 표현 하였습니다.
이 부분은 각자의 서비스에 따라서 어떻게 인자를 넣을지가 많이 다를 수 있습니다.
이게 끝입니다. 간단하지요? 결과는 아래와 같이 Google Analytics 콘솔에서 보여집니다.
3. Campaign Measurement 설정하기
Campaign Measurement란 외부에서 애플리케이션을 설치하게되는 경로를 알아내주게 하는 기능입니다. 이 Campaign Measurement를 잘 사용하면 좋은 예시로는 다음과 같습니다.
0. 우리의 애플리케이션을 유저들이 받을 때 어떤 경로로 받는지를 알고 싶을 때 :
가장 기본적인 아이디어입니다. 유저들이 검색엔진의 검색을 통해서 접근하는지, 카페나 블로그의 홍보들을 통하여 애플리케이션을 설치하는지, 가장 일반적으로 Play Store를 통해서 앱을 검색하여 설치하게되는지를 알 수 있습니다.
1. 외부에서 애플리케이션을 홍보 할 때 :
애플리케이션의 특징을 다양하게 하여 홍보를 했을 경우를 예로 들어보겠습니다. A라는 애플리케이션의 특징을 아름다운 앱, 사용성이 좋은 앱, 독특하고 인기가 좋은 앱 등 다양한 특징을 어필하며 애플리케이션을 홍보하게 될 경우가 있는데. 우리는 여기에 Campaign Measurement를 이용하여 유저들이 우리 앱을 받을 때 어떤 단어나 문구에 매력을 느끼고 접근하는지를 가늠하는 것이 가능합니다. 위의 상황말고도 Campaign Measurement를 어떻게 사용하느냐에 따라서 제품을 발전시켜나갈 때 정말 큰 인사이트를 줄 수있는 사용방법이 많으리라 생각합니다.
> Action 3-1 : AndroidManifest.xml에 가셔서 아래와같이 <service>와 <receiver>를 등록해주세요. <intent-filter> 역시 빠뜨리시면 안됩니다!
위의 세팅까지 끝내면 Campaign Measurement를 사용하는데에 애플리케이션에서 해줘야하는 일은 끝난 상태입니다.
이제는 Referrer 인자를 지정하여 Google Play Store를 통해 애플리케이션에 접근하게 만드는 URL을 만드는 일만 남았습니다.
> Action 3-2 :
위의 링크를 타고 들어가셔서 Google Play URL Builder를 만들어주셔야 합니다. 각 요소에 맞게 빈칸을 채워주시고 Generate URL을 만들어주면 해당 Referrer 인자가 담긴 Google Play Store를 통해 앱으로 접근가능 하게하는 특수한 URL이 주어지게 됩니다. 해당 URL을 주소창에 넣고 페이지를 이동해보시면 아마 생각하시는 애플리케이션의 Play Store로 접근이 가능하게 됩니다. 그 Play Store에서 유저들이 애플리케이션을 받으면 Google Analytics가 어떤 주소로 유저가 앱을 받게되었는지를 인식하고 그 통계를 Analytics Console에 전달합니다.
제가 운영 중인 앱의 Console에서는 다음과 같이 데이터가 들어옵니다.
이곳에서 두 번째 측정기준의 선택요소에 따라서 얼마나 많은 사람들이 어떤 Referrer가 담긴 URL을 통해 앱을 받게 되었는지를 알 수 있습니다.
아직 많이 부족한 대학생이 프로젝트 개발경험을 하면서 얻은 작은 지식을 공유하였습니다. 이 글을 쓰니 좀 더 Google Analytics를 제대로 사용해보고 더 많은 것을 배워야 겠다는 생각이 드네요. 유저들에 대한 아무런 조사 없이 앱을 개발하고 마켓에 내놓는 것보다, 유저들이 나의 앱의 어떤 부분을 유용하게 쓰는지, 어떤 기능을 기대하는지 미리 아는 것은 더 많은 기회를 가져옵니다.
Google Analytics를 통해서 바람직한 고객중심 개발을 진행하는 개발자가 많아졌으면 좋겠습니다. 감사합니다.
'Android > General' 카테고리의 다른 글
android anim 애니메이션 효과 (0) | 2016.01.16 |
---|---|
이니 페이 코드 표 (0) | 2015.03.04 |
Android TAB Host (0) | 2015.03.02 |
Preferences 완벽 설명 (0) | 2015.02.07 |
꺼진화면에서 알림창 띄우기 (0) | 2015.02.04 |