ConverlayConverlay
GA4Shopify가이드

서버사이드 트래킹으로 Shopify 이벤트를 GA4에 전송하는 방법

Converlay2026년 2월 3일7분 소요

Shopify 스토어를 운영하며 의사 결정에 Google Analytics 4를 활용하고 있다면, 숫자가 맞지 않는다는 사실을 이미 눈치채셨을 것입니다. GA4의 매출이 Shopify 대시보드와 일치하는 경우는 거의 없습니다. 구매 이벤트가 누락됩니다. 어트리뷰션이 신뢰하기 어렵게 느껴집니다. 착각이 아닙니다. Shopify에서의 브라우저 기반 GA4 트래킹에는 근본적인 결함이 있으며, 그 격차는 해마다 커지고 있습니다.

서버사이드 트래킹은 브라우저를 완전히 우회하여 서버에서 GA4로 이벤트 데이터를 직접 전송함으로써 이러한 문제를 해결합니다. 이 가이드에서는 Shopify의 GA4 데이터가 왜 깨지는지, 서버사이드 트래킹이 어떻게 작동하는지, 그리고 마침내 분석 데이터를 신뢰할 수 있도록 정확히 어떻게 설정하는지 차례로 살펴보겠습니다.

Shopify의 GA4 데이터가 불완전해지기 쉬운 이유

GA4는 방문자의 브라우저 안에서 실행되는 JavaScript 스니펫에 의존합니다. 이 스니펫은 쇼핑객이 스토어를 둘러보는 동안 page_view, add_to_cart, purchase 같은 이벤트를 발생시킵니다. 이론적으로는 모든 인터랙션이 캡처됩니다. 하지만 실제로는 상당한 비율의 이벤트가 GA4에 도달하지 못합니다.

여기에는 여러 이유가 있습니다. 광고 차단기와 개인정보 보호 중심 브라우저는 Google Analytics 스크립트를 아예 차단합니다. Safari의 Intelligent Tracking Prevention은 쿠키 수명을 7일로 제한하여 사용자 여정을 단절된 세션들로 조각냅니다. 브라우저 확장 프로그램, 느린 연결, 페이지 로드 경합 조건 모두 이벤트 유실의 원인이 됩니다.

Shopify는 여기에 복잡성을 한 겹 더합니다. 결제 및 구매 후 페이지는 Shopify가 관리하는 별도의 도메인에서 실행됩니다. 결제 확장 기능(checkout extensibility)이 있는 Shopify Plus를 사용하지 않는 한, 이러한 페이지에 커스텀 트래킹 스크립트를 배치할 수 있는 능력은 제한적입니다. 그 결과, 퍼널에서 가장 가치 있는 이벤트인 구매가 동시에 추적되지 않을 가능성이 가장 높은 이벤트가 되는 것입니다.

Shopify에서 흔히 발생하는 GA4 데이터 문제

해결책으로 들어가기 전에, Shopify 스토어에서 GA4 데이터가 깨지는 구체적인 방식을 이해하는 것이 도움이 됩니다. 판매자들이 가장 자주 겪는 문제는 다음과 같습니다.

구매 이벤트 누락

가장 치명적인 문제입니다. 고객이 결제를 완료하고 대금을 지불했지만, GA4는 구매 이벤트를 기록하지 못하는 경우입니다. 이는 GA4 스크립트가 실행되기 전에 감사 페이지가 로드될 때, 고객이 결제 직후 탭을 닫을 때, 또는 광고 차단기가 주문 확인 페이지에서 스크립트 로드를 막을 때 발생합니다. 많은 판매자가 GA4가 실제 거래의 60~80퍼센트만 캡처한다고 보고합니다.

잘못된 어트리뷰션과 끊어진 세션

쇼핑객이 광고를 클릭하고 스토어를 둘러본 뒤 며칠 후 다시 돌아와 구매하면, GA4는 그 세션들을 연결해야 합니다. 하지만 Safari와 Firefox의 쿠키 제한으로 인해 방문 사이에 클라이언트 ID가 초기화되는 경우가 많습니다. 구매는 원래의 광고 클릭이 아니라 다이렉트 트래픽으로 어트리뷰션됩니다. 유료 캠페인이 실제보다 나빠 보이게 되어 잘못된 예산 결정으로 이어집니다.

중복되거나 부풀려진 세션

스토어프런트 도메인에서 Shopify의 결제 도메인으로 넘어가는 과정에서 GA4에 새 세션이 생성될 수 있습니다. 하나의 고객 여정이 두 개의 세션으로 집계되어 세션 수는 부풀려지고 전환율은 낮아집니다. 크로스 도메인 트래킹이 도움이 될 수 있지만, 이는 취약하며 고객이 비밀번호 관리자를 사용하거나, 링크를 새 탭에서 열거나, 예상치 못한 방식으로 이동하면 쉽게 깨집니다.

이커머스 파라미터 누락

이벤트가 실행되더라도 중요한 세부 정보가 빠져 있는 경우가 많습니다. 상품 카테고리, 옵션(variant) 정보, 쿠폰 코드, 배송비가 데이터 레이어 설정 오류나 테마 비호환성으로 인해 자주 누락됩니다. 결국 매출은 있지만 상품별 내역이 없는 구매 이벤트만 남게 됩니다.

GA4 Measurement Protocol이 서버사이드 이벤트를 가능하게 하는 방식

Google Analytics 4는 Measurement Protocol이라는 기능을 제공합니다. 이는 브라우저의 개입 없이 서버에서 GA4로 직접 이벤트를 전송할 수 있게 해 주는 HTTP 기반 API입니다. Measurement ID, API 시크릿, 이벤트 페이로드와 함께 Google의 수집 엔드포인트에 POST 요청을 보내면, 해당 이벤트는 브라우저에서 발생한 것과 똑같이 GA4에 표시됩니다.

Measurement Protocol은 브라우저사이드 gtag.js 라이브러리가 사용하는 것과 동일한 이벤트 이름과 파라미터를 모두 허용합니다. page_view, add_to_cart, begin_checkout, purchase, 그리고 모든 커스텀 이벤트를 전송할 수 있습니다. 각 이벤트에는 상품 배열, 트랜잭션 ID, 매출, 세금, 배송비 같은 이커머스 파라미터를 담을 수 있습니다.

핵심 장점은 신뢰성입니다. 서버사이드 요청은 방문자의 브라우저, 네트워크 상태, 광고 차단기, 쿠키 정책에 의존하지 않습니다. 서버가 이벤트 발생을 알고 있다면, GA4가 이를 수신하도록 보장할 수 있습니다.

브라우저사이드 GA4 vs 서버사이드 GA4

이 두 접근 방식의 차이를 이해하면 서버사이드 트래킹이 왜 더 나은 데이터를 만들어 내는지 알 수 있습니다.

데이터 완전성

브라우저사이드 트래킹은 스크립트가 차단되거나 로드에 실패할 때마다 이벤트를 놓칩니다. 서버사이드 트래킹은 백엔드가 처리하는 모든 이벤트를 캡처합니다. 특히 구매 이벤트의 경우, 브라우저 전용 트래킹이 60~80퍼센트를 캡처하는 데 비해 서버사이드 트래킹은 일반적으로 거래의 95~100퍼센트를 캡처합니다.

어트리뷰션 정확도

브라우저사이드 트래킹은 브라우저에 의해 삭제되거나 제한되는 쿠키에 의존합니다. 서버사이드 트래킹은 백엔드에서 일관된 사용자 식별자를 유지할 수 있어 재방문 고객이 잘못 어트리뷰션될 가능성을 줄입니다. 퍼스트파티 쿠키 전략과 결합하면, 서버사이드 트래킹은 세션 간 어트리뷰션을 훨씬 더 효과적으로 보존합니다.

페이지 성능

브라우저에 추가하는 모든 트래킹 스크립트는 대역폭과 CPU 시간을 두고 경쟁합니다. GA4의 JavaScript 라이브러리는 Google Tag Manager 및 다른 분석 도구와 결합되면 페이지 로드 시간에 수백 밀리초를 더할 수 있습니다. 서버사이드 트래킹은 이 처리를 방문자의 기기에서 완전히 옮겨 놓습니다. 페이지는 더 빨리 로드되고 분석은 더 정확해집니다. 두 가지가 동시에 개선되는 것입니다.

개인정보 보호와 컴플라이언스

서버사이드 트래킹을 사용하면 GA4로 전송되는 데이터를 완전히 제어할 수 있습니다. 데이터가 인프라를 떠나기 전에 서버에서 개인 식별 정보를 제거하고, 사용자 식별자를 해시 처리하고, 동의 규칙을 적용할 수 있습니다. 사용자가 우회하거나 잘못 설정할 수 있는 브라우저사이드 동의 관리에 의존하는 것보다 GDPR, CCPA 및 기타 개인정보 보호 규정을 준수하기가 더 쉬워집니다.

Shopify용 서버사이드 GA4 설정하기

Shopify에서 서버사이드 GA4 트래킹으로 가는 길은 두 가지입니다. Shopify 웹훅과 GA4 Measurement Protocol을 사용해 커스텀 연동을 직접 구축하거나, 전체 파이프라인을 대신 처리해 주는 Converlay 같은 전용 도구를 사용하는 것입니다.

수동 접근 방식

직접 구축하고 싶다면 일반적인 과정은 다음과 같습니다. 먼저 GA4 Measurement Protocol API 시크릿이 필요합니다. GA4 속성에서 관리(Admin)로 이동한 뒤 데이터 스트림을 열고, 웹 스트림을 선택한 다음, Measurement Protocol API 시크릿 섹션을 찾습니다. 새 시크릿을 생성하고 안전하게 보관합니다.

다음으로 Shopify 웹훅을 수신하는 서버가 필요합니다. Shopify는 결제 생성, 주문 접수, 장바구니 업데이트 같은 이벤트에 대해 웹훅 알림을 보낼 수 있습니다. 서버는 이러한 웹훅을 수신 대기하고, 데이터를 GA4 이벤트 형식으로 변환한 뒤, Measurement Protocol 엔드포인트로 전송합니다.

엔드포인트는 https://www.google-analytics.com/mp/collect입니다. Measurement ID와 API 시크릿을 쿼리 파라미터로, 이벤트 페이로드를 요청 본문의 JSON으로 담아 POST 요청을 보냅니다. 각 이벤트에는 사용자와 연결하기 위한 client_id가 필요합니다. 이상적으로는 세션 중에 브라우저에서 GA4 클라이언트 ID를 캡처해 함께 전달하여, 서버사이드 이벤트가 브라우저사이드 세션과 병합되도록 합니다.

이 접근 방식은 작동하지만 상당한 개발 노력이 필요합니다. 웹훅 검증, 이벤트 중복 제거, 오류 재시도 로직, 클라이언트 ID 연결(stitching), 그리고 Shopify와 GA4 API가 발전함에 따른 지속적인 유지보수를 모두 처리해야 합니다.

Converlay를 이용한 더 빠른 접근 방식

Converlay는 코드를 작성하거나 인프라를 관리할 필요 없이 Shopify 스토어를 GA4에 서버사이드로 연결합니다. Shopify 스토어프런트 이벤트를 수신하고, GA4 호환 이벤트 스키마로 매핑한 뒤, Measurement Protocol을 통해 자동으로 전송합니다. 설정은 몇 분이면 완료되며 테마를 수정하거나 Google Tag Manager를 설치할 필요가 없습니다.

Shopify 이벤트를 GA4 이벤트로 매핑하기

직접 연동을 구축하든 도구를 사용하든, Shopify 스토어프런트의 액션이 GA4의 권장 이커머스 이벤트와 어떻게 대응하는지 이해해야 합니다. 이 매핑을 올바르게 해야 GA4의 기본 제공 이커머스 보고서가 정확하게 작동합니다.

page_view

방문자가 스토어의 페이지를 로드할 때 트리거됩니다. 이벤트에는 페이지 제목, 페이지 위치(URL), 페이지 리퍼러가 포함되어야 합니다. 상품 페이지에서는 상품 상세 정보를 담은 view_item 이벤트도 함께 전송할 수 있습니다.

add_to_cart

고객이 상품을 장바구니에 추가할 때 발생합니다. 이벤트 페이로드에는 상품명, 상품 ID(또는 SKU), 옵션명, 가격, 수량이 담긴 items 배열이 포함되어야 합니다. 가능한 경우 상품 카테고리와 브랜드도 포함하면 GA4 보고서가 더욱 풍부해집니다.

begin_checkout

고객이 결제 프로세스를 시작할 때 전송됩니다. 이 이벤트는 장바구니 금액 및 통화와 함께 전체 장바구니 내용을 items 배열로 담습니다. GA4의 이커머스 보고에서 전환 퍼널의 시작점을 표시하기 때문에 특히 중요한 이벤트입니다.

purchase

가장 중요한 이벤트입니다. 고유한 트랜잭션 ID, 총 매출, 세금, 배송비, 통화, 그리고 완전한 items 배열이 반드시 포함되어야 합니다. 각 상품에는 ID, 이름, 수량, 가격이 있어야 합니다. 트랜잭션 ID는 중복 제거에 필수적입니다. 브라우저사이드와 서버사이드 구매 이벤트를 모두 전송하는 경우, GA4는 트랜잭션 ID를 사용해 같은 주문을 두 번 집계하지 않습니다.

추가 이벤트

더 완전한 그림을 위해 고객이 컬렉션 페이지를 둘러볼 때의 view_item_list, 목록에서 상품을 클릭할 때의 select_item, remove_from_cart, 그리고 결제 단계 중의 add_payment_infoadd_shipping_info도 추적할 수 있습니다. 이벤트를 추가할 때마다 GA4에서 퍼널을 더 세밀하게 분석할 수 있습니다.

GA4 실시간 보고서로 설정 검증하기

서버사이드 트래킹을 구성한 후에는 이벤트가 GA4에 올바르게 도착하고 있는지 검증해야 합니다. 모든 것이 제대로 작동하는지 확인하는 방법은 다음과 같습니다.

실시간 보고서 사용하기

GA4 속성을 열고 보고서, 그다음 실시간으로 이동합니다. Shopify 스토어에서 테스트 주문을 넣어 보세요(테스트 거래에는 Shopify의 Bogus Gateway를 사용할 수 있습니다). 몇 초 안에 실시간 화면에 이벤트가 나타나야 합니다. 이벤트 이름이 GA4의 권장 이름과 정확히 일치하는지 확인하세요. Purchaseorder_completed가 아니라 purchase여야 합니다.

이벤트 파라미터 점검하기

실시간 보고서에서 이벤트를 클릭해 파라미터를 확인합니다. 트랜잭션 ID, 매출, 통화, items 배열이 존재하고 올바르게 채워져 있는지 검증하세요. 파라미터가 누락되면 이커머스 보고서에 공백이 생깁니다. 데이터 타입에 주의하세요. 매출은 문자열이 아닌 숫자여야 합니다. 통화는 USD나 EUR 같은 3자리 ISO 코드여야 합니다.

DebugView 확인하기

GA4의 DebugView(관리, 그다음 DebugView에서 확인 가능)는 특정 기기 또는 클라이언트 ID에서 발생한 이벤트의 상세 타임라인을 제공합니다. debug_mode 파라미터를 true로 설정해 이벤트를 전송하면 전체 파라미터 상세와 함께 여기에 표시됩니다. 초기 설정 중 문제를 트러블슈팅하기에 가장 좋은 방법입니다.

Shopify 데이터와 비교하기

서버사이드 트래킹을 며칠 운영한 후, GA4의 구매 이벤트 수를 Shopify 관리자의 실제 주문 수와 비교하세요. 서버사이드 트래킹이라면 이 숫자들은 몇 퍼센트포인트 이내로 일치해야 합니다. GA4가 여전히 눈에 띄게 적은 구매 수를 보여 준다면 이벤트 중복 제거 로직과 클라이언트 ID 연결을 점검하세요.

지속적인 정확도 모니터링

Shopify 매출과 GA4에 보고된 매출을 비교하는 주간 점검을 마련하세요. 환불, 통화 환산, 시점 차이로 인한 작은 오차는 정상입니다. 하지만 격차가 지속적으로 5퍼센트를 초과한다면 이벤트가 유실되거나 잘못된 형식으로 전송되고 있는지 조사해야 합니다.

이커머스 데이터 유실을 멈추세요

브라우저 기반 GA4 트래킹은 더 이상 존재하지 않는 웹을 위해 설계되었습니다. 광고 차단기, 쿠키 제한, Shopify의 결제 아키텍처가 모두 맞물려 불완전한 데이터를 안겨 줍니다. 서버사이드 트래킹은 있으면 좋은 수준의 최적화가 아닙니다. Shopify 스토어에서 GA4로 신뢰할 수 있는 이커머스 분석을 얻는 유일한 방법입니다.

놓치는 구매 이벤트 하나하나가 전환율을 왜곡하고, 어트리뷰션을 훼손하며, 더 나쁜 마케팅 결정으로 이어집니다. 브라우저 전용 트래킹에 의존하는 기간이 길어질수록, 실적이 저조해 보이는 채널에 예산을 낭비하고, 받을 자격 없는 공로를 인정받는 채널에 과잉 투자하게 됩니다.

Converlay는 Shopify 판매자를 위해 서버사이드 GA4 트래킹을 손쉽게 만들어 줍니다. 코드도, 태그 매니저도, 지속적인 유지보수도 필요 없습니다. 앱을 설치하고 GA4 속성을 연결하면 몇 분 안에 정확하고 완전한 이커머스 데이터를 받기 시작합니다.

Shopify에 Converlay를 설치하고 오늘 바로 GA4 데이터를 바로잡으세요.

Shopify 구매 추적을 검증할 준비가 되셨나요?

Converlay를 무료로 설치하고 연동 대상을 연결한 뒤, 대시보드에서 서버사이드 전송을 확인하세요.

Shopify에 무료 설치

관련 글