파라미터의 타입(type)
파라미터(parameter)는 ‘이름 : 값’의 한 쌍입니다. 그런데 ‘값’ 자리에 들어가는 데이터에도 형식(type)이 있고, 그 형식이 무엇이냐에 따라 GA4가 그 데이터로 할 수 있는 일이 달라집니다 — 합계를 낼 수 있는지, 정렬할 수 있는지, 그룹핑할 수 있는지가 결정됩니다. 이 글은 ‘값의 형식’ — 데이터 타입 — 의 기본과, GA4에 보낼 때 string으로 보낼지 number로 보낼지의 결정 기준을 정리합니다.
① 파라미터의 타입이란?
프로그래밍에서 ‘값(value)’이 가질 수 있는 형식을 ‘데이터 타입(data type)’이라고 부릅니다. JavaScript 기준으로 마케터가 알아 두면 좋은 타입은 여섯입니다.
string
따옴표로 감싼 ‘문자열’. 글자·문장·코드 등 텍스트로 다루는 값.
number
따옴표 없는 ‘숫자’. 정수와 소수 모두 포함하며 사칙연산이 가능.
boolean
참/거짓 두 값만 가짐. ‘예/아니오’ 형태의 정보.
null / undefined
‘값이 없음’ 또는 ‘정의되지 않음’. 빈 자리를 표시.
array
대괄호로 감싼 ‘여러 값을 순서대로 담은 묶음’.
object
중괄호로 감싼 ‘이름:값 쌍의 묶음’. 한 대상의 여러 속성을 담음.
위 여섯 가운데 GA4가 파라미터 값으로 공식 지원하는 것은 두 가지 — string과 number뿐입니다. 나머지(boolean·array·object)는 GA4가 직접 받지 않거나, 받더라도 string 또는 별도 구조(예: 전자상거래의 items 배열)로 변환되어 들어갑니다.
② GA4가 받는 두 가지 — string과 number
파라미터 값의 자리에 들어갈 수 있는 형식은 단 두 가지로 줄어듭니다.
나머지 타입은 어떻게 처리되나
- boolean(true/false) → string으로 변환해 보냅니다(
"true"·"false"). - array(여러 값의 묶음) → 일반 파라미터로는 못 보냅니다. 전자상거래의
items같은 정해진 자리에서만 배열 형태가 허용됩니다. - object(이름:값 쌍 묶음) → 객체 자체를 보낼 수는 없고, 안의 각 속성을 별도 파라미터로 펼쳐 보냅니다.
- null/undefined(없음) → 보내지 않는 것과 같습니다.
그래서 실제 설계할 때 던지는 질문은 단 하나입니다 — ‘이 값을 string으로 보낼까, number로 보낼까?’
③ number로 보내야 하는 값 — 계산과 정렬이 필요한 모든 수치
다음 분석 중 하나라도 하게 될 값이라면 number로 보냅니다.
- 사칙연산 — 합계, 평균, 최솟값, 최댓값 (예: 매출 합계, 평균 객단가)
- 정렬 — 내림차순(descending) · 오름차순(ascending) (예: 가격 높은 순으로 정렬)
- 구간 분석 — ‘1만원 이상 ~ 5만원 미만’ 같은 범위 그룹핑
대표적인 number 값들 — 상품 단가, 수량, 결제 금액, 배송비, 점수, 페이지 깊이, 체류 시간 등입니다. GA4에서 측정항목(metric)이 되어 표의 숫자 열에 들어가려면 number여야 합니다.
④ string으로 보내야 하는 값 — 분류·이름·코드
다음 두 조건 중 하나라도 해당하면 string으로 보냅니다.
- ‘이걸로 그룹핑(GROUP BY)’을 한다 — 상품 이름별·카테고리별·등급별 분석
- 값에 의미가 없고 식별만 한다 — 상품 ID, 사용자 ID, 거래 ID, 페이지 경로
대표적인 string 값들 — 상품 이름, 상품 ID(SKU), 카테고리, 브랜드, 회원 등급, 검색어, 페이지 URL·제목, 결제 수단 이름 등입니다. GA4에서 측정기준(dimension)이 되어 표의 ‘쪼개는 축’으로 쓰입니다.
‘이 값을 더하거나 평균 낼 일이 없다’가 핵심 판단입니다. 상품 ID 값들의 평균이 의미 없듯, 합계나 정렬이 무의미한 값은 string으로 보냅니다.
⑤ 결정 가이드 — 이 값은 string인가 number인가?
새 파라미터를 설계할 때 ‘값 자리에 무엇이 들어갈까’를 정한 다음 던지는 질문은 한 줄입니다 — “이 값을 합하거나 정렬할 일이 있는가?” 있으면 number, 없으면 string.
| 값 | 타입 | 이유 한 줄 |
|---|---|---|
| 상품 단가 (17000) | number | 합계·평균·정렬이 모두 의미 있음. |
| 수량 (1, 2, 3…) | number | 합계가 곧 ‘총 판매 수량’. |
| 총 결제 금액 (24300) | number | 매출 합계로 흐름. |
| 배송비 (3000) | number | 총 배송비·평균 배송비 분석. |
| 체류 시간(초) | number | 평균·구간 분석. |
| 스크롤 깊이 (%) | number | 평균 깊이·구간 분포. |
| 상품 이름 ("청바지") | string | 상품별 그룹핑. |
| 상품 ID ("SKU_12345") | string | 식별만 — 합·평균 의미 없음. |
| 카테고리 ("의류") | string | 분류 축. |
| 회원 등급 ("VIP") | string | 등급별 그룹핑. |
| 검색어 ("청바지") | string | 키워드별 빈도 분석. |
| 결제 수단 ("카드") | string | 수단별 그룹핑. |
| 거래 ID ("a1b2c3...") | string | 식별만 — 합·평균 의미 없음. |
| 구독 여부 (true/false) | string | boolean은 GA4에서 string으로 — "true"·"false". |
자주 묻는 질문
number로 보내야 할 가격을 실수로 string("17000")으로 보내면 어떻게 되나요?
가격·수량 같은 수치는 처음부터 number로 — 따옴표 없이 — 전송하는 것이 안전합니다. string으로 보내면 GA4에서 측정기준(dimension)으로만 잡혀 합계·평균 같은 수치 분석이 어려워질 수 있습니다.
boolean(true/false)은 어떻게 보내면 되나요?
GA4는 boolean 타입을 직접 받지 않으므로 string으로 변환해 보냅니다 — is_subscriber : "true" 또는 "yes"·"no" 형태로. 분석할 때 ‘구독자/비구독자’ 두 그룹으로 나눠 보는 것이 목적이라면 어느 표기든 일관되게만 쓰면 됩니다.
array(배열)나 object(객체)는 정말 못 보내나요?
일반 파라미터로는 못 보냅니다. 예외는 전자상거래의 items 배열 — 이 자리는 GA4가 ‘여러 상품 객체를 한 이벤트에 담기 위해’ 미리 정해 둔 자리입니다. 그 외 자리에 배열이나 객체를 넣으면 GA4가 무시하거나 일부만 잘라 받습니다. 묶음 형태의 정보가 필요하면 이름을 여러 개로 펼쳐 각각 보내는 방식이 일반적입니다.
날짜·시간 값은 string인가요 number인가요?
분석 목적에 따라 다릅니다. ‘가입 일자’처럼 그룹핑·범위 조회를 할 거라면 ISO 형식의 string("2024-08-15")이 표준이고, ‘체류 시간(초)’처럼 평균·합계를 낼 거라면 number(초 단위 정수)로 보냅니다. ‘날짜 = string·시간 길이 = number’ 정도로 기억해 두면 됩니다.
한 파라미터를 두 타입으로 동시에 보낼 수도 있나요?
이름이 같으면 GA4는 하나의 파라미터로 인식하므로 일관된 타입으로만 보냅니다. ‘가격을 숫자로도 보고 싶고 가격대(구간)로도 보고 싶다’면 두 개의 다른 이름으로 — 예: price(number) + price_band(string, "1만원대"·"2만원대") — 분리해 보냅니다.
