증상: 이벤트는 잡히는데 매출 합계가 안 맞는다

Purchase 이벤트 수 자체는 정상적으로 잡히는데, 이벤트 관리자나 광고 관리자에 표시되는 매출 합계나 ROAS가 실제 매출과 눈에 띄게 다르게 나오는 경우가 있습니다. 이벤트가 "발동은 했지만 값이 제대로 안 넘어간" 상태인데, 발동 여부만 보는 진단으로는 이 문제를 잡아내기 어렵습니다. 이런 증상이 나타나면 이벤트 유무가 아니라 각 이벤트에 실려 있는 value 매개변수의 형식을 확인하는 것이 정확한 접근입니다.

value 매개변수가 문자열로 넘어가면 생기는 문제

Meta Pixel의 표준 이벤트(Purchase 등)는 value와 currency 매개변수를 함께 요구합니다. value는 숫자형(number)으로 전달돼야 하는데, 자사몰의 데이터 레이어 설계에 따라 이 값이 "15000"처럼 따옴표로 감싸진 문자열로 넘어가거나, "₩15,000"처럼 통화 기호와 쉼표가 섞인 형태로 넘어가는 경우가 실무에서 자주 발생합니다. 이렇게 형식이 어긋난 값은 메타 쪽 시스템이 정상적인 숫자로 해석하지 못해, 매출 합산 연산에서 그 이벤트가 통째로 빠지거나 0으로 처리되는 결과로 이어질 수 있습니다. 개별 이벤트 하나의 오류라면 전체 매출에 미치는 영향이 작지만, 데이터 레이어 설계 자체가 문자열로 값을 넘기도록 짜여 있다면 모든 Purchase 이벤트가 동일한 문제를 겪게 됩니다.

Pixel Helper 진단 탭에서 이 문제를 잡아내는 법

Pixel Helper의 진단(Diagnostics) 탭은 이런 형식 오류를 자동으로 표시해줍니다. 통화 코드가 3자리 ISO 표준(KRW, USD 등)이 아니거나 누락된 경우, value 값에 통화 기호·쉼표 같은 숫자가 아닌 문자가 섞인 경우를 경고로 띄웁니다. 결제완료 페이지에서 테스트 결제를 진행한 뒤 Pixel Helper를 열어 Purchase 이벤트를 클릭하면, 실제로 전송된 value·currency 값을 그대로 확인할 수 있어 데이터 레이어 값이 어떤 형태로 넘어가고 있는지 바로 확인됩니다.

원인은 대개 픽셀 코드가 아니라 데이터 레이어에 있다

이 문제를 처음 마주하면 픽셀 코드 자체를 의심하기 쉽지만, 실제 원인은 대부분 픽셀보다 앞단인 데이터 레이어(dataLayer)나 자사몰의 주문완료 페이지 렌더링 로직에 있습니다. 예를 들어 서버에서 결제 금액을 화면에 표시할 때 이미 "15,000원" 형태의 문자열로 가공해둔 값을 그대로 픽셀 코드가 가져다 쓰는 구조라면, 픽셀 코드를 아무리 고쳐도 근본 문제는 해결되지 않습니다. 해결책은 데이터 레이어 단계에서 원본 숫자값(15000)을 별도로 유지해 픽셀 호출 시점에 그 원본값을 쓰도록 데이터 흐름을 다시 설계하는 것입니다.

정수형 변환 시 흔히 놓치는 함정

자바스크립트에서 문자열을 숫자로 변환할 때 parseInt()Number()를 쓰는 경우가 많은데, 쉼표나 통화 기호가 섞인 문자열("₩15,000")을 그대로 parseInt()에 넣으면 첫 번째 숫자가 아닌 문자를 만나는 순간 변환이 멈춰버려 의도와 다른 값(15)이 나올 수 있습니다. 정확하게 변환하려면 정규식으로 숫자가 아닌 문자를 먼저 제거한 뒤(replace(/[^0-9.]/g, '')) 숫자형으로 변환하는 순서가 필요합니다. 소수점 이하 자리가 있는 상품(할인율 적용 등)이라면 정수형(Integer)이 아니라 실수형(Float) 변환이 맞는 경우도 있어, 단순히 "정수로만 바꾸면 된다"고 일반화하지 말고 상품 가격 체계에 맞는 변환 방식을 확인해야 합니다.

수정 후 검증까지가 작업의 끝이다

코드를 고친 뒤에는 반드시 실제 결제(또는 테스트 결제)를 다시 진행해 Pixel Helper와 이벤트 관리자 테스트 이벤트 탭에서 value 값이 순수 숫자로 정상 전달되는지 확인해야 합니다. 수정이 배포된 이후 발생한 신규 주문분부터 값이 정상화되며, 이미 잘못 집계된 과거 데이터는 소급 정정되지 않는다는 점도 팀 내에 공유해둘 필요가 있습니다. 매출 리포트를 볼 때는 수정 배포 시점 이전과 이후 데이터를 구분해서 보는 것이 혼선을 줄입니다. CAPI를 함께 운영하고 있다면 서버 쪽 페이로드에서도 같은 형식 오류가 반복되고 있지 않은지 별도로 점검해야 합니다 — 프론트엔드 픽셀만 고치고 서버 쪽 CAPI 값은 여전히 문자열로 넘어가고 있다면, 두 경로에서 서로 다른 값이 들어와 중복 제거 이후에도 매출 합계가 어긋나는 새로운 문제가 생길 수 있습니다.