GA 스크립트나 GTM 스니펫 없이 데이터를 전송할 수 있다?Measurement Protocol

2021. 12. 24. 01:34구글 애널리틱스(GA)

반응형

구글의 Measurement Protocol Image

보통 Google Analytics(GA)로 데이터 수집을 한다면

사이트에 GA 스크립트(analytics.js) GTM 스니펫 코드를 활용하여 사용자의 행동데이터를 수집하는 것이 일반적이다.

 

하지만 사용자들의 환경은 시시각각 다양해지고 있다

실제로 고객의 요구에 따라 웹사이트를 폐쇠망에서 운영하거나 키오스크 같은 웹이 아닌 환경을 만들 수도 있다.

 

이런 경우에는 GA를 포기해야하는 것인가? 그렇지 않다.

 

GA 스크립트, GTM 스니펫 코드 없이도 각 채널에서 사용자의 행동 데이터를 수집할 수 있다.

바로 그 주인공이 Measurement Protocol이다.

 

 

 

 

1. Measurement Protocol이란?


구글은 공식적으로 이 Measurement Protocol을 지원하고 있다.

 

https://developers.google.com/analytics/devguides/collection/protocol/v1

 

Measurement Protocol Overview  |  Analytics Measurement Protocol  |  Google Developers

Send raw user interaction data to Google Analytics using HTTP requests.

developers.google.com

 

 

Measurement Protocol은 사실 계속해서 우리도 모르게 이루어 지고 있었다.

GA로 데이터 수집을 하는 한 사이트에서 브라우저 개발자 도구로 Network 탭을 살펴보면 아래와 같다.

 

한 사이트에서 보여지는 GA 전송 프로토콜의 일부

우리가 정의한 트리거로 발생한 이벤트들이

최종적으로 www.google-analytics.com으로 뒤에 파라미들이 붙어서 GET방식으로 통신이 이뤄진다는 것을 알 수 있다.

 

감이 오는가?

그렇다. 우리는 코드로 http통신 모듈을 사용할 수 있고, 뒤에 파라미터를 어떤 키와 값으로 보내는지 알면

굳이 GA스크립트나 GTM을 활용해 GA를 설치할 필요가 없는 것이다!

 

왜 편한 방법을 두고 코딩을하는 어려운 방식으로 가냐고 반문할 수 있다.

하지만 Measurement Protocol을 활용한다면 여러 곳에서 GA를 설치하여 사용할 수 있게 된다.

 

 

 

 

2. Measurement Protocol은 어떻게 활용되는가?


1) 폐쇠망에서의 활용

 

www.google-analytics.com으로 가는 방화벽이 막혀있는 곳에서도 GA를 활용할 수 있게 된다.

웹서버에서 프록시 기능을 활용하는 것이다.

 

우리가 운영하는 사이트 주소가 aaa.com이라면 폐쇠망 환경에서 aaa.com으로 가는 방화벽은 열려있을 것이다.

GA로 보내는 이벤트 정보를 aaa.com/collect?v= 으로 뒤 파라미터만 세팅하여 aaa.com도메인으로 보낸다.

그럼 해당 요청을 받은 웹서버에서 collect?로 들어오는 요청을 앞에 도메인만 www.google-analytics.com으로 바꿔서

구글 쪽으로 보내는 것이다.

 

해당 방식으로 폐쇠망 뿐만아니라 브라우저 정책 등으로 행동데이터 수집을 차단해 놓은 곳에서도

해당 방식을 활용하여 GA로 데이터 수집이 가능한 것이다.

 

 

2) 웹이 아닌 환경

 

만약 수집해야 할 데이터가 클라이언트 단로는 내려오지 않고

외부시스템과 처리 후 DB에만 저장되어 백엔드에만 있는 정보라면 수집을 포기해야 할까?

역시 Measurement Protocol을 활용할 수 있다.

 

백엔드를 구성하고 있는 프레임워크에서 http통신 모듈을 활용하여 www.google-analytics.com으로 해당 데이터를 

파라미터로 붙여서 보내면 되는 것이다.

 

 

3) 성능을 위해

 

클라이언트 환경이 IPTV나 VDI 위에서만 돌아가는 열악한 환경이라면 역시 Measurement Protocol을 활용할 수 있다.

 

GA스크립트나 GTM은 통신을 위해 한단계를 더 거처 직접 통신을 하는 것보다 성능이 떨어질 수 밖에 없다.

간단하고 성능 좋은 코드를 작성하여 GA로 보내는 Measurement Protocol을 코드화 하는 것이 열악한 클라이언트에서는

효율적인 행동데이터 수집 방법이 될 수 있다.

 

 

 

 

3. 그래서 어떻게 쓰는건데?


이제 www.google-analytics.com/collect?  뒤에 붙을 파라미터들만 알면 Measurement Protocol을 활용할 수 있을 것이다.

이 파라미터들은 key와 value 쌍으로 표현되고 있다.

당연히 GET방식으로 이어져있어 &로 이어진다.

 

GA스크립트나 GTM을 통해 보냈던 데이터들이 Measurement Protocol의 key-value쌍으로 변하면 어떻게 되는지

아래 링크를 보면 잘 나와있다.

 

https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters?hl=en 

 

Measurement Protocol Parameter Reference  |  Analytics Measurement Protocol  |  Google Developers

Measurement Protocol Parameter Reference This document lists all of the parameters for the Measurement Protocol. General Required for all hit types. The Protocol version. The current value is '1'. This will only change when there are changes made that are

developers.google.com

 

몇가지만 예를 들어보겠다.

아래가 파라미터들에 대한 예시이다.

v는 버전을 의미하며 거의 1로 정해진다.

tid는 GA계정을 만들고 속성을 만들면 나오는 트레킹 아이디이다.

cid는 쿠키를 통해 수집하는 ga의 사용자 구분값이다.

t는 GA의 수집형태로 예시에 나와있는 것처럼 pageview가 될 수도 있고 event나 social등이 될 수 있다.

 

이렇듯 Measurement Protocol은 필요한 GA의 데이터를 파라미터화해서 URL에 붙여 보내면 된다.

나머지 파라미터들은 위 링크를 참고하기 바란다.

 

 

 

4. 마무리


지금까지 Measurement Protocol에 대해 알아보았다. 

Measurement Protocol은 활용할 수 있는 방법은 무궁무진하다.

자신들이 관리하는 서비스를 보면서 이것을 활용해 데이터를 수집할 수 있는 눈이 떠질 것이다.

 

이는 GA만 해당하는 것이 아니다.

adobe를 비롯해 지금 나오고 있는 행동데이터 수집 솔루션들이 각자 다른 이름으로 Measurement Protocol을 제공한다.

server-to-server 등이 결국은 GA의 Measurement Protocol과 비슷한 방식이다.

 

따라서 Measurement Protocol을 제대로 익혀두면 데이터 수집에 큰 도움이 될 것이다.

 

 

반응형