본문 바로가기
데이터 마케팅/GA

GA4 DataLayer 스터디

by ggu주니 2025. 10. 20.
반응형

 

GA4 DataLayer 스터디

 

 

 

1) DataLayer 는 왜 필요할까? 

1.GA4가 정해놓은 형식 (중첩된 객체 구조)을 만들어 데이터를 받기 위해서 

 

더보기

gtm을 통해 클릭,스크롤 등 이벤트 태그를 세팅하고 ga4로 보내주는 과정에는 DOM scraping 방식이 사용된다.

DOM 방식의 한계가 있는데

 

첫째. dom 에서 변수는 "값" 하나만 담을 수 있다. 

예를 들어,

 

변수1 = "사과"

변수2 = 2000

 

이렇게 변수 하나에 값 하나를 담게 된다.

 

하지만, 이커머스에는 여러 정보를 묶은 객체 단위로 데이터 수집이 필요한 경우가 많다. 

예를 들어,

 

변수3 = { 'item_name' : '사과' , 'price' : 2000 } 

 

이렇게 변수에 상품 이름과 가격 정보를 같이 담는게 필요한데 dom 으로는 불가능하다. 

 

둘째. 배열을 만들 수 없다. 

예를 들어,

items = [상품1, 상품2, 상품3]

이런 배열 형태를 만들 수 없다. 

 

셋째.중첩구조를 만들 수 없다. 

예를 들어

{'ecommerce' : {

'items' : "사과", 'price' : 2000

}

이러한 중첩 구조를 만들 수 없다. 

 

GA4 에서 요구하는 데이터 형식이 있는데 이 형식에는 중첩과 객체 구조가 필요하다. 하지만 dom 스크래핑 방식으로는 중첩과 객체 구조를 만들 수 없기 때문에 datalayer 를 사용하는 것이다. 

2. HTML 에 없는 정보들을 GA4에 보내기 위해서

더보기

전자상거래에 필요한 대부분의 정보는 화면에 안보이거나 다른 곳에 흩어져있는 경우가 많다.

예를 들어, 결제완료 페이지에 

 

<!-- 화면에 보이는 것 -->
<h1>주문이 완료되었습니다!</h1>
<p>주문번호: ORD-20251019-001</p>
<p>총 결제 금액: 50,000원</p>
더보기

 

이렇게 뜨겠지만 실무적으로 데이터 분석을 하기 위해서

GA4에 보내야 할 정보는 이것보다 많다. 

{
  transaction_id: 'ORD-20251019-001',  // ✅ HTML에 있음
  value: 50000,                        // ✅ HTML에 있음
  
  // ❌ 아래는 HTML에 없는 정보들!
  tax: 5000,              // 세금 (서버에서 계산)
  shipping: 3000,         // 배송비
  coupon: 'SUMMER20',     // 쿠폰 코드
  payment_type: 'card',   // 결제 수단
  
  items: [{
    item_id: 'SKU-001',         // 상품 고유번호
    item_name: '무선 이어폰',    // ✅ HTML에 있을 수도
    price: 89000,
    quantity: 2,
    item_category: '전자기기',   // 카테고리
    item_brand: 'Samsung'        // 브랜드
  }]
}
더보기

 

이 정보들을 DOM 스크래핑으로 모으는 것은 힘들고, 중복된 객체 구조의 데이터 그릇에 담아야 하기에 DataLayer가 필요하다 

 

3.배열 구조를 만들어야함

더보기

데이터를 보낼 때 배열 형식으로 만들어 보내야하는데 DOM 스크래핑으로는 배열 구조를 만들 수 없다.

// 상품 1개만 구매해도 배열!
items: [
  {item_name: '이어폰', price: 89000, quantity: 1}
]

4. 데이터 타입 정확성  

GA4 는 데이터 타입에 민감한데, 예를 들어 가격 정보의 경우 "50,000원" 이렇게 문자열로 수집이 되는 경우도 있다. 하지만, datalayer를 통해 정확한 타입 (숫자형)으로 ga4로 보내줄 수 있다

 

(2) DataLayer 필수 항목

ga4에 데이터를 보내기 위해서는 ga4에서 정한 양식을 꼭 지켜야 한다. 양식이 틀리면 전자상거래 보고서에 안 뜰수도 있기 때문이다.  

아래 형식에 맞춰 6개 정보를 필수로 넣어야한다. 특히! 대괄호 "[ ]"를 사용해서 items를 배열로 넣여야 한다. 

{
  'currency': 'KRW',        // 1 통화 (필수) - 한국 돈인지, 달러인지
  'value': 15000,           // 2️ 총 가격 (필수)
  'items': [{               // 3️ 상품 목록 (필수) - 대괄호[] 필수!
    'item_id': 'SKU123',    // 4 상품 고유번호 (필수)
    'item_name': '커피',     //5 상품 이름 (필수)
    'price': 15000          // 6 개별 가격 (권장)
  }]
}

 

(3)DataLayer 스펙 문서에 꼭 포함해야 하는 정보

마케터가 개발자와 소통할 때 Datalayer 스펙 문서에 꼭 포함해야 하는 정보가 있다. 

1. 이벤트명 & 발화시점 

이벤트명: purchase
발화 시점: 결제 완료 버튼 클릭 후, "주문 완료" 페이지 로드 시

 

2.데이터 구조 & 타입 정의 

{
  'transaction_id': '문자열(String)',  // 예: "ORD-12345"
  'value': 숫자(Number),              // 예: 15000 (따옴표 없음!)
  'currency': '문자열(String)'         // 예: "KRW"
}

 

3.필수/선택 파라미터 구분

[필수]
- transaction_id
- value
- currency

[선택]
- coupon (할인쿠폰 사용시)

 

4.샘플 코드

개발자에게 어떤 형식으로 코드를 짜야하는지 전달해줘야한다. 

구글에서 ga4 정확한 코드 형식을 알 수 있는 사이트도 구현해놨다. 아래 주소에서 어떤 형식으로 데이터를 수집해야하는지 정확하게 확인 가능하다

https://enhancedecommerce.appspot.com/#!GA-homepage-8835a-6:ga4Gtag 

// 실제 사용 예시
dataLayer.push({
  'event': 'purchase',
  'transaction_id': 'ORD-20251019-001',
  'value': 15000,
  'currency': 'KRW'
});

 

5. 이외에 QA 시나리오, 에러 처리 방안 등도 개발자에게 공유주면 좋다. 

 

 

 

 

 

 

반응형

'데이터 마케팅 > GA' 카테고리의 다른 글

GA4 데모계정  (2) 2023.02.21