ChatGPT가 광고 픽셀로 다른 사이트 행동까지 계정에 연결한다
ChatGPT now knows what you do on other websites via ad collector
TL;DR Highlight
OpenAI 광고 픽셀의 __obi 쿠키가 타 사이트 활동을 ChatGPT 계정과 잇는다
Who Should Read
자사 사이트에 광고·전환 픽셀을 넣거나 ChatGPT 광고를 검토하는 웹·백엔드 개발자
Core Mechanics
- __obi 쿠키가 계정과 묶인다
- ChatGPT가 16바이트 난수로 식별자를 만들고 60초짜리 서명 토큰(JWT)에 계정과 함께 담는다.
- 이 값이 bzr.openai.com에서 .openai.com 도메인 쿠키로 심어지고 유효기간은 1년이다.
- 쿠키는 광고주 사이트로 흘러간다
- 광고주가 OpenAI 코드를 사이트에 넣으면 __obi가 페이지 정보와 함께 OpenAI로 전송된다.
- 저자는 구매 행동과 검색 상품, 읽는 글이 여기에 포함된다고 쓴다.
- 스크립트만 불러도 쿠키가 나간다
- SDK에 쿠키를 빼는 경로가 있지만 소용없다.
- 브라우저가 SDK 스크립트(oaiq.min.js)를 받는 요청에 이미 쿠키를 붙이기 때문이다.
- 폼과 페이지에서 신원을 긁어 간다
- 관찰된 트래픽에서 SDK가 긁은 신원은 685건, 광고주가 직접 넘긴 신원은 255건이었다.
- 이메일·전화·이름은 SHA-256 해시로, 국가·지역·도시·우편번호는 평문으로 전송된다.
- 로그아웃해도 작동한다
- 디코딩한 토큰 932개 중 736개는 account_user, 196개는 anonymous였다.
- 익명 식별자도 기기당 하나로 최소 27일 유지됐다.
Community Reactions
- 브라우저별 차단 정보가 공유됐다
- Firefox, Brave, Safari는 막고 Chrome과 Edge는 못 막는다는 의견이 있었다.
- 쿠키 파티셔닝(사이트별로 쿠키 저장소 분리)이 엄격하면 계정과 광고 조회가 연결되지 않는다는 의견도 있었다.
- DNS 차단을 쓴다는 경험이 있었다
- Hagezi 블랙리스트를 쓰는 DNS 서버가 bzr.openai.com에 NXDOMAIN을 돌려준다는 경험이 올라왔다.
- uBlock Origin과 Privacy Badger 조합을 권하는 의견도 있었다.
- 기술은 낡았지만 맥락이 다르다는 의견이 많았다
- Facebook이 하던 표준 애드테크와 같다는 반응이 있었다.
- AI 챗봇에는 더 사적인 대화를 하고 유료 구독까지 한다는 점이 불편하다는 의견이 나왔다.
- ChatGPT 광고 추적기가 늘고 있다는 정보가 나왔다
- Bloomberry 데이터상 ChatGPT 광고 추적기가 있는 사이트 수가 지난달 대비 두 배가 될 추세라는 댓글이 있었다.
- 이 현상이 4월부터 보도됐다는 AdExchanger 링크도 공유됐다.
How to Apply
- 브라우저 네트워크 탭에서 __obi 확인하기
- 오늘 Chrome 개발자 도구에서 광고주 사이트를 열고 bzrcdn.openai.com과 bzr.openai.com 요청을 필터링하라.
- 요청 헤더에 __obi 쿠키가 붙는지 확인하라.
- 자사 사이트의 서드파티 픽셀 목록 점검하기
- 태그 매니저에 OpenAI 픽셀(oaiq)이 들어 있는지 찾고, 자동 매칭 설정을 Ads Manager에서 확인하라.
- 신원 자동 수집이 필요 없으면 끄라.
- 민감한 경로에서 픽셀 제외하기
- 의료·대출·소송 문의처럼 URL 경로만으로 민감 정보가 드러나는 페이지에는 픽셀을 로드하지 마라.
- 원문은 URL이 origin+path로 전송되고 이런 경로가 수집됐다고 밝힌다.
- 동의 문구와 쿠키 정책 갱신하기
- 방문자 동의 배너에서 OpenAI 픽셀을 분석이 아닌 마케팅 범주로 분류하라.
- 방문자에게 ChatGPT 계정 연결 가능성을 고지하라.
Try It
# 브라우저 콘솔(F12)에 붙여넣기: 현재 페이지가 OpenAI 픽셀을 불러왔는지 확인하는 간이 점검
performance.getEntriesByType('resource').map(r => r.name).filter(n => /openai\.com/.test(n)).forEach(n => console.log(n));
// bzrcdn.openai.com/sdk/oaiq.min.js 또는 bzr.openai.com/v1/sdk/events 가 나오면 픽셀이 로드된 것이다.
// 이어서: 네트워크 탭에서 해당 요청의 Cookie 헤더에 __obi가 있는지 확인해 보라. (HttpOnly라서 document.cookie로는 보이지 않는다)Terminology
관련 논문
The Judge Can Debias Itself: LLM-as-a-Judge가 스스로 편향을 고치게 하는 법
심사 프롬프트에 편향 경고를 넣거나 스스로 비판시켰더니 21개 중 20개 조합에서 정확도가 올랐다
미국 노동시간의 90%는 AI 벤치마크가 제대로 다루지 못하는 일이다
벤치마크 29개를 직업 과제에 매핑했더니 노동시간 90%가 커버 밖
Postgres 19, AI 코드 리뷰가 버그를 너무 많이 찾아 출시 연기
LLM 코드 리뷰가 버그를 쏟아내 Postgres 19가 11월로 밀리고 기능 8~10개가 빠졌다
StarSkirmish Bench v0.2: LLM이 1시간 만에 짜는 StarCraft 봇 대결
LLM에게 1시간 동안 StarCraft 봇을 짜게 했더니 GPT-6 Astra가 1위
그럴듯한 설명 하나면 멀티모달 LLM 심사위원도 속는다 (JUPE 벤치마크)
정답은 그대로 두고 설명만 붙였더니 MLLM 심사위원의 오답 거절률이 12.7~13.8%p 떨어졌다
신경망은 이미 깔끔하다: polysemanticity의 원인 재해석
뉴런을 직접 들여다봤더니 대부분 한 가지 역할이 있었다는 주장
Linus Torvalds의 첫 LLM 보조 패치 시리즈
Linus가 LLM으로 folio 조회 패치 10개를 만들어 read() 벤치가 10배 빨라졌다