GA4 전자상거래 이벤트의 측정기준과 측정항목 알아보기
GA4의 구매 프로세스와 관련된 이벤트, 상품 정보를 분석하는 방법에 대해 알아봅니다.
일반적으로 온라인 환경에서 상품의 구매는 상품 조회부터 구매까지 웹사이트에 접속한 상태에서 이루어집니다. 하지만, 정기 후원, 넷플릭스 같은 스트리밍 서비스 구독, 가전 렌탈 등 웹사이트에 별도 접속하지 않아도 자동으로 구매가 이루어지는 서비스 어떨까요? 사용자가 웹사이트에 접속하지 않은 상태에서 결제가 진행되니 GA4에 데이터를 기록하기가 어렵습니다.
이 문제를 해결해 주는 열쇠가 바로 측정 프로토콜(Measurement Protocol)입니다. 이번 콘텐츠에서는 가상의 음원 스트리밍 서비스를 ‘OSOMA Music’를 예시로 서버에서 직접 결제 데이터를 전송하여 정기 구독 매출을 추적하는 방법을 알아보겠습니다.
정기 결제 구매 추적이 일반적인 GA4 데이터 수집 방식으로 확인하기 어려운 이유를 설명하려면, GA4를 통한 이벤트 수집이 어떤 방식으로 이루어지는지를 먼저 이해해야 하는데요, 아래 그림을 통해 알아보겠습니다.

사용자가 음반을 판매하는 웹사이트에서 상품을 구매한 상황을 생각해 보겠습니다. 이 사용자는 검색을 통해 우리 웹사이트에 들어와서 상품을 조회하고 결제까지 완료했습니다. 이때 구매를 완료하면 구매 완료(Thank you) 페이지가 나타나게 됩니다. 이렇게 특정 행동을 하거나, 측정 페이지에 도달하게 되었을 때 데이터 수집을 위해 설치된 스크립트가 실행되면서 이벤트 데이터를 GA4 서버로 전송할 수가 있습니다.

일반적인 전자상거래 상품 구매는 위와 같이 상품 조회부터 구매까지 웹사이트 혹은 앱 서비스 내에서 이루어집니다. 그러므로 일반적인 스크립트 실행 방식으로 데이터 기록할 수가 있습니다. 그런데, 음원사이트나 영상 스트리밍 정기 구독 등의 서비스는 처음 결제할 때, 결제 수단을 등록하면 이후 결제부터는 사용자가 서비스에 접속하지 않은 상태에서 비용이 결제됩니다. 이런 상황에서는 사용자가 웹 페이지나 앱에 접속하지 않아 스크립트를 실행할 수가 없습니다.
스크립트가 실행되지 않는데, 어떻게 이벤트를 GA4에 기록할 수 있을까요? 이때 서버에서 결제되는 데이터를 바로 GA4에 직접 기록하는 방식이 바로 측정 프로토콜(Measurement Protocol)입니다.
측정 프로토콜은 HTTP 요청을 통해 웹사이트나 앱을 거치지 않고, 서버에서 직접 GA4 서버로 데이터를 전송하는 표준 규약입니다. 예를 들어, 제가 오픈소스마케팅에 이메일을 보낸다고 했을 때, 적절한 이메일 서비스를 통해서 정확한 이메일 주소에 메일을 발송해야 하듯이 말이죠. 이처럼 GA4 서버에서 받을 수 있는 형태로 데이터를 전송하면 우리 서버에서 GA4 서버로 데이터를 직접 전송할 수 있습니다.
우리 서버에서 특정 행동(예: 월 정기 결제)이 발생했을 때, 아래와 같은 규칙을 통해 GA4 서버로 데이터를 전송하면 스크립트 로드 방식이 아니어도, GA4에 이벤트 데이터를 수집할 수 있습니다. 이때 데이터를 전송하는 규칙은 아래와 같이 GA에서 지정한 양식에 따라야 데이터가 정상적으로 GA4 서버에 수집됩니다.
[요청 URL]
POST https://www.google-analytics.com/mp/collect?api_secret={API_SECRET}&measurement_id={MEASUREMENT_ID}[요청 본문(Payload)]
{
"client_id": "123456789.12345678",
"events": [{
"name": "purchase",
"params": {
"transaction_id": "ORDER_12345",
"value": 9900,
"currency": "KRW",
"payment_type": "subscription_renewal",
"items": [
{
"item_id": "sub_premium",
"item_name": "프리미엄 정기 구독",
"price": 9900,
"quantity": 1
}
]
}
}]
}api_secret: GA4 관리자 > 데이터 스트림에서 생성하는 비밀 키measurement_id: GA4 측정 ID (예: G-XXXXXXXX)client_id: 웹사이트 방문 시 저장된 사용자 식별값payment_type: 정기 결제 여부를 구분하기 위한 맞춤 매개변수측정 프로토콜을 사용하면 웹과 앱에 접속하지 않은 상태에서도 서버에서 발생하는 여러 액션을 이벤트로 수집할 수 있습니다
이렇게 좋은 측정 프로토콜, 모든 이벤트에 적용하면 안 되나? 하는 생각이 들 수 있습니다. 하지만, 측정 프로토콜에도 한계점이 존재하기 때문에 꼭 필요한 이벤트만 사용하는 것이 좋습니다.
스트리밍 정기구독 서비스에서 구매 첫 달에는 프로모션을 적용하여 결제 금액에 할인이 들어가거나 무료 체험할 수 있도록 하는 경우가 많이 있습니다. 이럴 땐 어떻게 데이터를 수집하는 게 좋을까요?
측정 프로토콜을 도입하면 보이지 않던 매출을 GA4로 가져올 수 있습니다. 하지만 개발 부서의 도움이 필요하고, client_id 매핑 등 기술적으로 챙겨야 할 디테일이 많습니다. 우리 서비스의 결제 구조가 복잡하거나, 온오프라인 데이터를 통합한 고객 여정을 설계하고 싶으시다면 오픈소스마케팅에 문의해 주세요.
1:1 상담으로 시작할 수 있습니다.