지금 읽는 곳데이터 레이어는 정확히 무엇을 하는 장치인가목차
STEP 2 중급·실무 › 2-4. 데이터 분석·퍼포먼스 테크 › 과목 81 › 레슨 03
데이터 레이어(Data Layer) 변수 설계: 상품명, ID, 가격, 통화(Currency) 데이터를 GA4 규격 스펙(Schema)에 맞춰 서버와 동기화하기
데이터 레이어 값을 개발팀이 임의로 정하면, GTM에서 아무리 태그를 잘 짜도 GA4 보고서는 어긋납니다.
핵심요약
- 데이터 레이어는 웹페이지와 GTM 사이에서 값을 주고받는 자바스크립트 객체(dataLayer)다
- GA4 이커머스 규격은 item_id, item_name, price, quantity, currency 등 정해진 키 이름을 요구한다
- 서버(백엔드)에서 넘겨주는 상품 데이터 스키마와 데이터 레이어 키 이름을 미리 매핑표로 맞춰야 한다
- 통화(currency)는 ISO 4217 3자리 코드(KRW, USD 등)로 통일해야 국제 거래에서 값이 꼬이지 않는다
- 데이터 레이어 설계는 개발자와 마케터가 문서 하나를 같이 보고 확정하는 협업 산출물이어야 한다
데이터 레이어는 정확히 무엇을 하는 장치인가
데이터 레이어(dataLayer)는 웹페이지의 자바스크립트 코드와 GTM 컨테이너 사이를 연결하는 임시 저장소입니다. 개발팀이 dataLayer.push({...}) 형태로 페이지 안의 상품·주문 정보를 밀어 넣으면, GTM은 그 값을 변수로 읽어와 태그(GA4 이벤트)에 실어 보냅니다. 즉 마케터가 GTM에서 직접 값을 만들어내는 게 아니라, 개발팀이 넘겨준 데이터를 "그대로 옮겨 담는" 구조라는 점이 핵심입니다.
GA4 규격 스펙은 어떤 키 이름을 요구하나
GA4의 이커머스 이벤트는 items 배열 안에 item_id, item_name, price, quantity, item_category, item_brand 같은 정해진 키 이름을 기대합니다. 개발팀이 넘겨주는 원본 데이터의 키 이름이 예를 들어 productId, productName처럼 다르게 되어 있다면, GTM 변수 단계에서 이 이름을 GA4 규격에 맞게 매핑해줘야 합니다. 이름을 맞추지 않으면 이벤트 자체는 전송되어도 GA4가 표준 이커머스 이벤트로 인식하지 못하고 커스텀 이벤트로 처리됩니다.
서버와 데이터 레이어 스키마는 어떻게 맞춰야 하나
서버(백엔드) 상품 API가 반환하는 필드명과 프론트엔드가 데이터 레이어에 넣는 키 이름, 그리고 GA4가 요구하는 규격 이름까지 세 층위가 서로 다를 수 있습니다. 실무에서는 이 세 가지를 한 장의 매핑표로 정리해 개발팀·마케터가 함께 확정하는 절차가 필요합니다. 예를 들어 서버의 product_code가 데이터 레이어에서는 sku로, GA4 전송 시에는 item_id로 바뀌는 흐름을 문서화해두면, 담당자가 바뀌어도 같은 기준으로 값을 검증할 수 있습니다.
통화(Currency) 값은 왜 별도로 관리해야 하나
GA4의 currency 매개변수는 ISO 4217 표준의 3자리 코드(KRW, USD, JPY 등)를 요구합니다. 국내 단일 통화만 다루는 쇼핑몰이라면 KRW로 고정해도 되지만, 여러 국가에 동시 판매하는 몰이라면 결제 시점의 실제 통화를 데이터 레이어에 정확히 실어야 합니다. 통화 값을 누락하거나 하드코딩으로 고정해버리면, 실제로는 달러로 결제한 매출까지 원화로 합산되어 전체 매출 지표가 왜곡됩니다.
데이터 레이어 설계는 누가 최종 확정해야 하나
데이터 레이어는 마케터 혼자 GTM에서 완성할 수 있는 영역이 아닙니다. 어떤 값을 언제(페이지 로드 시점인지 클릭 시점인지) 데이터 레이어에 밀어 넣을지는 프론트엔드 개발자의 구현 몫이고, GA4 규격에 맞게 변수를 매핑하는 것은 마케터·분석가의 몫입니다. 설계 초기에 두 역할이 같은 스펙 문서를 보고 합의하지 않으면, 태그가 배포된 뒤에야 값이 비어 있거나 형식이 안 맞는 문제를 뒤늦게 발견하게 됩니다.
실무에서 자주 발생하는 오류는 무엇인가
가장 흔한 오류는 데이터 레이어 push 시점과 GTM 트리거 실행 시점의 순서가 어긋나는 경우입니다. 페이지 스크립트가 데이터 레이어에 값을 넣기 전에 GTM 태그가 먼저 실행되면 값이 비어 있는 상태로 전송됩니다. 이럴 때는 GTM 미리보기 모드에서 데이터 레이어 변수 탭을 열어, 태그가 실행되는 시점에 실제로 원하는 값이 채워져 있는지 먼저 확인하는 습관이 필요합니다.
데이터 레이어 버전 관리는 왜 필요한가
서비스가 성장하면서 상품 구조가 바뀌거나 새로운 이벤트가 추가되면, 데이터 레이어 스키마도 함께 바뀌어야 합니다. 이때 과거 버전과 새 버전의 스키마가 혼재된 상태로 배포되면, 같은 item_category 값이 어떤 페이지에서는 옛 형식으로, 다른 페이지에서는 새 형식으로 들어오는 문제가 생길 수 있습니다. 스키마를 변경할 때는 문서에 버전 번호를 남기고, 배포 시점을 기준으로 이전·이후 데이터를 구분해서 분석할 수 있도록 팀 내에 공지하는 절차가 필요합니다.
QA 단계에서는 무엇을 검증해야 하나
새로운 데이터 레이어 스펙을 배포하기 전에는 스테이징 환경에서 GTM 미리보기 모드와 GA4 DebugView를 함께 열어, 실제 페이지 동작에 따라 값이 정확히 채워지는지 항목별로 체크리스트를 만들어 검증하는 것이 안전합니다. 특히 품절 상품, 할인 적용 상품, 옵션이 여러 개인 상품처럼 예외 케이스에서 가격(price)이나 수량(quantity) 값이 비어 있거나 잘못 계산되지 않는지를 우선적으로 확인해야 합니다. 이 검증을 건너뛰고 바로 운영 환경에 배포하면, 문제를 발견했을 때는 이미 며칠치 데이터가 왜곡된 뒤일 수 있습니다.