따지고 보면 이게 무슨 뻘짓이냐 할 수도 있다.
본디 웹로그 분석에 주로 활용되는 Google Analytics(구글 애널리틱스)를 스마트폰 사용 패턴 분석 툴로 쓰는 요상한 활용법 말이다.
이미 안드로이드 앱으로도 평상시 폰을 어떻게 쓰는지에 대한 통계를 내주는 놈이 있을 것인데 말이지.

먼저 사족이 좀 필요하다.

서두에서도 말했듯이 Google Analytics는 본디 웹로그 분석 전문툴이다.
하지만 요녀석이 금년부터 Universal Analytics란 명칭으로 정식 버전업이 되면서 기존 웹, 모바일 뿐만아니라 오프라인에서 일어나는 이벤트도 추적할 수 있는 길이 생겼다.

즉 Universal Analytics란 말처럼 “만물분석”이 가능하단 말인데 이걸 가능하게 하는 핵심 프로토콜이 바로 Measurement Protocol(이하 MP)란 놈.
이걸 쓰면 기존처럼 추적코드를 html 코드상에 삽입하지 않고 단순 URL을 쏘는 방식으로도 Google Analytics에 로그를 전송할 수 있다.

간단하게 예를 들면
다음의 주소(실제로 클릭하면 아무것도 안나옴) http://www.google-analytics.com/collect?v=1&tid=UA-XXXXXX&cid=123456&t=event&ec=powerblog&ea=view&el=xxx
를 클릭하면 tid에 해당하는 Google Analytics 프로퍼티 ID로 로그가 보내지는 것이다.

즉 get이던 post던 어떻게든 http 통신만 일어나게 하면 로그가 수집된다는 것.
요즘 사물인터넷 어쩌고 하는데 실제 센서가 인터넷과 연결될 수 있다면 오프라인에서 일어나는 이벤트(문을 열거나 닫거나 손님이 특정 위치에 접근하거나 등등)도 수집이 가능해진다.
실제 활용방법은 무궁무진할 정도.

그래서 일단 테스트도 해볼겸 최근 킷캣으로 업그레이드한 내 옵티머스G 프로를 실험 대상으로 선택했다.

이유는 별거 없다.
항상 인터넷에 연결되어 있고 tasker란 놈으로 간단하게 http get 통신이 가능하니 말이다.

시나리오는 이렇다.
폰에서 특정 이벤트가 발생하면 이를 tasker로 캐치 후 http get 기능을 이용해 위의 주소처럼 통신을 보내면 간단하게 완성! 

일단 쉬운거부터 가기로 했다.
폰 화면이 꺼지거나 켜지는 이벤트를 구글 애널리틱스에서 수집해보기!

첨에는 화면 꺼짐, 켜짐만 테스트 하다가 나중에는 앱 설치, 실행, 업데이트, 전화걸림, sms 문자 수신까지 추적하게 됐음.
첨에는 화면 꺼짐, 켜짐만 테스트 하다가 나중에는 앱 설치, 실행, 업데이트, 전화걸림, sms 문자 수신까지 추적하게 됐음.

예를 들어 폰화면이 켜졌을 때 Google Analytics에 이벤트를 보내는 설정은 아래와 같다.

위에서 언급한 MP 프로토콜에 맞춘 주소를 tasker 의 http 전송 형식에 맞게 풀어쓴것 뿐이다. 단 ec, ea, el 등의 구글 애널리틱스 이벤트 쪽을 활용.
위에서 언급한 MP 프로토콜에 맞춘 주소를 tasker 의 http 전송 형식에 맞게 풀어쓴것 뿐이다. 단 ec, ea, el 등의 구글 애널리틱스 이벤트 쪽을 활용.

이게 웹페이지처럼 페이지가 있는게 아니기 땜시 페이지 제목 등의 정보를 보낸게 아닌 걍 구글 애널리틱스의 이벤트 쪽을 활용했다. 이벤트 카테고리(ec), 이벤트 액션(ea), 이벤트 라벨(el)등은 내가 해당 이벤트에 맞게 적당히 설정한 값이다.

헌데 이런건 너무 단순했다.
그래서 최소한 내가 어떤 앱을 주로 쓰는지 정도는 넣고 싶어서 아래의 스샷처럼 다른 수단을 좀 동원했다.

안드로이드 쉘 환경 명령어인 dumpsys로 현재 띄워진 앱의 정보를 획득 한 후 이를 변수에 넣어 MP로 전송
안드로이드 쉘 환경 명령어인 dumpsys로 현재 띄워진 앱의 정보를 획득 한 후 이를 변수에 넣어 MP로 전송

대충 위와 같은 방식으로 설정 후 보름 정도 추적해 봤다.
아래는 그 결과다.

이벤트 카테고리를 화면, 앱, 문자, 전화로 나눈 것. 역시 화면 끄고 켜짐과 앱 실행 횟수가 압도적이다. 그에 비해 전화와 문자는... ㅠㅠ
이벤트 카테고리를 화면, 앱, 문자, 전화로 나눈 것. 역시 화면 끄고 켜짐과 앱 실행 횟수가 압도적이다. 그에 비해 전화와 문자는… ㅠㅠ
이벤트 카테고리 보다 한단계 더 들어간 액션 on,off는 화면 관련, excute, install, update는 앱관련 설정이다.
이벤트 카테고리 보다 한단계 더 들어간 액션 on,off는 화면 관련, excute, install, update는 앱관련 설정이다.
마지막으로 이벤트 라벨 - 실제 어떤 앱이 실행됐는지 알 수 있다. 크롬과 연락처, ES파일탐색기 정도가 수위를 차지한다.
마지막으로 이벤트 라벨 – 실제 어떤 앱이 실행됐는지 알 수 있다. 크롬과 연락처, ES파일탐색기 정도가 수위를 차지한다.

마지막 스샷을 보면 실제 내가 폰에서 어떤 앱을 주로 사용하는지 즉 어떤 목적으로 폰을 쓰는지 안드로이드 개발자 분들이라면 대충 알 수 있을 것이다.
스샷 왼쪽에 체크박스가 세개 정도 체크된게 보이는데 이걸 체크 후 위의 Plot Rows를 실행하면 해당 항목만 그래프로 표시된다. 물론 여기선 다른게 압도적이라 크게 시각적으로 눈에 띄진 않지만 세그먼트를 쪼거나 검색을 통해 표시되는 디멘션 가짓수를 줄이면 훨씬 확연히 들어날 것이다.

다시한번 서두의 질문으로 돌아가 보자.
난 이 뻘짓을 왜 한것일까?

먼저 순수한 호기심이 발로였다.
또한 MP를 활용해 오프라인 데이터 추적 가능성을 간접적으로나마 테스트 해보고 싶었다.
인터넷 연결이 가능한 아두이노나 라즈베리파이 등의 자그마한 기기들로 사물인터넷 구현시 어떤 점을 보다 고려해야하는가도 알고 싶었고 말이다.

결론적으로 생각보다 상당히 간단한 방법으로 온, 오프라인의 데이터를 통합적으로 Google Analytics에 저장 가능하단 사실을 체감했다.
그간 온라인에 비해 추적이 어려웠던 오프라인 이벤트 추적의 가능성도 깨달았고 이 둘을 통합해 분석할 경우 어떤 인사이트를 뽑아낼 수 있을지 사뭇 기대되고 있다.

웹, 모바일웹, 앱, 스마트워치, 구글글래스, 기타 여러 인터넷으로 연결된 사물 들까지 통합하여 분석 가능한 세상.
세상은 우리가 아는 것보다 훨씬 빠르고 무섭게 변하고 있는 중이다.

이 글의 관련글

Tags:

5 Comments

  1. 와….
    진심으로 대단하십니다. 좋은 인사이트가 나올 수 있을 것 같은 포스팅이네요.
    좋은 정보 감사합니다.

  2. 웹과 앱중에서 웹으로해서 추적코드를 생성하신건가요?
    그럽 도메인 주소는 임의로 넣으셨나요?
    저는 웹모드로 임의의 도메인 주소를 널고
    데스크탑에서 실행하는 프로그램에 적용했더니
    다른 사이트가 로그에 남았더라구요 ㅠㅠ

    1. 네 웹모드로 임의의 도메인 주소를 넣었습니다.
      제 경우는 제 도메인에 딸린 임의 호스트로 연결했는데요.
      이런식으로 실제 존재하기 힘든 주소를 넣어도 동작에는 로그수집에는 무리가 없었습니다.

Leave a Reply

Your email address will not be published. Required fields are marked *