ChatGPT 광고 전환 측정 설치 가이드: 공식 규격으로 정리한 절차
📖 약 6분 읽기
ChatGPT 광고를 이미 집행 중이거나 집행을 검토하고 계신다면, 한 번쯤 이런 질문을 마주하셨을 겁니다. “이 광고가 실제로 매출이나 리드로 이어졌는지 어떻게 확인하지?” 검색 광고나 소셜 광고라면 국내에도 참고할 자료가 쌓여 있지만, ChatGPT 광고는 아직 다릅니다. 국내에 전환 측정을 다룬 선행 문서가 거의 없어서, 계정을 만들고 캠페인을 켜 놓고도 전환이 제대로 잡히는지 확신하기 어려운 상태로 운영하는 경우가 많습니다. 이 글은 그 공백을 메우기 위해, OpenAI가 공개한 개발자 문서를 근거로 삼아 설치 절차와 규격을 정리했습니다.
먼저 밝혀 둘 부분이 있습니다. 이 글에 담긴 모든 규격은 OpenAI 공식 개발자 문서에서 인용했으며, 2026년 9월 16일에 확인한 내용입니다. Measurement Pixel, Supported Events, Conversions API, Conversion Setup, Conversion Tracking 다섯 편의 문서를 근거로 삼았고, 자사 계정에서 직접 설치하고 발화를 확인한 기록은 아닙니다. 문서에 없는 내용은 추정해서 채우지 않고, 확인하지 못했다고 그대로 적었습니다. 태그 설치를 다루는 글에서 근거를 흐릿하게 두면 나중에 데이터를 신뢰할 수 없게 되기 때문에, 인용 범위를 분명히 밝히는 편이 낫다고 판단했습니다.
측정 경로는 두 갈래입니다
ChatGPT 광고의 전환 측정은 브라우저에서 보내는 측정 픽셀과 서버에서 보내는 전환 API, 이렇게 두 갈래로 나뉩니다. 이 구조 자체는 낯설지 않습니다. 다른 광고 매체에서도 브라우저 픽셀만으로는 쿠키 차단이나 광고 차단 확장 프로그램 때문에 전환이 누락되는 일이 흔했고, 그 보완책으로 서버 사이드 전송 방식이 자리를 잡았습니다. ChatGPT 광고도 같은 이유로 두 경로를 함께 쓰는 구성을 공식적으로 권장합니다.
다만 문서는 역할 분담을 분명히 그어 두었습니다. “Always use the pixel on the browser. Do not call the server conversions API directly from page code.” 페이지 코드에서 전환 API를 직접 호출하지 말라는 뜻입니다. 브라우저에서 일어나는 일은 픽셀이 담당하고, 전환 API는 서버 환경에서만 호출합니다. 이 구분을 넘겨짚고 페이지 스크립트에서 서버 API를 바로 부르면, 인증 키가 클라이언트 코드에 노출되는 문제로 이어질 수 있어 문서가 미리 선을 그은 것으로 읽힙니다.

설치는 세 단계로 진행합니다
경로를 이해했다면 다음은 실제로 붙이는 절차입니다. 문서가 안내하는 흐름은 크게 세 단계로 나뉘는데, 순서를 지키지 않으면 초반 방문 데이터를 놓치는 문제가 생길 수 있어 순서 자체도 함께 챙겨야 합니다.
첫째, 픽셀 ID를 만듭니다. Ads Manager의 conversions 탭에서 새 Pixel ID를 생성합니다. 전환 설정에서 소스를 만들 때 이름은 3자 이상 1,000자 이하로 정하고, client_type은 web으로 지정합니다. 이름 규칙이 까다로워 보이지 않지만, 여러 사이트나 브랜드를 함께 운영하는 조직이라면 나중에 어떤 픽셀이 어떤 랜딩페이지용인지 구분할 수 있도록 처음부터 명명 규칙을 정해 두는 편이 좋습니다.
둘째, 설치 코드를 넣습니다. 스크립트는 전환을 잡을 모든 페이지의 head 태그 안에 넣되, 문서는 head 위쪽에 두라고 안내합니다. 다른 스크립트나 스타일시트가 로드되는 동안에도 이른 시점의 전환을 놓치지 않기 위해서입니다. 예를 들어 결제 완료 페이지에 무거운 이미지나 외부 위젯 스크립트가 먼저 걸려 있으면, 그 로딩이 끝나기 전에 사용자가 페이지를 이탈해 버릴 수 있는데, 픽셀 초기화 코드를 head 상단에 두면 이런 상황에서도 전환 신호를 먼저 확보할 가능성이 높아집니다. 초기화 코드는 다음과 같은 형태입니다.
oaiq("init", { pixelId: "<YOUR-PIXEL-ID>" });
셋째, 전환이 일어나는 자리에서 이벤트를 보냅니다. 호출 형태는 oaiq(“measure”, eventName, eventData, options) 입니다. 여기서 eventData 객체 안에는 그 이벤트의 데이터 형태와 맞는 type 항목이 반드시 들어가야 합니다. options는 맞춤 이벤트에서는 필수이고 표준 이벤트에서는 선택 사항입니다. 이 세 단계를 마치면 브라우저 쪽 측정은 일단 완성됩니다.

표준 이벤트는 열세 가지, 형태별로 나뉩니다
이벤트를 아무 이름이나 정해서 보내면 최적화에 활용하기 어렵습니다. OpenAI는 데이터 형태별로 묶인 표준 이벤트 13종을 정의해 두었고, 이 이름을 그대로 쓰는 것이 권장됩니다. 형태별로 정리하면 다음과 같습니다.
contents 형태에는 page_viewed(중요한 페이지를 보았을 때), contents_viewed(상품·목록·기사 같은 콘텐츠 단위를 보았을 때), items_added(장바구니나 묶음, 선택에 담았을 때), checkout_started(결제를 시작했을 때), order_created(구매가 완료되었을 때)가 속합니다. 이커머스 사이트라면 이 다섯 개만으로도 유입부터 구매까지의 여정을 단계별로 잡을 수 있습니다.
customer_action 형태에는 lead_created(상담 문의나 리드 양식을 제출했을 때), appointment_scheduled(미팅이나 시연, 상담을 예약했을 때), registration_completed(계정이나 행사 등록을 마쳤을 때), app_installed, app_opened가 있습니다. B2B 서비스나 리드 생성 중심 비즈니스는 이 쪽 이벤트를 핵심 전환으로 삼는 경우가 많습니다.
plan_enrollment 형태에는 subscription_created(유료 구독이 시작되었을 때)와 trial_started(무료 체험이 시작되었을 때)가 있고, 구독형 서비스에서 유용합니다. 마지막으로 custom 형태의 custom 이벤트는 표준 분류에 없는 사용자 정의 이벤트를 담습니다.
맞춤 이벤트에는 분명한 제약이 있습니다. 문서는 “Custom events cannot be used for conversion optimization”이라고 명시합니다. 전환 최적화에 쓸 수 없다는 뜻이므로, 광고 시스템이 학습하고 최적화할 전환은 반드시 표준 이벤트 중에서 골라야 합니다. 맞춤 이벤트는 참고용 지표로만 남겨 두는 편이 안전합니다.
| 데이터 형태 | 이벤트 이름 | 언제 보내는가 |
|---|---|---|
| contents | page_viewed |
중요한 페이지를 보았을 때 |
contents_viewed |
상품 · 목록 · 기사 같은 콘텐츠 단위를 보았을 때 | |
items_added |
장바구니 · 묶음 · 선택에 담았을 때 | |
checkout_started |
결제를 시작했을 때 | |
order_created |
구매가 완료되었을 때 | |
| customer_action | lead_created |
상담 문의나 리드 양식을 제출했을 때 |
appointment_scheduled |
미팅 · 시연 · 상담을 예약했을 때 | |
registration_completed |
계정이나 행사 등록을 마쳤을 때 | |
app_installed |
앱을 설치했을 때 | |
app_opened |
앱을 열었을 때 | |
| plan_enrollment | subscription_created |
유료 구독이 시작되었을 때 |
trial_started |
무료 체험이 시작되었을 때 | |
| custom | custom |
표준 분류에 없는 사용자 정의 이벤트. 전환 최적화에는 쓸 수 없음 |
표준 이벤트 13종과 데이터 형태 (OpenAI 공식 문서, 2026-09-16 확인)
금액은 최소 화폐 단위 정수로 보내야 합니다
이벤트에 amount를 넣으려면 currency도 함께 넣어야 하고, 금액은 해당 통화의 ISO 4217 최소 단위 정수로 보내야 합니다. 문서가 든 예시는 미국 달러 129.99를 12999로 보내는 경우입니다. 달러는 소수점 아래 두 자리(센트)까지 있는 통화라서 100을 곱한 정수로 변환하는 것입니다.
여기서 국내 사이트가 주의해야 할 지점이 나옵니다. 원화는 ISO 4217 기준으로 소수 자릿수가 0인 통화입니다. 즉 100을 곱할 필요가 없다는 뜻입니다. 이 규칙을 그대로 적용하면 5만 원짜리 상품은 amount를 50000으로 보내면 됩니다. 만약 달러 방식을 그대로 따라 해서 100을 곱해 5000000으로 보내면, 광고 리포트에는 매출이 100배로 부풀려져 나타납니다. 태깅 작업에서 이런 실수는 눈에 잘 띄지 않다가, 나중에 매체 리포트와 실제 매출 데이터를 대조할 때야 발견되는 경우가 많으므로 설치 초기에 반드시 값을 확인해 두어야 합니다.
전환 설정에 들어가는 항목을 정리합니다
이벤트 설정을 만들 때 입력하는 값은 다섯 가지입니다. 이름, 이벤트 종류(표준 이벤트 또는 custom), 맞춤 이벤트일 때만 쓰는 custom_event_name, 기여 기간을 뜻하는 attribution_window_days(문서 권장값은 30), 그리고 연결할 소스입니다. 소스는 정확히 하나만 연결할 수 있습니다. 하나의 전환 설정에 여러 소스를 걸어 두고 싶은 마음이 들 수 있지만, 문서 규격상 불가능하므로 소스별로 전환 설정을 따로 만들어야 합니다.
픽셀과 전환 API를 함께 쓸 때는 중복 제거가 관건입니다
같은 전환 이벤트를 픽셀과 전환 API 양쪽으로 각각 보내면, 시스템이 이를 서로 다른 두 건의 전환으로 집계할 위험이 있습니다. 이를 막는 방법은 간단합니다. 전환 API의 id와 픽셀의 event_id에 동일한 값을 넣는 것입니다. 맞춤 이벤트라면 custom_event_name도 양쪽을 똑같이 맞춰야 합니다. 중복 여부는 Pixel ID, 이벤트 이름, 그리고 이 식별자 세 가지를 함께 확인해서 판정됩니다. 하나라도 어긋나면 중복 제거가 정상적으로 작동하지 않을 수 있으므로, 개발 단계에서 이 세 값을 나란히 놓고 점검하는 과정이 필요합니다.
참고로 전환 API 이벤트에 반드시 들어가야 하는 값은 id, type, timestamp_ms(밀리초 단위 정수 유닉스 시각), data 네 가지입니다. 이 중 하나라도 빠지면 이벤트 자체가 정상적으로 수신되지 않을 수 있습니다.
되돌릴 수 없는 선택이 있다는 점을 기억해야 합니다
ChatGPT 광고를 다른 매체와 비교했을 때 가장 낯선 부분이 여기입니다. 캠페인 목적은 만든 뒤에 바꿀 수 없습니다. 그리고 전환 최적화 캠페인이라면 고른 이벤트 설정도 이후에 바꿀 수 없습니다. 검색 광고나 소셜 광고에 익숙한 담당자라면 캠페인을 만든 뒤에도 최적화 이벤트를 이리저리 바꿔 가며 테스트하는 방식에 익숙할 텐데, ChatGPT 광고는 그런 실험을 캠페인 생성 이후에는 허용하지 않습니다. 그래서 캠페인을 만들기 전 단계에서 어떤 이벤트를 성과 기준으로 삼을지 미리 정해 두는 작업이 다른 매체보다 훨씬 중요합니다. order_created를 기준으로 최적화할지, lead_created를 기준으로 최적화할지에 따라 광고 학습 방향이 달라지므로, 비즈니스 목표와 맞는 이벤트를 신중하게 골라야 합니다.
동의 처리와 기여 기간도 확인해 둡니다
픽셀은 초기화 전에 oaiq(“consent”, boolean) 호출로 동의 여부를 전달할 수 있습니다. 별도로 지정하지 않으면 동의 값은 true로 두고 시작합니다. 국내 개인정보 처리 방침과 맞춰 운영하려면, 쿠키 동의 배너의 선택 결과를 이 값에 명시적으로 연결해 두는 편이 안전합니다.
기여 기간 쪽은 클릭과 노출을 다르게 다룹니다. 클릭 기여는 설정한 클릭 기간 값을 따르지만, 노출 기여는 광고 노출 이후 하루로 고정되어 있습니다. 이 값은 설정 화면에서 늘리거나 줄일 수 있는 항목이 아니므로, 노출형 캠페인의 성과를 볼 때는 이 하루라는 기준을 감안해서 해석해야 합니다.
GTM으로 관리한다면 컨테이너를 나누는 편이 낫습니다
구글 태그 매니저로 여러 매체의 태그를 함께 관리하는 조직이라면, ChatGPT 광고 픽셀도 같은 컨테이너에 넣고 싶은 유혹이 생길 수 있습니다. 다만 기존 측정 체계와 섞이지 않도록 컨테이너나 태그를 구분해 두는 편이 관리상 낫습니다. 이 항목은 OpenAI 공식 문서가 직접 다루는 내용은 아니며, 여러 매체 태그를 다뤄 온 경험에서 나온 일반적인 태그 관리 원칙으로 제안하는 것입니다.
문서에 없어 확인하지 못한 두 가지
이 글을 준비하면서 찾아보았지만 인용한 다섯 편의 문서에서 답을 찾지 못한 부분이 두 가지 있습니다. 하나는 만든 픽셀이나 이벤트 설정을 지우는 방법입니다. 다른 하나는 광고 계정 화면에 전환이 반영되기까지 걸리는 시간입니다. 두 가지 모두 실무에서 자주 물어볼 만한 질문이지만, 근거 없이 추정해서 적어 두면 나중에 혼선을 줄 수 있어 이번 글에는 담지 않았습니다. 공식 문서가 업데이트되거나 별도로 확인되는 대로 정리하겠습니다.
마무리
새로운 광고 채널이 등장할 때마다 해 온 작업은 크게 다르지 않습니다. 그 매체가 정의한 이벤트 규격을 읽고, 기존 태깅 표준 구조에 맞춰 붙이고, 데이터가 제대로 잡히는지 확인하는 과정입니다. ChatGPT 광고도 이 흐름에서 벗어나지 않지만, 이벤트 이름을 무엇으로 잡을지, 금액 단위를 어떻게 맞출지, 캠페인 목적을 어떤 이벤트 기준으로 정할지는 한 번 정하면 되돌리기 어려운 선택입니다. 그래서 다른 매체보다 설치 전 설계 단계에 시간을 조금 더 들이는 편이 결과적으로 비용을 줄이는 방법입니다.
ChatGPT 광고 전환 태깅을 처음부터 정확히 설계하고 싶으시다면, 설치 전 이벤트 구조 설계부터 함께 점검해 드립니다.



