오픈소스마케팅

GA4 측정 프로토콜(Measurement Protocol)로 정기 구독 결제 추적하는 방법

GA4 측정 프로토콜(Measurement Protocol)로 정기 구독 결제 추적하는 방법

목차

웹사이트 접속 없이 일어나는 정기 결제는 구매 전환을 어떻게 측정할까?

일반적으로 온라인 환경에서 상품의 구매는 상품 조회부터 구매까지 웹사이트에 접속한 상태에서 이루어집니다. 하지만, 정기 후원, 넷플릭스 같은 스트리밍 서비스 구독, 가전 렌탈 등 웹사이트에 별도 접속하지 않아도 자동으로 구매가 이루어지는 서비스 어떨까요? 사용자가 웹사이트에 접속하지 않은 상태에서 결제가 진행되니 GA4에 데이터를 기록하기가 어렵습니다.

이 문제를 해결해 주는 열쇠가 바로 측정 프로토콜(Measurement Protocol)입니다. 이번 콘텐츠에서는 가상의 음원 스트리밍 서비스를 ‘OSOMA Music’를 예시로 서버에서 직접 결제 데이터를 전송하여 정기 구독 매출을 추적하는 방법을 알아보겠습니다.

GA4는 어떻게 구매 이벤트를 기록할까?

일반적인 전자상거래의 구매 여정과 GA4 이벤트 추적 방식

정기 결제 구매 추적이 일반적인 GA4 데이터 수집 방식으로 확인하기 어려운 이유를 설명하려면, GA4를 통한 이벤트 수집이 어떤 방식으로 이루어지는지를 먼저 이해해야 하는데요, 아래 그림을 통해 알아보겠습니다.

일반적인 전자상거래 서비스의 결제 추적 프로세스

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

정기 구독 서비스의 딜레마: “사용자가 사이트에 없어요!”

정기구독 서비스의 결제 프로세스

일반적인 전자상거래 상품 구매는 위와 같이 상품 조회부터 구매까지 웹사이트 혹은 앱 서비스 내에서 이루어집니다. 그러므로 일반적인 스크립트 실행 방식으로 데이터 기록할 수가 있습니다. 그런데, 음원사이트나 영상 스트리밍 정기 구독 등의 서비스는 처음 결제할 때, 결제 수단을 등록하면 이후 결제부터는 사용자가 서비스에 접속하지 않은 상태에서 비용이 결제됩니다. 이런 상황에서는 사용자가 웹 페이지나 앱에 접속하지 않아 스크립트를 실행할 수가 없습니다.

스크립트가 실행되지 않는데, 어떻게 이벤트를 GA4에 기록할 수 있을까요? 이때 서버에서 결제되는 데이터를 바로 GA4에 직접 기록하는 방식이 바로 측정 프로토콜(Measurement Protocol)입니다.

측정 프로토콜(Measurement protocol)은 무엇인가요?

측정 프로토콜은 HTTP 요청을 통해 웹사이트나 앱을 거치지 않고, 서버에서 직접 GA4 서버로 데이터를 전송하는 표준 규약입니다. 예를 들어, 제가 오픈소스마케팅에 이메일을 보낸다고 했을 때, 적절한 이메일 서비스를 통해서 정확한 이메일 주소에 메일을 발송해야 하듯이 말이죠. 이처럼 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: 정기 결제 여부를 구분하기 위한 맞춤 매개변수

측정 프로토콜을 쓰면 어떤 데이터를 수집할 수 있나요?

측정 프로토콜을 사용하면 웹과 앱에 접속하지 않은 상태에서도 서버에서 발생하는 여러 액션을 이벤트로 수집할 수 있습니다

[측정 프로토콜(Measurement Protocol)로 수집할 수 있는 데이터 유형]

  • 정기 구독(Subscription) 갱신: 사용자가 접속하지 않은 상태에서 발생하는 월/년 단위 자동 결제
  • 오프라인 키오스크/POS: 오프라인 매장에서 수집된 데이터(온라인 연결 필요)
  • 상담을 통한 최종 전환: 사용자가 문의를 남긴 후 실제 전환은 전화 상담 등을 통해 발생하는 경우
  • 환불(Refund) 처리: 사용자가 서비스에 접속하지 않아도 서버에서 환불 처리하면 반영
  • IoT 기기: 스마트 가전과 같은 스크립트 설치가 불가능한 기기의 사용 기록

측정 프로토콜, 한계점은 없나요?

이렇게 좋은 측정 프로토콜, 모든 이벤트에 적용하면 안 되나? 하는 생각이 들 수 있습니다. 하지만, 측정 프로토콜에도 한계점이 존재하기 때문에 꼭 필요한 이벤트만 사용하는 것이 좋습니다.

[측정 프로토콜의 한계점]

  • 부분적인 보고서 지원
    • 측정 프로토콜만으로 이벤트를 전송하면 GA4 보고서에서 일부 보고만 가능합니다.
    • 일부 이벤트 및 매개변수 이름은 자동 수집용으로 예약되어 있어 측정 프로토콜로 전송할 수 없습니다.
  • 유입 분석의 어려움
    • 측정 프로토콜을 통해 수집된 데이터에는 세션 정보가 없습니다.
    • 세션 소스, 세션 매체 등의 정보가 없어 어느 채널로 유입되었는지 확인할 수 없습니다.
    • 다른 이벤트에서 발생한 client_id 및 session_id 매칭을 통해 기존 방문 기록에 연결하여 수집하도록 할 수 있으나, 일부 유실되는 건들이 발생할 수 있습니다.
  • 기술적 진입 장벽
    • GTM(Google Tag Manager)을 사용하여 직접 이벤트 데이터 수집 환경을 직접 세팅하는 마케터, 기획자 분들을 만나볼 수 있는데요. 측정 프로토콜 사용은 개발 부서의 지원이 필요합니다.
    • 서버에서 데이터를 전송하도록 개발 부서의 지원이 필요하여, 협업 요청 그리고 작업 가이드라인에 대한 소통이 어려울 수 있습니다.
  • 시간 제한
    • 측정 프로토콜을 통해 수집된 데이터는 72시간 이내에 전송해야 정확한 시점으로 기록됩니다.
    • 72시간이 지난 데이터는 타임스탬프가 자동으로 조정되어 기록되므로, 정확한 시점 분석이 어려울 수 있습니다.
    • 서버 오류가 발생하여 장기간 데이터 전송이 누락된 경우, 실제 발생 시점과 다르게 기록될 수 있어 주의가 필요합니다.

정기구독 상황별 GA4 이벤트 추적 설정하기

스트리밍 정기구독 서비스에서 구매 첫 달에는 프로모션을 적용하여 결제 금액에 할인이 들어가거나 무료 체험할 수 있도록 하는 경우가 많이 있습니다. 이럴 땐 어떻게 데이터를 수집하는 게 좋을까요?

첫 구매 추적

  • 방식: 기존 스크립트 방식 사용
  • 이유: 사용자가 웹사이트에 직접 들어와서 결제하므로, 세션 정보와 쿠키를 정확히 잡기 위해 기존 방식을 사용합니다.

2회차 이후 자동 갱신 결제 추적

  • 방식: 측정 프로토콜(서버) 방식 사용
  • 이유: 사용자는 사이트에 없습니다. 저장해둔 Client ID와 결제 정보를 조합해 서버가 직접 GA4로 전송합니다.

일정 기간 무료체험 후 유료 전환

  • 첫 달(무료): value: 0으로 구매 이벤트 전송 (스크립트 방식)
  • 다음 달(유료 전환): 결제가 일어나는 순간 서버에서 value: 9900으로 구매 이벤트 전송 (측정 프로토콜 방식)

측정 프로토콜을 도입하면 보이지 않던 매출을 GA4로 가져올 수 있습니다. 하지만 개발 부서의 도움이 필요하고, client_id 매핑 등 기술적으로 챙겨야 할 디테일이 많습니다. 우리 서비스의 결제 구조가 복잡하거나, 온오프라인 데이터를 통합한 고객 여정을 설계하고 싶으시다면 오픈소스마케팅에 문의해 주세요.

작성자

김예나

GA4 측정 프로토콜(Measurement Protocol)로 정기 구독 결제 추적하는 방법
이전 글

웹사이트 도메인이 다른 경우, GA4에서 데이터 분석은 어떻게 할까?

GA4 컨설팅 살펴보기

문의 남기기

오픈소스마케팅의 컨설팅이 필요하시다면 문의를 남겨주세요.

[email protected]