GA4 전자상거래 이벤트 설계 체크리스트: 구매 퍼널을 빠짐없이 쌓는 법
view_item부터 purchase까지 GA4 권장 이벤트의 순서와 필수 파라미터, 중복 구매와 크로스도메인 같은 흔한 함정을 표로 정리했습니다.
GA4의 전자상거래 보고서는 정해진 이름의 이벤트와 정해진 구조의 파라미터를 받아야 채워집니다. 이름이 조금만 달라도 일반 이벤트로만 쌓여 수익, 퍼널, 상품 성과 보고서가 비어 보입니다. 이 글은 어떤 이벤트를 어느 시점에 어떤 값과 함께 보내야 하는지 점검용으로 정리한 것입니다.
이벤트 순서와 시점
| 이벤트 | 보내는 시점 | 꼭 필요한 값 |
|---|---|---|
view_item_list | 상품 목록이 보일 때 | items, item_list_name |
select_item | 목록에서 상품을 눌렀을 때 | items |
view_item | 상품 상세가 보일 때 | items, currency, value |
add_to_cart | 장바구니에 담았을 때 | items, currency, value |
view_cart | 장바구니 화면이 보일 때 | items, currency, value |
begin_checkout | 결제 시작 | items, currency, value |
add_shipping_info | 배송 정보 입력 완료 | items, shipping_tier |
add_payment_info | 결제 수단 선택 | items, payment_type |
purchase | 주문 확정 | transaction_id, value, currency, items |
모든 이벤트를 한 번에 구현할 필요는 없습니다. 퍼널의 단절 위치를 보려면 view_item, add_to_cart, begin_checkout, purchase 네 개만 있어도 시작할 수 있습니다.
items 배열 설계
items는 상품 정보를 담은 배열입니다. 상품마다 최소한 item_id 또는 item_name이 필요하고, 실무에서는 다음 값까지 맞춰 두는 편이 분석에 유리합니다.
item_id: 상품 코드. 쇼핑몰 DB의 값과 같게 합니다.item_name: 상품명.price: 단가. 할인 적용 후 실제 가격인지 기준을 정해 일관되게 씁니다.quantity: 수량.item_brand,item_category: 분석 축으로 쓸 분류.
dataLayer.push({ ecommerce: null });
dataLayer.push({
event: "purchase",
ecommerce: {
transaction_id: "ord_8921",
value: 148000,
currency: "KRW",
items: [{ item_id: "SKU-1001", item_name: "예시 상품", price: 74000, quantity: 2 }]
}
});
ecommerce: null을 먼저 밀어 넣는 것은 이전 이벤트의 값이 다음 이벤트에 남지 않게 하려는 관례입니다. 구글 태그 매니저를 쓸 때는 데이터 레이어에 위와 같이 밀고, GA4 이벤트 태그가 ecommerce 객체를 읽도록 설정합니다.
구매 이벤트의 함정
- 중복 구매: 완료 페이지를 새로고침하거나 뒤로 가기로 다시 열면 같은 구매가 또 전송됩니다. GA4가 같은
transaction_id를 중복으로 처리하는 경우가 있지만, 거기에 의존하지 말고 전송 단계에서 한 번만 보내도록 막으세요. - 총액 기준 불일치:
value에 배송비와 할인, 세금을 포함할지 기준을 정해 광고 매체에 보내는 값과 맞추세요. 기준이 다르면 ROAS 비교가 어긋납니다. - 환불과 취소: 환불은
refund이벤트로 같은transaction_id와 함께 보내야 수익 보고서에 반영됩니다. 처음에는 빠뜨리기 쉽습니다. - 외부 결제 이탈: 간편결제에서 완료 페이지로 돌아오지 않는 구매는 브라우저 태그로는 잡히지 않습니다. 이 경우 서버에서 보내는 방식을 검토하세요. 서버사이드 추적 글에서 구조를 설명합니다.
크로스도메인과 출처 유지
쇼핑몰 도메인과 결제 도메인이 다르면, 결제 도메인에서 새 세션이 시작되어 구매의 출처가 "직접 유입"이나 결제 서비스의 추천 유입으로 바뀝니다. GA4 설정에서 두 도메인을 크로스도메인으로 등록해 클라이언트 ID를 넘기고, 결제 서비스 도메인은 추천 제외 목록에 넣어 두세요.
배포 전 검증
- 구글 태그 매니저의 미리보기에서 이벤트와
ecommerce객체가 기대한 값으로 들어오는지 확인합니다. - GA4의 DebugView에서 이벤트가 수신되는지, 파라미터가 비어 있지 않은지 봅니다.
- 실제로 소액 주문을 한 건 일으켜서 쇼핑몰 주문 데이터, GA4 구매, 광고 매체 구매의 금액과 건수를 대조합니다.
- 운영 이후에는 주 단위로 주문 데이터 대비 GA4 구매 수의 비율을 기록해 변화를 확인합니다.