ChatGPT가 광고를 제공하는 방식
3 hours ago
1
- ChatGPT 응답 스트림에는 모델 출력과 함께 광고 유닛 객체가 섞여 들어오며, SSE의 delta 이벤트로 single_advertiser_ad_unit 형태가 전달됨
- 광고 카드의 이미지와 favicon은 bzrcdn.openai.com 에서 로드되고, target.open_externally: false 링크는 ChatGPT 내부 웹뷰에서 열려 클릭 이후 merchant 페이지 이동까지 같은 흐름 안에서 이어짐
- 같은 계정에서도 대화 주제에 따라 서로 다른 광고주가 붙으며, 베이징 여행·항공편·NBA 플레이오프·패션·생산성 같은 맥락에 맞춰 Grubhub, GetYourGuide, Axel, Gametime, Aritzia, Canva가 각각 관찰됨
- 광고와 클릭 URL에는 Fernet 토큰 기반 식별값이 함께 전달되고, ads_spam_integrity_payload, oppref, olref, ad_data_token이 클릭 무결성 확인과 식별 흐름에 쓰이며 oppref는 __oppref 쿠키로 30일 저장됨
- merchant 페이지는 OAIQ SDK 를 불러 measure 이벤트를 bzr.openai.com으로 전송하며, ChatGPT 클릭 뒤 merchant 측 이벤트가 다시 OpenAI로 돌아가는 어트리뷰션 루프가 완성됨
광고 삽입과 클릭 흐름
- ChatGPT 응답 스트림에는 모델 출력과 함께 single_advertiser_ad_unit 형태의 광고 객체가 섞여 들어옴
- 대화 요청 시 chatgpt.com/backend-api/f/conversation에서 SSE 응답이 열리며, 일부 delta 이벤트로 광고 유닛이 전달됨
- 광고 객체에는 ads_request_id, ads_spam_integrity_payload, advertiser_brand, carousel_cards, ad_data_token 등이 포함됨
- advertiser_brand.id는 adacct_<32-hex> 형식의 merchant 계정 식별자로 보임
- 광고 카드의 브랜드 favicon과 이미지가 모두 bzrcdn.openai.com 에서 로드됨
- 광고 크리에이티브를 merchant가 아니라 OpenAI 쪽에서 호스팅하는 구조가 드러남
- target.open_externally: false 인 링크는 ChatGPT 내부 웹뷰에서 열림
- 클릭 뒤 merchant 페이지로 이동하는 흐름도 OpenAI가 직접 관찰할 수 있게 됨
- 클릭 URL에는 utm_source=chatgptpilot 같은 파라미터와 함께 oppref, olref 가 붙음
타게팅과 어트리뷰션 체인
- 같은 계정에서도 대화 주제에 따라 서로 다른 광고주가 전달됨
- 베이징 여행 계획에는 Grubhub의 "Get Chinese Food Delivered"가 붙음
- 베이징 투어 예약에는 GetYourGuide의 Great Wall tour와 ad_id=beijing003가 붙음
- 베이징 항공편에는 Axel과 utm_term=vflight_beijing_03가 붙음
- NBA 플레이오프에는 Gametime과 utm_campaign=nba&utm_content=playoffs가 붙음
- 봄 패션과 트렌드에는 Aritzia와 utm_campaign=chatgptpilot_trav3가 붙음
- 생산성과 슬라이드 관련 대화에는 Canva와 utm_campaign=…link-clicks_products가 붙음
- 이 관찰에서는 대화 맥락 기반 타게팅이 드러남
- 이전 대화 기록까지 반영하는지는 확인되지 않음
- 광고마다 네 개의 Fernet 토큰이 함께 전달됨
- ads_spam_integrity_payload는 SSE 안에만 들어가며, 위조 클릭에 대한 서버 측 무결성 검사에 쓰이는 값으로 정리됨
- oppref는 클릭 URL에 붙고 OAIQ SDK가 이를 __oppref 쿠키로 복사해 720시간, 30일 TTL로 저장함
- olref는 oppref와 함께 클릭 URL에 붙지만, 관찰된 SDK에서는 저장되지 않음
- ad_data_token은 base64로 감싼 JSON 안에 또 다른 Fernet 토큰을 담는 구조임
- Fernet 토큰의 첫 9바이트는 공개 형식이라 발급 시각을 키 없이 복원할 수 있음
- 버전 바이트 0x80 과 8바이트 big-endian Unix timestamp가 포함됨
- 포착된 Home Depot 클릭 URL은 2026-04-26 11:30:08 UTC에 발급됐고, 브라우저가 merchant 페이지를 가져온 시각은 11:31:43으로 95초 지연이 계산됨
merchant 측 추적 SDK
- merchant 페이지는 OAIQ SDK https://bzrcdn.openai.com/sdk/oaiq.min.js 를 로드함
- 관찰된 버전은 0.1.3 임
- 초기화 코드는 oaiq('init', { pid: '<merchant pixel ID>' }); 형태로 들어감
- 페이지 측정은 oaiq('measure', 'contents_viewed', { ... }); 형태로 호출됨
- init 시점에 OAIQ는 URL의 ?oppref= 값을 읽어 __oppref 1st-party 쿠키로 기록함
- 함께 __oaiq_domain_probe 쿠키도 설정함
- 이후 모든 measure 호출은 JSON을 &st=oaiq-web&sv=0.1.3">https://bzr.openai.com/v1/sdk/… 로 POST함
- 클릭 이후 merchant 측 이벤트가 OpenAI로 되돌아가는 어트리뷰션 루프가 완성됨
- 차단이나 점검 대상으로는 두 도메인과 두 쿠키가 직접 제시됨
-
bzrcdn.openai.com,bzr.openai.com
- __oppref, __oaiq_domain_probe
-
Homepage
-
Tech blog
- ChatGPT가 광고를 제공하는 방식