Prebid.js 동의 관리: 퍼블리셔를 위한 헤더 비딩 설정 가이드

헤더 비딩은 수요 파트너들이 병렬로 경쟁하도록 하여 퍼블리셔의 CPM을 높입니다 — 하지만 그 파트너들 각각은 쿠키를 설정하거나, 핑거프린트를 수집하거나, 픽셀을 실행하기 전에 유효한 동의 신호가 필요합니다. 수만 개의 사이트에서 사용되는 사실상의 오픈소스 헤더 비딩 래퍼인 Prebid.js는 CMP를 모든 경매에 연결하는 동의 관리 모듈과 함께 제공됩니다. 잘못 구성하면 동의 없이 데이터가 유출되거나(규제 위험), 입찰자들이 필요한 신호를 받지 못하게 됩니다(수익 위험). 이 가이드는 퍼블리셔가 프로덕션 수준의 설정을 완료할 수 있도록 안내합니다.

Prebid.js에 동의 관리 모듈이 필요한 이유

Prebid.js 경매가 실행되면 래퍼는 구성된 모든 입찰자 어댑터에 병렬로 요청을 보냅니다. 각 어댑터는 입찰 요청에 사용자의 동의 문자열을 포함해야 합니다 — tcfeu(EU/UK용 TCF v2.2), usp(CCPA/CPRA), 그리고 점점 더 gpp(여러 미국 주를 포괄하는 IAB Global Privacy Platform 문자열). 이러한 신호 없이는 다운스트림 SSP와 DSP가 사용자를 옵트아웃으로 처리하거나, 입찰을 완전히 삭제하거나, 최악의 경우 데이터를 불법적으로 처리할 수밖에 없습니다.

Prebid 동의 관리 모듈은 CMP와 입찰 요청 파이프라인 사이에 위치합니다. 표준 CMP API(__tcfapi, __uspapi, __gppapi)를 호출하고, 동의 문자열을 기다린 다음, 이를 모든 어댑터의 입찰 요청 페이로드에 자동으로 주입합니다. 또한 GDPR 시행을 활성화할 때 목적 기반 게이팅을 적용하여, 관련 TCF 목적을 부여하지 않은 사용자에 대해 스토리지 접근과 입찰자 실행을 차단합니다.

코어 모듈 설치 및 구성

Prebid.js는 docs.prebid.org/download.html에서 퍼블리셔별로 빌드됩니다. 커스텀 빌드를 생성할 때 "동의 관리" 아래의 세 가지 모듈이 중요합니다:

글로벌 트래픽을 서비스한다면 세 가지 모두 포함하세요. 빌드가 CDN에 배포되면 Prebid 설정 스크립트에서 모듈을 구성합니다:

TCF v2.2 구성

TCF 블록은 어떤 CMP API를 호출할지, 문자열을 얼마나 기다릴지, 타임아웃 시 무엇을 할지 Prebid에 알려줍니다. 일반적인 프로덕션 설정은 cmpApi: 'iab', timeout: 8000(8초 — 느린 CMP 배너 로드에 충분한 시간), defaultGdprScope: true를 설정하여 알 수 없는 관할권의 사용자가 별도 증명 없이 범위 내에 있는 것으로 처리됩니다. actionTimeout을 별도로 설정하면 사용자가 배너와 아직 상호작용하지 않은 경우 Prebid가 대기하는 시간을 제어할 수 있습니다 — 적절한 값으로 유지하면 방문자가 배너를 무시할 때 광고 슬롯이 비는 것을 방지합니다.

US Privacy와 GPP

USP는 간단합니다: 모듈을 활성화하면 Prebid가 __uspapi에서 네 글자 문자열을 읽습니다. GPP는 GPP 문자열이 여러 섹션 ID(TCF EU, US 내국, US 캘리포니아, US 콜로라도, US 버지니아 등)를 포함할 수 있기 때문에 더 복잡합니다. Prebid는 전체 문자열을 자동으로 전달하지만 입찰자는 특정 섹션을 검사합니다. CMP가 각 사용자의 관할권에 맞는 올바른 GPP 섹션을 내보내는지 확인하세요 — 캘리포니아 사용자에게 US 내국 섹션만 내보내도록 잘못 구성된 CMP는 CPRA 준수 DSP가 입찰을 버리게 만들 것입니다.

GDPR 시행 활성화(목적 기반 게이팅)

기본적으로 동의 모듈은 TCF 문자열을 전달하지만 아무것도 차단하지 않습니다. Prebid가 TCF 목적을 실제로 시행하도록 하려면 gdprEnforcement 규칙 세트를 활성화하세요. 대부분의 설정 오류가 발생하는 곳이 바로 여기입니다 — 그리고 규정을 준수하는 헤더 비딩 스택과 그렇지 않은 스택의 차이가 있는 곳입니다.

표준 규칙 세트는 관련 목적에 동의가 없을 때 네 가지 활동을 차단합니다:

각 규칙에 enforcePurpose: true, enforceVendor: true, 그리고 vendorExceptions 목록을 설정합니다. 벤더 예외 목록은 중요합니다: 목록에 있는 모든 입찰자는 명시적인 TCF 벤더 동의 없이도 참여가 허용되는데, 이는 별도의 법적 근거(예: 계약 흐름과 결합된 정당한 이익)가 있다는 근거에서입니다. 이를 아끼어 사용하세요 — 지나치게 광범위한 예외는 규제 기관이 퍼블리셔에게 벌금을 부과하기 시작한 바로 그 패턴입니다.

퍼블리셔 수익 또는 컴플라이언스를 위협하는 일반적인 함정

타임아웃이 너무 낮게 설정됨

CMP 배너 렌더링 시간보다 timeout이 짧으면 Prebid는 동의 문자열 없이 진행합니다. 입찰자는 이를 동의 없음으로 처리하고 입찰을 버립니다. CMP의 tcfapi('addEventListener') 첫 번째 호출 지연 시간을 95번째 백분위수에서 측정하고 Prebid 타임아웃을 그 위로 설정하세요. 8000ms는 안전한 기본값이며, 3000ms는 배너를 지역화하는 데 시간이 걸리는 시장에 서비스하는 경우 위험합니다.

미국 트래픽에서 GPP 통합 누락

주요 SSP와 DSP(Google AdX, TTD, Magnite, PubMatic)는 현재 미국 옵트아웃 시행을 위해 GPP 문자열을 요구합니다. 레거시 USP 문자열만 내보내는 경우 이러한 DSP는 점점 더 인벤토리를 낮추거나 건너뛸 것입니다. 입찰 응답을 감사하세요: 2026년 미국 트래픽에서의 급격한 CPM 하락은 종종 GPP 신호 누락의 징후입니다.

SPA 내비게이션에서 오래된 동의 문자열

경로 변경 시 Prebid 경매를 다시 트리거하는 싱글 페이지 앱은 pbjs.refreshUserIds()를 호출하고 최신 TCF 문자열이 가져와지도록 해야 합니다. 사이트가 공유 세션을 사용하는 경우 30분 된 캐시된 문자열이 이전 사용자의 기본 설정을 담고 있을 수 있습니다.

분석을 위한 vendorExceptions 누락

퍼블리셔는 Prebid Analytics 어댑터(Google Analytics, 서버 측 보고)도 TCF 목적 7 아래의 measurement 게이팅 대상임을 자주 잊습니다. 수익 보고에 이를 사용하는 경우 측정 규칙의 벤더 예외 아래에 명시적으로 나열하거나 동의 없는 트래픽의 데이터 공백을 수용하세요.

프로덕션 전 설정 테스트

Prebid.js는 브라우저 콘솔에서 pbjs.getConfig('consentManagement')를 노출합니다. 활성 구성이 의도와 일치하는지 확인하세요. 그런 다음 Chrome Prebid.js Professor 확장 프로그램 또는 pbjs.getEvents()를 사용하여 각 입찰 요청에 첨부된 동의 문자열을 검사합니다. 세 가지 시나리오를 점검하세요: 완전히 동의한 사용자, "전체 거부"를 클릭한 사용자, 상호작용 없이 배너를 닫은 사용자. 각각은 입찰 요청 페이로드에서 서로 다른 관찰 가능한 동작을 생성해야 합니다.

VPN 또는 CMP의 지리적 위치 재정의 플래그를 사용하여 다양한 지역에서 동일한 검사를 실행하세요. EU 트래픽은 TCF 문자열을 생성하고 gdprEnforcement를 트리거해야 합니다; 캘리포니아 트래픽은 USP와 GPP 문자열을 생성해야 합니다; 관할권을 알 수 없는 트래픽은 defaultGdprScope 설정을 존중해야 합니다.

모든 것을 하나로 통합하기

올바르게 구성된 Prebid 동의 관리 스택은 동시에 세 가지 작업을 수행합니다: 입찰자들이 유효한 동의 신호를 지속적으로 공급받도록 유지하고(CPM 유지), 래퍼 수준에서 TCF 및 미국 옵트아웃 규칙을 시행하며(규제 노출 감소), 규제 기관이 헤더 비딩 설정이 사용자 선택을 어떻게 존중하는지 물었을 때 단일 감사 지점을 제공합니다. 타임아웃을 신중하게 설정하고, 미국 트래픽에 USP와 함께 GPP를 활성화하고, vendorExceptions 목록을 분기별로 검토하세요 — 이를 잘못했을 때의 비용은 벌금과 손실된 프로그래매틱 수익 모두에서 측정됩니다.

← 블로그 전체 읽기 →