안녕하세요! 그로스마케팅 파트너, 허들러스의 유성민입니다. 이번 글에서는 GA4 전자상거래 리포트의 원리를 처음부터 자세히 익히기 위해 기본적인 구동원리부터 설명하는 전자상거래 시리즈의 1편입니다.

 

1. GA4 전자상거래 이벤트란?

1) 전자상거래 리포트의 위치

구글 애널리틱스의 표준 리포트(Standard Report)를 보면, [수익 창출]에 관련된 리포트가 있는 것을 확인할 수 있습니다.

 

 

 

 

2) 전자상거래 이벤트의 정의

구글 애널리틱스는 우리 웹사이트나 어플리케이션에 방문한 유저들의 모든 활동(페이지뷰, 클릭 등)을 시간대별로 기록해둔 로그 분석 툴입니다. 최초의 Google Analytics는 쇼핑몰을 염두에 두고 설계된 솔루션입니다. 그렇다 보니 위 [수익 창출] 메뉴에 있는 다양한 리포트는 쇼핑몰 비즈니스를 하고 있는 분들에게 도움이 되는 유용한 리포트들이 모여있습니다.

 

즉, 쇼핑몰이 아닌 비즈니스는 해당 리포트를 조회할 필요도 없고, 데이터가 들어오지도 않습니다. 하지만 쇼핑몰인 고객들은 유용하게 해당 리포트를 사용해야만 하는데, 해당 리포트를 사용하기 위해서는 전자상거래에 관련된 이벤트를 설치해야 할 필요가 있습니다.

 

이렇듯 구글 애널리틱스 내 전자상거래와 관련된 리포트를 보기 위해 설치해 주어야 하는 이벤트들을 우리는 전자상거래 이벤트(E-commerce Event)라고 부릅니다.

 

 


 

 

2. GA4 전자상거래 이벤트의 종류

1) 전자상거래 이벤트는 모두 설치해야 하나요?

전자상거래 이벤트를 잘 구현하기 위해서는 아래와 같은 14개의 GA4에서 제공해 주는 전자상거래 이벤트가 있습니다. 해당 14개를 모두 설치하실 필요는 없습니다. 그리고 대한민국에서만 관행적으로 취사선택에 따라서 이벤트를 전송하기도 합니다. 그렇기 때문에 오롯이 설치 여부는 구글 애널리틱스 담당자의 선택에 달려있습니다.

다만, 대한민국에서 관행적으로 쓰이고 있는 이벤트들은 아래 목록에서 필수 표시를 해두었습니다. 그렇다면, 왜 관행적으로 취사선택이 가능한지 전자상거래 이벤트의 14가지 이벤트의 상세 설명을 살펴봅시다.

 

purchase(필수)
발생 시점 : 구매가 완료되었을 때 발생합니다. 한국 쇼핑몰의 경우 대표적으로 아래 2가지 경우가 있습니다.

1) 구매 완료 페이지가 로드 될 때 (구매해 주셔서 감사합니다 페이지)
2) 네이버페이를 클릭했을 때

네이버페이의 경우, 버튼을 클릭하면 사이트 밖을 나가버리게 되므로, 그 이후 시점에 대해서는 GA4가 데이터를 추적할 수 없습니다. 그래서 현재의 기술로서는 네이버 페이 버튼을 클릭할 때 purchase 이벤트를 발생시킵니다. 버튼을 클릭하고 구매하지 않는 유저들도 있을 수 있기 때문에, 과장 집계가 발생하는 편입니다.

과장 집계가 발생되는 것을 막기 위해서는 자체 서버를 통해 데이터를 전송하는 Measurement Protocol 이란 방법론이 있습니다.(추후 가이드 준비 예정) 하지만 자체 트랜잭션 데이터를 받고 있는 서버나 DB가 구축된 환경에서만 가능하여, 대부분의 커머스들을 정확하게 구현하는 데에 비용과 시간이 많이 발생합니다. 그래서 관행적으로 간단하게나마 추이를 보는 용도로서 네이버페이 버튼을 클릭할 때 purchase 이벤트를 전송하는 것이 시장에서 일반적으로 통용되는 방법론입니다.

 

add_to_cart(필수)
발생 시점 : 장바구니 버튼을 클릭하여, 물건이 장바구니에 담긴 순간 발생합니다.

헷갈릴 수 있는 점 : 장바구니 페이지가 로드되는 이벤트는 view_cart 이벤트이며, add_to_cart는 상세페이지 내에서 물건을 장바구니에 담을 때 데이터를 전송합니다.(이 역시 관행적인 방법입니다.)

 

begin_checkout(필수)

발생 시점 : 결제를 시작하는 페이지가 로드되었을 때 발생합니다.

 

view_item(필수)

발생 시점 : 제품의 상세페이지를 조회할 때(페이지 로드) 발생합니다.

 

add_payment_info(선택사항)

발생 시점 : 결제정보(카드 정보, 통장 정보 등)를 입력 완료하는 순간에 발생합니다.

대한민국의 경우, 네이버페이와 무통장입금 방법론이 일반적으로 활성화되어 있는 데에 반해, 글로벌에서는 신용카드 정보를 등록하고 구매를 자유롭게 하는 방식이 일반적입니다. 그러다 보니 해당 이벤트를 대한민국에서는 굳이 추가하지 않습니다. 어차피, begin_checkout(결제 시작)이라는 이벤트로 사용자의 행동 흐름은 충분히 관측할 수 있기 때문입니다.

 

add_shipping_info(선택사항)

발생 시점 : 배송지 정보(주소, 우편번호 등)를 입력 완료하는 순간에 발생합니다.

대한민국의 경우, 결제 시작 페이지에서 카드 정보와 배송지 정보를 한 번에 적기 때문에, 굳이 배송지 정보 추가 이벤트를 일반적으로는 하지 않습니다. 다만 취사선택에 따라 데이터 적재는 가능합니다.

 

add_to_wishlist(선택사항)

발생 시점 : 제품 찜하기, 즐겨찾기, 위시리스트 추가 등이 이루어지는 순간에 발생합니다.

쇼핑몰마다 제품을 찜하는 방법은 다릅니다. 하지만 의미론적으로 제품을 찜하는 어떤 고객의 행동이 정의될 수 있다면 해당 이벤트를 전송하기도 합니다. 다만, 대한민국의 경우, 일반적으로 찜하기 기능을 대형 쇼핑몰이 아니라면 많이 사용하지 않는 것 같아서, 잘 설치하지 않는 경향이 있습니다.

 

refund(선택사항)

발생 시점 : 제품 구매 취소를 하거나 환불 신청을 하는 경우 발생시킵니다.

전화로 환불을 했을 경우에는 이벤트를 잡을 수가 없습니다. 사이트에서 발생하는 액션들을 중심으로만 이벤트를 발생시킬 수 있기 때문입니다. 사이트 UI에 구매 취소나 환불 신청 완료 페이지가 있거나 등의 고객의 행동을 잡을 수 있는 트리거 시점이 있다면 해당 이벤트를 전송할 수 있습니다.

→ 환불 이벤트를 적용하느냐 아니냐에 따라서 리포트 내 측정 항목들이 달라질 수 있습니다.

 

remove_from_cart(선택사항)

발생 시점 : 장바구니에 담긴 물품을 장바구니에서 빼는 순간(장바구니 담기 취소) 발생합니다.

장바구니 취소 이벤트 역시 데이터를 적재한다고 해서 크게 인사이트가 있는 내용을 담기 어렵기 때문에, 한국에서는 관행적으로 많이 설치하지 않습니다.

 

select_item(선택사항)

발생 시점 : 어떤 목록에 있는 제품을 클릭하는 순간 발생

여기서 ‘목록(list)’이라는 단어가 낯설 수 있습니다. 말 그대로 목록이란 여러 항목들이 한 영역에 나열되어 있는 형태를 의미합니다. 아래 참고 이미지와 같이 특정 영역에 있는 진열된 상품이 클릭 되었을 때 추적합니다.

 

 

 

 

우리 사이트에 진열된 제품 영역들이 정말 많은데, 다 잡아야하나요?

→ 놀랍게도 모든 영역들을 정의하여 예외 없이 데이터를 전송하도록 해야 합니다. 모든 영역들을 조사한 뒤, 각 영역별로 제품이 클릭되었을 때 이벤트를 발생시키도록 합니다. 그래서 select_item은 purchase, add_to_cart와 같은 일반적인 전자상거래 이벤트보다 훨씬 더 많은 설계 및 개발 공수가 발생합니다. 

 

select_promotion(선택사항)

발생 시점 : 특정 형태의 목록에 있는 프로모션을 클릭할 때

해당 이벤트는 사이트 내에 있는 프로모션(행사,기획전 등)과 관련된 영역/버튼/배너 등을 클릭하는 경우 이벤트를 발생시킵니다. 아래 이미지를 보면, 프로모션 영역이 명확하게 표현되어 있습니다. 아래 이미지에 표시된 프로모션 영역을 클릭하는 경우 이벤트를 발생시킵니다.

 

 

 

 

프로모션 이벤트 역시 사이트에 정말 다양하게 있을 수 있습니다. 해당 영역 역시 select_item 이벤트와 마찬가지로 많은 공수가 발생할 수 있습니다.

무엇을 프로모션 영역이라고 지정해야하는가?

→ 결국 구매를 촉진시키기 위해 고객에게 혜택을 제공하고 있는 모든 영역은 ‘프로모션(promotion)’입니다. 그럼에도 불구하고 애매한 경우들이 많이 발생합니다. 이 경우에는 프로모션 영역을 어디까지만 지정할 것인가에 대한 사람의 의사결정이 필요합니다. 아래 이미지를 봅시다.

 

 

 

 

영역이 크게 2개가 나타납니다. 위에 있는 영역(”모든 서비스는 0원”)은 확실히 고객에게 어필하는 혜택이기 때문에 프로모션 영역이 확실합니다. 다만 아래 있는 영역(”골프존 사천 205,000원~”)은 상품이 진열된 영역인 것 같기도 하고, 최저가를 제시하다 보니 프로모션 영역인 것 같기도 합니다.

이 경우에는 개인의 취사선택에 따라 프로모션 영역으로 잡을 것인지 진열된 상품 영역으로 잡을 것인지를 결정합니다. 다만, 전문가적 입장에서는 하단에 있는 영역은 클릭했을 때, 그 상품의 상세페이지로 이동되기 때문에 굳이 프로모션 영역이라기보다는 아이템 진열 영역으로 잡는 것이 더 합리적으로 보입니다. 

 

view_cart(선택사항)
발생 시점 : 장바구니 페이지가 로드되는 시점에 발생합니다.
보통 대한민국에서는 장바구니 페이지를 거치지 않는 네이버페이 결제 방식이 많고, 장바구니 담기 버튼을 클릭할 때, add_to_cart 이벤트를 발생시키기 때문에 굳이 디테일하게 view_cart 이벤트는 많이 설치하지 않는 것 같습니다.

(관행적인 이유이며, 얼마든지 취사선택이 가능합니다.)

 

view_item_list(선택사항)

발생 시점 : 제품이 있는 목록에 제품이 화면상에 노출되었을 때 발생합니다.

 

 

 

 

위 이미지와 같이 쇼핑몰을 방문한 유저의 브라우저 화면에 제품이 나타났을 때 이벤트를 발생시킵니다. 참고 이미지로 보아서는 총 5개의 제품이 화면상에 나타났기 때문에, 5번의 같은 이벤트가 발생할 것입니다.

특정 영역이 화면에서 몇 % 노출된 시점에서 몇 초가 지나야 ‘노출’이 되었다고 판단할 것인지에 대한 정의가 필요합니다. 하지만 모든 영역마다 기준이 있어보았자 데이터를 통합적으로 보는데 다른 기준을 가지고 보게 된다면 인사이트를 추출하기가 매우 어렵습니다. 위 이미지에 보이는 각각의 제품 영역은 하나의 화면에 여러 개가 담길 정도로 크기가 작기 때문에(모바일도 포함), 100% 노출된 시점부터 1초가 지났을 때 view_itme_list 라는 이벤트를 전송합니다. 해당 노출의 정도와 시간도 관행적으로 1초를 잡는 것이지, 필요에 따라 다른 정의와 기준을 내려도 무방합니다. 

 

view_promotion(선택사항)
발생 시점 : 프로모션 영역에 특정 프로모션 영역이 화면상에 노출되었을 때 발생합니다.

 

 

 

 

위 이미지와 같이 쇼핑몰을 방문한 유저의 브라우저 화면에 프로모션 배너가 나타났을 때 이벤트를 발생시킵니다. 참고 이미지로 보아서는 총 4개의 배너가 화면상에 나타났기 때문에, 4번의 같은 이벤트가 발생할 것입니다.

특정 영역이 화면에서 몇 % 노출된 시점에서 몇 초가 지나야 ‘노출’이 되었다고 판단할 것인지에 대한 정의가 필요합니다. 하지만 모든 영역마다 기준이 있어보았자 데이터를 통합적으로 보는데 다른 기준을 가지고 보게 된다면 인사이트를 추출하기가 매우 어렵습니다. 위 이미지에 보이는 각각의 프로모션 영역은 하나의 화면에 여러 개가 담길 정도로 크기가 작기 때문에(모바일도 포함), 100% 노출된 시점부터 1초가 지났을 때 view_promotion 이라는 이벤트를 전송합니다. 해당 노출의 정도와 시간도 관행적으로 1초를 잡는 것이지, 필요에 따라 다른 정의와 기준을 내려도 무방합니다.

 

 


 

 

3. 전자상거래 이벤트에는 매개변수가 정해져있습니다.

1번 사항에서 말씀드렸듯이, 수익창출 리포트에 대한 정보들을 볼 수 있습니다. 예시를 하나 들어보기 위해 데모 계정으로 이동해 보겠습니다.

Step 1 : 애널리틱스 [수익 창출] 카테고리에서 [전자상거래 구매] 리포트로 이동합니다.

 

 

 

 

Step 2 : 아래 대표적인 측정항목 3개가 보입니다.

 

 

 

 

  • 구매한 상품 : purchase 이벤트가 발생해야만 데이터가 쌓입니다.
  • 장바구니에 추가된 상품 : add_to_cart 이벤트가 제품별로 발생했을 때마다 데이터가 쌓입니다.
  • 조회된 상품 : view_item 이라는 이벤트가 각 제품별 상세페이지가 로드될 때마다 발생되어야만 데이터를 볼 수 있습니다.

이렇듯, 전자상거래 이벤트 14개 중 몇 가지를 설치하면 GA4에서 제공해 주는 측정 항목이랑 ‘자동 연동’이 되면서 리포트에 숫자를 채워줍니다. 여기서 궁금한 것은 위 이미지를 자세히 보면, [항목 이름] 이라는 측정 기준별로 데이터를 관측하고 있습니다.

항목 이름이라는 단어가 낯설지만 데이터를 보면 상품의 이름을 의미한다는 것을 알 수 있습니다. 단순히 add_to_cart 이벤트만 보내게 되었다면 상품의 장바구니 담긴 수는 나오지만 상품 이름별로 관측하기에는 어렵습니다.

그래서 우리는 view_item 이벤트만 보내는 것이 아닌, 해당 이벤트에 ‘상품 이름’을 의미하는 데이터를 매개변수로 보내주어야 합니다. 이벤트와 매개변수에 대한 용어가 아직 익숙하지 않다면 아래 글을 봐주세요.

 

GA4 이벤트 택소노미란?

위 이벤트 택소노미 글을 읽고 오셨다면, view_item 이라는 이벤트에 item_name 이라는 매개변수가 있어야 한다는 사실을 알 수 있을 것입니다. 그런데 우리가 일반적으로 만들게 되는 맞춤 이벤트와 달리, 전자상거래 이벤트의 매개변수는 명확하게 정해져있습니다. 아래 이미지를 참고해 봅시다.

 

 

 

 

코드가 나왔다고 어려워하실 것 없습니다. 위 코드에서 상위 3번째 행까지를 그림으로 표현해 보겠습니다.

 

 

 

 

이렇듯 구매라는 이벤트에 추가 정보(매개변수)들을 담은 것이라고 보면, 우리가 이벤트 택소노미 글에서 봤던 맞춤 이벤트와 크게 다를 바가 없습니다. 그런데 위 코드 4번째 행부터 아래 items 라는 매개변수는 조금 특이합니다. Key 값에 바로 Value 값이 들어가는 것이 아니라 대괄호가 들어가기 때문입니다.

 

 

 

 

위 개념을 이해하기 위해서는 약간의 프로그래밍 지식이 필요합니다. 결국 정리하자면, 데이터를 효과적으로 저장하고 전송하기 위해서는 위와 같은 형태가 나옵니다.

이번 글에서는 전자상거래 이벤트의 종류와 의미에 대해서 자세히 살펴보고 간략한 연동 원리에 대해서 다루어보았습니다. 다음 글에서는 GA4 전자상거래를 이해하기 위해, 다음 글에서는 GA4 전자상거래를 마케터가 이해하기 위한 프로그래밍 지식을 다뤄보겠습니다.


허들러스 사이트 바로가기

 


해당 글은 그로스 마케팅 파트너 허들러스와 모비인사이드의 파트너쉽으로 제공되는 기사입니다.