지금 읽는 곳어떤 이벤트를 먼저 심어야 매출 리포트가 서나목차
S2 › 데이터 측정 및 분석 인프라 › 과목 226 › 레슨 01
GA4 전자상거래 이벤트 세팅: 간편결제 우회 유입으로 소스/매체 오염 막는 정석 GTM 스크립트
이벤트를 심는 작업과 결제 도메인을 다녀온 뒤 소스를 지키는 작업은 순서가 다른 별개의 설정입니다.
핵심요약
- GA4 전자상거래 이벤트는 14종이 정의돼 있고, 매출 리포트의 뼈대가 되는 것은 view_item, add_to_cart, begin_checkout, purchase 네 개다
- purchase의 필수 매개변수는 currency, value, transaction_id, items이며 value를 설정하면 currency가 필수다
- 값은 데이터레이어에 push하고 GTM 맞춤 이벤트 트리거로 태그를 거는 것이 표준 경로다
- 결제 도메인을 다녀온 뒤 소스가 갈리는 문제는 참조 제외와 교차 도메인 설정 두 가지로 나눠 처리한다
- 트래픽 획득 보고서는 session_start 시점의 유입 경로를 기록하므로, 결제 도중 세션이 새로 시작되면 그 순간의 소스가 남는다
어떤 이벤트를 먼저 심어야 매출 리포트가 서나
구글 전자상거래 구현 가이드가 정의하는 이벤트는 view_item_list, select_item, view_item, add_to_cart, add_to_wishlist, view_cart, remove_from_cart, begin_checkout, add_shipping_info, add_payment_info, purchase, refund, view_promotion, select_promotion 열네 가지입니다. 열네 개를 한 번에 심을 필요는 없습니다. 매출 리포트와 퍼널이 서려면 상품 조회, 장바구니 담기, 결제 시작, 구매 네 개가 먼저 있어야 하고 나머지는 그 위에 붙습니다. 환불 처리를 리포트에 반영할 계획이 있다면 refund까지 다섯 개를 1차 범위로 잡습니다.
값의 구성은 문서마다 표현이 조금 다릅니다. 구글 개발자 문서의 이벤트 레퍼런스는 purchase의 필수 매개변수를 currency(3자리 ISO 4217 통화코드), value, transaction_id, items로 규정하고, items 배열 안에서는 item_id 또는 item_name 중 하나만 필수로 표기합니다. 반면 GA4 고객센터의 전자상거래 구매 보고서 문서는 item_id, item_name, price, quantity 네 값을 필수로 안내하고, 필수 매개변수가 빠지면 이벤트가 커스텀 이벤트로 처리돼 전자상거래 보고서에 나타나지 않는다고 설명합니다. 실무 결론은 하나로 모입니다. 네 값을 모두 채우는 편이 안전합니다. transaction_id는 구매와 환불 양쪽에 필수이므로 어떤 경우에도 비워두지 않습니다.
값은 어디에 담아 GTM으로 넘기나
데이터레이어는 페이지의 데이터를 GTM의 태그, 트리거, 변수로 전달하는 임시 저장소이고 키와 값 쌍으로 구성됩니다. 사용자의 특정 행동이 발생할 때 push 명령으로 데이터를 넣으면, GTM은 객체가 추가되는 순간을 감지해 설정된 트리거에 따라 태그를 실행합니다.
그래서 정석 순서는 세 단계로 고정됩니다. 첫째, 쇼핑몰 쪽에서 각 지점마다 이벤트 이름과 전자상거래 값(currency, value, transaction_id, items)을 데이터레이어에 push합니다. 둘째, GTM에서 그 이벤트 이름을 조건으로 하는 맞춤 이벤트 트리거를 만듭니다. 트리거는 페이지 로드, 클릭, 스크롤 같은 이벤트를 수신해 조건을 충족하면 연결된 태그를 실행하는 장치입니다. 셋째, 데이터레이어 변수로 값을 꺼내 태그의 매개변수에 매핑합니다. 변수는 상품 이름, 가격처럼 바뀌는 값을 담는 자리표시자 역할을 합니다.
이 순서를 건너뛰고 페이지 URL 조건만으로 구매 태그를 거는 구성이 종종 보입니다. URL은 값이 아니라 위치일 뿐이라 금액과 거래 ID를 실어 보낼 수 없고, 결제 완료 페이지 주소가 바뀌는 순간 전부 멈춥니다.
간편결제 도메인을 다녀오면 소스가 왜 갈리나
GA4는 페이지뷰를 포함한 모든 상호작용을 이벤트 하나의 구조로 수집하고, 세션도 session_start라는 이벤트로 파생된 개념입니다. 트래픽 획득 보고서는 세션 기준으로 집계되며 session_start가 발생한 시점의 유입 경로를 보여줍니다.
결제 과정에서 사용자가 자사몰을 떠나 결제 대행 도메인으로 갔다가 돌아오면, 돌아오는 그 요청의 리퍼러가 결제 도메인이 됩니다. GA4는 이를 새 추천 유입으로 읽고, 그 시점에 세션이 새로 시작되면 구매 이벤트에는 처음 들어온 광고가 아니라 결제사가 소스로 붙습니다. 리퍼러도 UTM도 없는 형태로 돌아오면 (direct)/(none)으로 흘러갑니다. 이 값은 주소창 직접 입력, 메신저와 이메일 앱 안의 링크, 리다이렉션 과정에서 파라미터가 유실된 경우에 발생하는 분류입니다.
증상은 리포트에서 특정 결제사 이름이 상위 유입 소스에 올라오거나, 광고 매체의 전환수와 GA4 매체별 매출이 계속 벌어지는 형태로 나타납니다.
소스 오염은 어떤 설정으로 막나
두 갈래로 나눠 처리합니다. 첫째, 결제 대행 도메인을 참조 목록에서 빼는 것입니다. 결제 완료 후 결제사 페이지를 거쳐 자사몰로 돌아올 때 새 유입으로 잡히는 문제는, 태그 설정 구성의 모두 표시에서 원치 않는 추천 나열에 해당 도메인을 등록해 처리합니다. 여기 등록할 도메인 목록은 추측하지 말고, 결제 수단별로 실제 결제를 한 번씩 밟으면서 브라우저 주소창에 나타나는 도메인을 그대로 적어 만듭니다.
둘째, 자사가 여러 도메인을 쓰는 경우의 교차 도메인 측정입니다. 웹 스트림 세부정보의 태그 설정 구성에서 도메인 구성으로 들어가면 같은 구글 태그를 심은 도메인이 자동으로 추천되고, 조건에 맞는 도메인을 수동으로 추가할 수도 있습니다. 내부적으로는 URL에 붙는 _gl 파라미터로 클라이언트 ID를 도메인 사이에 넘겨 세션이 끊기지 않게 합니다. 참조 제외는 남의 도메인을 무시하는 설정이고 교차 도메인은 내 도메인끼리 잇는 설정이라, 둘을 바꿔 쓰면 증상이 그대로 남습니다.
이름과 개수에는 어떤 제약이 걸리나
설계 단계에서 미리 알아야 나중에 갈아엎지 않습니다. 이벤트 이름은 40자 이내, 이벤트당 매개변수는 최대 25개, 매개변수 이름은 40자 이내, 값은 일반적으로 100자이고 특수 매개변수만 최대 1,000자입니다. 사용자당 일일 이벤트 수 제한은 100,000개, 일일 전환 제한은 10,000개입니다. 주요 이벤트로 표시할 수 있는 개수는 표준 속성 30개, 360 속성 50개입니다.
이름을 지을 때는 추천 이벤트와 커스텀 이벤트의 차이를 먼저 봅니다. 추천 이벤트는 구글이 미리 정의한 이름과 매개변수 구조를 따르므로 내장 보고서에 자동으로 매핑되지만, 커스텀 이벤트는 보고서를 손으로 구성해야 합니다. 구매를 purchase가 아닌 다른 이름으로 심으면 전자상거래 보고서 쪽으로는 영영 붙지 않습니다. 그리고 주요 이벤트로 표시한 기여도는 설정 시점부터만 조회되고 과거 데이터에 소급되지 않으므로, 표시 설정은 이벤트를 심는 날 함께 끝내는 편이 낫습니다.