# GA4 전자상거래란?

GA4의 ‘수익 창출’ 리포트가 채워지는 원리, 14개 전자상거래 이벤트의 발생 시점, 그리고 매개변수가 GA4 규격으로 정해져 있다는 사실까지.

- 카테고리: 이벤트 택소노미
- 소요 시간: 약 10분
- 난이도: 입문
- 업데이트: 2026.05.14
- 원문: /wiki/playbook/ga4-event-taxonomy-checklist/what-is-ga4-ecommerce

## 목차

- [② 14개 이벤트의 발생 시점](#events)
- [③ 매개변수는 정해져 있다](#parameters)
- [자주 묻는 질문](#faq)

GA4 좌측 보고서 → 수익 창출 아래에는 ‘전자상거래 구매·구매 여정·결제 여정·인앱 구매·광고 수익·프로모션’ 리포트가 기본으로 들어 있습니다. 이 리포트들이 채워지려면 우리 사이트에서 **‘전자상거래 이벤트’**를 GA4 규격대로 보내야 합니다. 이 글은 ① 전자상거래 리포트와 이벤트의 정의, ② GA4가 정해 둔 14개 전자상거래 이벤트 각각의 발생 시점, ③ 매개변수가 자유 명명이 아니라 GA4 규격으로 정해져 있다는 사실까지 세 가지를 정리합니다.

## ① 전자상거래 리포트와 전자상거래 이벤트의 정의

GA4의 좌측 보고서 메뉴 안에는 ‘Life cycle’ 그룹 아래 ‘수익 창출’ 카테고리가 있고, 그 안에 전자상거래 관련 리포트들이 들어 있습니다.

![GA4 좌측 사이드바에서 ‘보고서 → 수익 창출’ 카테고리가 펼쳐져 ‘개요·전자상거래 구매·구매 여정·결제 여정·프로모션·거래·유지’ 메뉴가 보이고, ‘전자상거래 구매’ 항목이 파란색으로 활성 표시된 GA4 데모(Google Merch Shop) 캡처. 우측에는 시간 경과 차트와 상품별 조회·장바구니·구매·수익 표가 표시되어 있음](/wiki-assets/playbook/what-is-ga4-ecommerce/sidebar-ecommerce-purchase.png)

> 좌측 메뉴에서 보고서 → 수익 창출 → ‘전자상거래 구매’로 이동한 화면. ‘전자상거래 구매’ 외에도 ‘구매 여정·결제 여정·프로모션·거래’ 리포트가 함께 들어 있고, 모두 우리가 보낸 ‘전자상거래 이벤트’에서 데이터를 가져옵니다.

이 리포트들이 채워지는 방식은 **일반 맞춤 이벤트와 다릅니다**. 우리가 자유 명명으로 만드는 맞춤 이벤트와 달리, GA4는 전자상거래 이벤트의 이름과 매개변수를 미리 규격으로 정해 두었고, 그 규격대로 우리가 보낼 때만 리포트가 작동합니다. 그래서 ‘전자상거래 이벤트’는 ‘설계한다’기보다 **‘구현한다’**는 표현이 더 정확합니다 — GA4가 정해 둔 약속을 그대로 따라가는 일입니다.

이렇게 **GA4가 미리 이름과 매개변수 규격을 정해 둔 이벤트들**을 우리는 업계 통상적으로 **전자상거래 이벤트(ecommerce event)**라고 부릅니다. 그 종류와 발생 시점을 하나씩 살펴봅시다.

## ② 전자상거래 이벤트 14종 — 발생 시점

GA4가 제공하는 전자상거래 이벤트는 14개입니다. **14개를 모두 설치할 필요는 없습니다** — 사이트 구조·분석 목적·운영 여건에 따라 취사선택합니다. 거의 모든 전자상거래 사이트에서 함께 설치되는 핵심 이벤트는 굵게 강조했습니다.

purchase 필수

구매가 완료되었을 때

add_to_cart 필수

상세페이지에서 ‘담기’ 버튼이 눌려 장바구니에 추가될 때

begin_checkout 필수

결제 시작 페이지가 로드되었을 때

view_item 필수

제품 상세 페이지가 조회될 때(페이지 로드)

add_payment_info 선택

결제정보(카드·통장 등) 입력이 완료된 순간

add_shipping_info 선택

배송지 정보(주소·우편번호) 입력이 완료된 순간

add_to_wishlist 선택

찜·즐겨찾기·위시리스트에 상품 추가

refund 선택

구매 취소·환불 신청이 이루어진 경우

remove_from_cart 선택

장바구니에서 상품을 뺀 순간

select_item 선택

어떤 ‘목록’에 진열된 상품을 클릭한 순간

select_promotion 선택

프로모션 영역·배너를 클릭할 때

view_cart 선택

장바구니 페이지가 로드된 시점

view_item_list 선택

상품이 있는 목록이 화면에 노출된 시점

view_promotion 선택

프로모션 상세 페이지가 로드된 시점

> **팁**
>
> 각 이벤트의**전체 매개변수 명세·세부 규격**은 GA4 공식 문서에 정리되어 있습니다 —[Google Analytics 개발자 가이드 — 전자상거래 측정](https://developers.google.com/analytics/devguides/collection/ga4/ecommerce?hl=ko)또는[Analytics 고객센터 — 전자상거래 측정](https://support.google.com/analytics/answer/9612232?hl=ko). 구현 단계에서 각 이벤트의 정확한 매개변수 키·필수 여부를 확인할 때 참고하세요.

위 14개 중 `view_item_list`·`select_item`·`select_promotion`·`view_promotion`은 추가 보완 설명이 필요합니다.

### `select_item` — ‘목록(list)’이라는 단어

‘목록’은 ‘여러 상품이 한 영역에 나열되어 있는 형태’를 의미합니다. 추천 상품 영역·베스트·카테고리 목록 등. 그 영역에 진열된 상품 중 하나를 클릭하는 순간 `select_item`이 발생합니다.

> **다이어그램 설명:** ‘고객님을 위한 추천상품’이라는 영역 아래에 5개의 상품 카드가 가로로 진열되어 있고, 가운데 카드가 굵게 강조되며 ‘클릭 시 select_item’ 라벨이 붙은 모습

‘추천 상품’이라는 한 영역에 5개 상품이 진열된 모습. 가운데 카드(상품 C)가 클릭되는 순간 — `select_item` 이벤트가 그 상품의 정보를 담아 GA4로 전송됩니다.

사이트에 진열된 **모든 상품 영역**(추천 상품·베스트·카테고리 목록·연관 상품 등)에서 클릭이 일어날 때마다 전송해야 하므로, `purchase`·`add_to_cart` 같은 일반 전자상거래 이벤트보다 설계·개발 공수가 큽니다.

### `select_promotion` — 프로모션 영역의 판단

‘무엇을 프로모션 영역이라고 지정해야 하나?’ — 결국 **구매를 촉진시키기 위해 고객에게 혜택을 제공하고 있는 모든 영역**이 ‘프로모션(promotion)’입니다. 그럼에도 애매한 경우가 많아, 어디까지를 프로모션 영역으로 잡을지 사람의 의사결정이 필요합니다.

> **다이어그램 설명:** 두 종류의 영역을 비교하는 다이어그램. 왼쪽은 ‘서비스 소개 — 모든 서비스는 0원’이라는 명확한 혜택 강조 프로모션 영역이고 굵은 테두리로 표시됨. 오른쪽은 ‘티스캐너 Pick 골프 투어’라는 제목 아래 골프장 두 곳 카드가 진열된 영역으로 ‘프로모션인가 상품 진열인가’ 판단이 필요하다는 의미로 점선 테두리로 표시됨

왼쪽처럼 ‘혜택을 강조해 구매를 촉진’하는 영역은 명확한 프로모션. 오른쪽처럼 ‘최저가를 제시하지만 클릭하면 상품 상세로 이동’하는 영역은 ‘상품 진열(list)’로 분류하는 것이 합리적입니다. 사이트 안의 모든 모호한 영역에 사람의 판단이 필요합니다.

### `view_item_list` — ‘노출’의 정의

특정 영역이 화면에서 몇% 노출된 시점·몇 초가 지나야 ‘노출’로 판단할지 정의가 필요합니다. 영역마다 기준이 다르면 통합 분석에서 인사이트 추출이 어려우므로, 사이트 전체에 한 가지 기준을 통일해야 합니다. 일반적으로 ‘**100% 노출된 시점부터 1초가 지났을 때**’ 전송하는 것이 관행적입니다.

> **다이어그램 설명:** ‘고객님을 위한 추천상품’ 영역에 5개 상품 카드가 가로로 진열되어 있고, 모든 카드 위에 반투명 회색 오버레이와 ‘제품이 화면에 나타남’이라는 라벨이 덮여 있는 모습. 아래에는 ‘100% 노출 + 1초 후 view_item_list 발사’ 설명

5개 상품이 화면에 100% 노출된 시점부터 1초가 지났을 때 `view_item_list`가 발사됩니다. 노출의 ‘비율·시간 기준’은 사이트 안에서 한 가지로 통일해야 통합 분석이 가능합니다.

## ③ 매개변수는 자유 명명이 아니라 GA4 규격으로 정해져 있다

지금까지 14개 이벤트의 ‘이름’과 ‘발생 시점’을 확인했습니다. 그런데 GA4 전자상거래 리포트가 채워지는 또 한 축이 있습니다 — **매개변수**입니다.

예시로 GA4 Demo Account(Google Merch Shop)의 수익 창출 → 전자상거래 구매 리포트를 봅시다. 표 상단에 측정항목 3개가 보입니다.

GA4 ‘전자상거래 구매’ 리포트의 표를 단순화한 모습. 첫 열(강조)은 측정기준 ‘항목 이름’이고, 그 옆 세 열은 측정항목 ‘조회된 상품·장바구니에 추가된 상품·구매한 상품’입니다.

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

위 표에서 첫 열(굵게 강조)이 측정기준 ‘**항목 이름**’입니다. GA4 표시 명칭이고, 실제로는 ‘상품의 이름’을 의미합니다. 단순히 `add_to_cart` 이벤트만 보낸다면 ‘상품의 장바구니 담기 수’는 나오지만 **상품 이름별로 관측하기에는 어렵습니다**. 그래서 우리는 이벤트만 보내는 것이 아니라, 해당 이벤트에 ‘상품 이름’을 의미하는 데이터를 **매개변수**로 함께 보내 줘야 합니다.

제품 이름별로 상세페이지 조회수를 보기 위해서는, `view_item` 이벤트에 `item_name`이라는 매개변수가 함께 있어야 한다는 사실을 알 수 있습니다. 그런데 우리가 일반적으로 만드는 맞춤 이벤트나 매개변수와 달리, **전자상거래 이벤트의 매개변수는 GA4 규격으로 정해져 있습니다**. 아래 `purchase` 이벤트 코드를 봅시다.

예시 — purchase 이벤트의 매개변수

gtag("event", "purchase", {transaction_id: "20240111112345678", value: 6300, currency: "KRW", items: [{item_id: "SKU_12345", item_name: "허들러스 원피스", coupon: "10% 할인 쿠폰", discount: 700, index: 0, price: 7000, quantity: 1}]});

위 코드의 상위 3번째 행까지(`transaction_id`·`value`·`currency`)를 그림으로 표현하면 다음과 같습니다 — 맞춤 이벤트의 ‘이름 + 매개변수’ 구조와 본질적으로 같습니다.

> **다이어그램 설명:** 이건 구매야 다이어그램 — 좌측 위에 굵은 강조 박스 ‘이건 구매야!’가 있고 그 아래로 ‘거래 ID는 20240111112345678이야 / 통화는 KRW야 / 가격은 6,300원이야’ 세 회색 박스가 세로로 배치되어 있으며, 우측에 ‘EVENT’와 ‘PROPERTY’ 두 박스가 화살표로 연결된 다이어그램

‘`purchase`’가 이벤트(EVENT)이고, 거래 ID·통화·가격이 그 이벤트의 프로퍼티(PROPERTY). ‘이건 구매야!’라는 말 뒤에 ‘거래 ID·통화·금액’을 덧붙인 모양 — 맞춤 이벤트와 본질이 같습니다.

> **팁**
>
> **그런데 코드 4번째 행부터 등장하는 `items` 매개변수는 조금 특이합니다.** Key 값에 바로 Value 값이 들어가는 것이 아니라**대괄호 `[]`**가 들어가기 때문입니다. 이 ‘대괄호’ 안에는 한 상품에 대한 정보 묶음(객체)이 들어가고, 상품이 여러 개면 그 묶음이 여러 개 들어갑니다.`items`의 구조와 그 안의 데이터를 어떻게 다뤄야 하는지는 ‘[전자상거래 이벤트를 이해하기 위한 프로그래밍 지식](/wiki/playbook/ga4-event-taxonomy-checklist/ecommerce-event-programming-guide)’에서 다룹니다.

## 자주 묻는 질문

### 14개 전자상거래 이벤트를 다 설치해야 하나요?

아니요. 대부분의 사이트에서는 `purchase`·`add_to_cart`·`begin_checkout`·`view_item` 네 개를 우선 설치하고, 나머지는 사이트 구조·분석 목적·운영 인력에 따라 취사선택합니다. 특히 `view_item_list`·`select_item`·`view_promotion`·`select_promotion`처럼 영역마다 정의해야 하는 이벤트는 공수가 크므로 ‘꼭 분석할 영역만’ 정의하는 편입니다.

### `purchase`를 ‘페이지 로드’가 아니라 ‘버튼 클릭’ 시점에 보내야 한다면 어떻게 되나요?

버튼을 클릭한 뒤 외부 결제 위젯으로 이동해 사이트 밖에서 결제가 마무리되는 환경에서는 ‘페이지 로드’를 잡을 수 없어 ‘버튼 클릭 시점’을 트리거로 사용합니다. 다만 클릭만 하고 실제 결제로 이어지지 않는 사용자가 섞이므로 **매출이 과장 집계**됩니다. 정확한 집계가 필요하면 광고주 자체 서버를 통해 GA4로 데이터를 보내는 **Measurement Protocol**을 도입하는 것이 정석입니다.

### ‘프로모션 영역’인지 ‘상품 진열 영역’인지 판단이 애매할 때는?

핵심 기준은 **클릭 시 어디로 이동하는가**입니다 — 클릭하면 상품 상세 페이지로 이동하면 ‘상품 진열(list)’, 행사·기획전 같은 혜택 페이지로 이동하면 ‘프로모션(promotion)’으로 잡는 게 합리적입니다. 두 성격을 함께 가진 경우(예: 최저가를 강조한 상품 영역)는 사람이 의사결정합니다.

### 왜 전자상거래 이벤트의 매개변수는 자유 명명이 안 되나요?

GA4가 ‘수익 창출’ 리포트의 모든 측정기준·측정항목을 이 표준 매개변수에서 자동으로 가져오기 때문입니다. `item_name`을 `product_name`으로 바꾸면 그 리포트가 작동하지 않습니다 — 자동 보고서·기능을 쓰기 위한 ‘약속된 입력 규격’이라 우리가 마음대로 바꿀 수 없습니다.

### `view_item_list`의 노출 기준 ‘100% 노출 + 1초’는 꼭 그래야 하나요?

관행적인 기준이지, 필수는 아닙니다. 다만 영역마다 다른 기준을 두면 통합 분석이 어렵기 때문에 **한 사이트 안에서는 한 가지로 통일**하는 것이 권장됩니다. 모바일·PC 모두 영역이 작아 한 화면에 여러 개가 보이는 경우가 많아 이 기준이 보편적으로 자리 잡았습니다.

### `select_item`·`select_promotion`은 왜 ‘공수가 크다’고 하나요?

사이트의 모든 상품·프로모션 진열 영역을 빠짐없이 조사해 각 영역별로 이벤트 트리거를 정의해야 하기 때문입니다. `purchase`·`add_to_cart`는 ‘구매 버튼’·‘담기 버튼’ 한두 곳에 트리거를 거는 작업이지만, `select_item`은 추천 상품·베스트·카테고리 목록·연관 상품 등 수십 개 영역에 트리거를 걸어야 합니다.

## Navigation

- [전체 플레이북 Markdown sitemap](/wiki/playbook/sitemap.md)

### 이벤트 택소노미

- [이벤트 택소노미](/wiki/playbook/ga4-event-taxonomy-checklist)
- [로그와 이벤트](/wiki/playbook/ga4-event-taxonomy-checklist/what-is-logs-and-events)
- [이벤트의 구조](/wiki/playbook/ga4-event-taxonomy-checklist/what-is-event-structure)
- [이벤트 택소노미의 정의와 CASE STUDY](/wiki/playbook/ga4-event-taxonomy-checklist/ga4-event-taxonomy-case-study)
- [이벤트 택소노미 문서 — 설계 담당자용](/wiki/playbook/ga4-event-taxonomy-checklist/event-taxonomy-document-for-designers-guide)
- [이벤트 택소노미 문서 — 개발자용](/wiki/playbook/ga4-event-taxonomy-checklist/how-to-implement-event-taxonomy-for-developers)
- [Data Layer와 GTM — 이벤트 태깅의 큰 그림](/wiki/playbook/ga4-event-taxonomy-checklist/data-layer-and-gtm-guide)
- [GA4 이벤트의 종류](/wiki/playbook/ga4-event-taxonomy-checklist/what-is-ga4-event-types)
- [이벤트 이름과 표기법](/wiki/playbook/ga4-event-taxonomy-checklist/how-to-name-ga4-events)
- [주요이벤트와 서브이벤트](/wiki/playbook/ga4-event-taxonomy-checklist/key-events-vs-sub-events)
- [이벤트 이름 설계의 세분성(granularity)](/wiki/playbook/ga4-event-taxonomy-checklist/how-to-decide-event-granularity)
- [파라미터 이름과 표기법](/wiki/playbook/ga4-event-taxonomy-checklist/how-to-name-ga4-parameters)
- [파라미터의 타입(type)](/wiki/playbook/ga4-event-taxonomy-checklist/how-to-choose-ga4-parameter-types)
- [파라미터의 수준(level)](/wiki/playbook/ga4-event-taxonomy-checklist/what-is-ga4-parameter-levels)
- [GA4 맞춤 측정기준 등록하기](/wiki/playbook/ga4-event-taxonomy-checklist/how-to-register-ga4-custom-dimensions)
- [GA4 전자상거래란?](/wiki/playbook/ga4-event-taxonomy-checklist/what-is-ga4-ecommerce) (현재 문서)
- [전자상거래 이벤트를 이해하기 위한 프로그래밍 지식](/wiki/playbook/ga4-event-taxonomy-checklist/ecommerce-event-programming-guide)
- [전자상거래 리포트 100% 이해하기](/wiki/playbook/ga4-event-taxonomy-checklist/ga4-ecommerce-reports-guide)
