2023. 11. 20. 21:16ㆍ데이터분석&마케팅/Google Analytics 4
안녕하세요~ totally 개발자입니다.
쇼핑몰을 운영하다보면 주문 취소 및 환불이 생기게 되기 마련입니다. 그렇게 되면 구글 애널리틱스4를 이용하여 전자상거래를 구축할 때 purchase 이벤트를 만들었다면 refund 이벤트도 만들어서 주문 취소 및 환불의 경우에도 데이터를 제대로 집계할 수 있습니다. 다만 여기서 유의하실 점은 5-10분 짧은 시간에 여러 개의 구매 및 환불 이벤트는 연이어 일으키는 경우에는 제대로 집계되지 않을 수 있다는 점도 인지하고 계셔야 합니다. 짧은 시간 내에 여러 번의 환불을 인식해야 하는 경우에는 전자상거래 refund 이벤트가 아니라 별도의 GA4 이벤트(예를 들어 refund_product처럼 가칭 이벤트를 하나 생성해서 별도의 매개변수를 패스하는 방식을 사용해보는 것을 권장합니다) 제가 여러 가지 테스트를 거쳐본 결과, GA4에서 refund 이벤트를 몇 분 내에 여러 번을 발동시켜도 1번만 집계되었습니다. 좀 시간이 지나고 일으키니 또 발동이 되었습니다. 이 부분은 테스트 환경 및 구축 상황에 따라 다르게 나타날 수 있습니다.
Step 1: 구글 태그 관리자(Google Tag Manager)를 사용한다고 가정하고 설명을 드리자면 dataLayer 코드는 아래와 같습니다.
예를 들어 고객 A씨가 BEST_CUP이라는 제품을 2개 구매했다고 가정했을 때 purchase 코드는 아래와 같습니다.
<script>
dataLayer.push({
event: "purchase",
ecommerce: {
currency: "KRW",
value: 20000,
transaction_id: "20231120-000001",
items: [
{
item_id: "ABC1112",
item_name: "BEST_CUP",
price: 10000,
quantity: 2
}
]
}
});
</script>
그런데 고객 A씨가 컵이 2잔 필요할 것으로 생각했는데 1잔이면 될 것 같다고 하여 컵 1잔을 환불 요청하였습니다. 그 경우 부분환불로 적용되어 코드는 아래와 같습니다. 여기에서 transaction_id(주문거래번호)와 item_id, item_name은 purchase의 변수들과 일치해야 합니다. 만약 value가 20000이고 quantity가 2가 되면 전체 환불로 적용할 수 있습니다.
<script>
dataLayer.push({
event: "refund",
ecommerce: {
currency: "KRW",
value: 10000,
transaction_id: "20231120-000001",
items: [
{
item_id: "ABC1112",
item_name: "BEST_CUP",
price: 10000,
quantity: 1
}
]
}
});
</script>
Step 2: refund가 적용된 전자상거래 보고서에서 본 예제 결과는 아래와 같습니다. 만약 구매한 제품 수익보다 환불의 수익이 높다면 아래처럼 마이너스 값으로 나오고 만약 위의 경우처럼 2만원에서 1만원을 차감하는 경우라면 10000이 적용됩니다. 전액환불인 경우에는 0으로 표시됩니다.
위와 같이 구매 및 환불 데이터를 동시에 적용하므로써, 데이터를 더 정확히 측정할 수 있습니다.