Chrome에서 지원하는 테스트

서드 파티 쿠키 지원 중단에 대비하기 위해 Google에서는 서드 파티 쿠키 없이 사이트 동작과 기능이 작동하는 방식을 사이트에서 미리 볼 수 있는 Chrome에서 지원하는 테스트 모드를 제공할 예정입니다. 이 가이드에서는 Chrome에서 제공할 테스트 모드와 실험 그룹 라벨에 액세스하는 방법을 간략하게 설명합니다.

여기서 Chrome 브라우저는 Chrome 클라이언트를 의미하며, 기기에 Chrome을 설치합니다. 각 개별 사용자 데이터 디렉터리는 고유한 클라이언트를 구성합니다.

실험 그룹: 특정 기능이 사용 설정, 사용 중지 또는 구성된 Chrome 브라우저 집합입니다. Chrome에서 진행하는 테스트와 관련하여 라벨이 설정되는 브라우저 집합입니다.

라벨: 이 문맥에서 실험 그룹에 속한 브라우저에 설정되는 요청 헤더 값입니다. 실험 그룹의 각 브라우저는 Chrome에서 진행하는 테스트 기간 동안 해당 그룹에 유지되므로 브라우저 라벨이 테스터 간에 일관되게 유지됩니다.

Google에서는 두 가지 모드를 제공합니다.

  • 모드 A: 2023년 11월부터 PS R&M API를 테스트하는 조직은 Chrome 브라우저 하위 집합에서 일관된 라벨을 수신하여 여러 테스터를 대상으로 조직된 테스트를 진행할 수 있게 되었습니다.
  • 모드 B: 2024년 1월 4일부터 Chrome은 일부 Chrome 브라우저에서 서드 파티 쿠키를 전 세계적으로 사용 중지했습니다.

두 모드 모두 적어도 2025년 초까지는 계속 지원됩니다. 모드 B에서 서드 파티 쿠키가 사용 중지된 경우 서드 파티 쿠키의 전체 단계에 걸쳐 사용 중지된 상태로 유지됩니다.

Google은 CMA와 협력하여 이러한 테스트 모드가 업계 테스트 지침에 나와 있는 대로 서드 파티의 테스트 프레임워크 (및 타임라인)와 일치하도록 했습니다. 따라서 CMA는 이러한 모드에서 테스트한 결과가 개인 정보 보호 샌드박스 평가에 사용될 수 있을 것으로 예상합니다. CMA는 모드 B 라벨과 모드 A 대조군 1 라벨을 사용하는 실험 설계 2의 결과에 더 큰 비중을 둘 가능성이 높다고 밝혔습니다. 실험용 설계 2에 관한 자세한 내용은 CMA의 10월 26일 안내를 참고하세요.

또한 일반적인 Blink 개발 프로세스를 통해서도 이 제안서를 전송할 예정이며, 여기에서 기술 설계 및 Chrome 출시 마일스톤이 확정됩니다. 이 구현은 Google에서 제공할 구현이지만 추가 논의 및 승인을 거치면 세부정보는 변경될 수 있습니다. 계획이 진행됨에 따라 이 페이지가 계속 업데이트되며 개발자는 계속해서 의견을 보내거나 질문을 제공할 수 있습니다.

모드 A: 라벨이 지정된 브라우저 그룹

테스트에 참여하는 조직은 Chrome 브라우저 하위 집합에 대한 영구적인 라벨 집합을 수신하도록 선택할 수 있으며, 이를 통해 동일한 브라우저 집합에서 여러 광고 기술을 통해 조정된 실험을 할 수 있습니다. 예를 들어 브라우저가 label_only_3 실험 그룹에 속하면 (다음 표 참고) 참여하는 모든 광고 기술에서 동일한 label_only_3 라벨을 보고 적절하게 조정할 수 있습니다. PS R&M API를 사용하되 서드 파티 쿠키는 사용하지 마세요. 페이지의 참여자는 광고 선택 및 측정의 전체 프로세스에서 일관된 실험을 할 수 있도록 라벨이 다른 참여자에게 전달되도록 해야 합니다.

예를 들어 이렇게 하면 여러 참여자가 일관된 브라우저 그룹에서 서드 파티 쿠키 없이 Protected Audience 입찰을 실행할 수 있습니다. 입찰 판매자 참여자는 조정된 테스트를 용이하게 하기 위해 관찰된 라벨을 구매자에게 전달합니다.

라벨은 서드 파티 쿠키의 가용성을 포함하여 이러한 Chrome 인스턴스의 기능에는 영향을 미치지 않습니다. 라벨은 독립적이고 조정된 실험을 위한 그룹을 제공하지만, 실험에 관련 매개변수를 적용하는 것은 참여 당사자가 결정합니다. 서드 파티 쿠키 삭제의 효과를 테스트하는 경우 각 참가자는 해당 라벨이 있는 브라우저의 서드 파티 쿠키 데이터를 제외해야 합니다.

목표는 일반 Chrome 트래픽을 대표하는 그룹을 만드는 것입니다. 즉, 일부 사용자는 설정 또는 확장 프로그램을 통해 기능을 변경하거나 사용 중지했을 수도 있지만 서드 파티 쿠키와 PS R&M API를 모두 사용할 수 있어야 합니다.

라벨은 일반적으로 Chrome의 탐색 세션 전체와 세션 간에 유지됩니다. 그러나 브라우저를 완전히 재설정해도 현재 라벨도 재설정되는 드문 시나리오가 있기 때문에 보장되지는 않습니다.

Google은 모드 A에 Chrome 공개 버전 브라우저의 8.5% 를 포함할 계획이며 초기 제안서에서는 이 사용자를 9개 그룹으로 나눕니다. 더 작은 하위 그룹은 광고 기술이 라벨을 결합하여 다양한 크기의 자체 실험을 만들 수 있도록 하기 위한 것입니다. 그룹이 겹치지 않습니다.

control_1.* 라벨은 CMA의 업계 테스트 안내에 설명된 '대조군 1'로 사용하기 위한 것이므로 테스트 참여자는 이 트래픽에 대해 Topics API를 사용하거나 Protected Audience 입찰을 실행해서는 안 됩니다. 라벨은 기능에 영향을 미치지 않으므로 참여자는 control_1.* 그룹 라벨을 감지할 때 관찰된 주제를 전달하거나 Protected Audience 입찰을 실행하면 안 됩니다.

이러한 그룹 선택이 참여 조직의 요구사항을 충족하는지 여부에 대한 의견을 보내주시기 바랍니다.

라벨 안정적인 트래픽 비율(%)
control_1.1 0.25
control_1.2 0.25
control_1.3 0.25
control_1.4 0.25
label_only_1 1.5
label_only_2 1.5
label_only_3 1.5
label_only_4 1.5
label_only_5 1.5

모드 A label_only_ 브라우저 그룹은 2023년 11월부터 사용할 수 있었으며 모드 A control_1_* 그룹은 2024년 1월 4일부터 사용할 수 있게 되었습니다. Google에서는 2025년 초에 서드 파티 쿠키가 단계적으로 지원 중단될 때까지 모든 모드 A 및 모드 B 라벨을 계속 전송할 예정입니다.

모드 B: 서드 파티 쿠키의 1% 사용 중지

Chrome은 2024년 1월 4일부터 Chrome 공개 버전 브라우저의 약 1% 에서 서드 파티 쿠키를 사용 중지했습니다 (2023년 4분기에는 개발자, Canary, 베타 브라우저에서도 사용). PS R&M API를 테스트하는 조직에서는 이 모드를 선택할 필요가 없습니다. 전체 브라우저 모집단에 균일하게 적용되기 때문입니다. 물론 사이트에서 CHIPS 또는 관련 웹사이트 세트와 같은 대체 솔루션을 아직 채택하지 않은 경우 일부 사이트 기능이 영향을 받을 수 있습니다.

또한 모드 B 내에서 PS R&M API가 사용 중지된 트래픽의 일부를 제공할 계획입니다. 관련 웹사이트 세트, CHIPS, FedCM과 같은 다른 API는 사용 중지되지 않습니다. 이 조합은 서드 파티 쿠키가 없고 PS R&M API가 없는 브라우저의 성능 기준을 설정하는 데 도움이 될 것으로 예상됩니다.

모드 B의 일환으로 해당 브라우저에 대한 라벨도 제공됩니다. 라벨은 API가 사용 중지되는 동시에 사용할 수 있습니다. 모집단을 서드 파티 쿠키가 사용 중지되었지만 PS R&M API를 사용할 수 있는 treatment_1.* 그룹 3개와 서드 파티 쿠키와 PS R&M API가 모두 사용 중지된 control_2 그룹 1개로 나눈 것을 제안합니다.

Attribution Reporting API 및 Private Aggregation API 통합의 디버깅을 지원하고 테스트 참여자가 노이즈의 영향을 더 잘 이해할 수 있도록, 사용자가 서드 파티 쿠키를 명시적으로 차단하지 않은 한 모드 B의 브라우저에서는 ARA 디버그 보고서비공개 집계 디버그 보고서를 계속 사용할 수 있습니다. control_2 슬라이스에서는 PS R&M API를 사용할 수 없으므로 디버그 보고서는 사용할 수 없습니다. 디버그 보고서는 서드 파티 쿠키의 단계적 지원 중단과 함께 계속 단계적으로 중단됩니다.

  • Attribution Reporting API의 경우 서드 파티 쿠키가 사용 중지되므로 보고 출처는 ar_debug 쿠키를 설정할 수 없으며 debug_key 필드(기여도 성공 보고서의 경우) 및 debug_reporting 필드 (상세 보고서의 경우) 설정을 사용하여 디버깅 보고서 수신을 선택하거나 선택 해제해야 합니다.
  • Private Aggregation API의 경우 보고 출처는 enableDebugMode() 호출을 사용하여 디버깅 보고서 수신 선택을 제어해야 합니다. 회사는 디버그 보고서를 포함하여 Attribution Reporting API 및 Private Aggregation API의 사용에 규제 의무가 적용될 수 있는 방식을 고려해야 합니다.

모드 A는 계속 실행되며 이러한 그룹은 모드 A 그룹과 구분됩니다. 사용자가 모드 A나 모드 B에 있거나 둘 다에 있지 않기 때문입니다. 테스트 참여자는 control_1.* 트래픽을 서드 파티 쿠키로 현 상태를 나타내는 통제 그룹으로 사용해야 합니다.

라벨 안정적인 트래픽 비율(%)
treatment_1.1 0.25
treatment_1.2 0.25
treatment_1.3 0.25
control_2 0.25

또한 Chrome은 Chrome Canary, 개발자, 베타 클라이언트의 20% 에 대해 쿠키를 제한했습니다.

라벨 안정화 버전 이전 트래픽의 비율(%)
prestable_treatment_1 10%
prestable_control_2 10%

이러한 실험 부문 중 하나에 포함되면 안정화 버전과 동일한 효과가 발생합니다.

모드 A와 마찬가지로 PS R&M API는 사용 가능하다고 보장되지 않습니다. 사용자가 Chrome 개인 정보 보호 및 보안 설정에서 API를 사용 중지할 수 있기 때문입니다. 마찬가지로 사용자가 브라우저 UI에 액세스하여 사이트에 대한 서드 파티 쿠키를 허용할 수 있으므로 서드 파티 쿠키가 control_2 그룹의 모든 구성원에게 사용 중지되지 않을 수도 있습니다.

실험 모니터링

각 전체 실험 대상 및 대조군 라벨의 상대적 트래픽 양을 모니터링해야 합니다. treatment_1.1의 트래픽 양은 treatment_1.2treatment_1.3와 거의 같아야 합니다.

버전 120 이전 버전의 Chrome에서 비롯된 라벨이 포함된 트래픽에 대해서는 신중을 기하시기 바랍니다. 일반적으로 무효 트래픽을 처리하는 팀에서 무효 트래픽의 특성을 보이는 사용자 에이전트를 식별한 경우 테스트 결과에서 제외하는 것이 좋습니다.

기간 전 라벨

2024년 1월까지는 여러 실험 부문에 대해 사전 기간(Chrome에서 통계적으로 편향되지 않은 그룹의 크기를 정확하게 조정하고 선택할 수 있는 기간)을 실행했습니다. 이러한 사전 기간은 1월에 시작하도록 예약된 모든 실험 부문, 즉 Mode B 부문과 Control_1.* 부문에 대해 실행되었습니다. 여기서는 개발자나 사이트에서 조치를 취할 필요가 없습니다. 기간 전 버전에서는 동작이나 API 사용 가능 여부에 변화가 없지만 경우에 따라 preperiod 라벨이 반환될 수 있다는 점에 유의해야 합니다. preperiod 라벨을 받은 브라우저가 실험 그룹 중 하나로 전환될 수 있지만 반드시 그런 것은 아니므로 이 라벨이 있는 브라우저가 실험에 포함될 것이라고 가정하지 않는 것이 좋습니다.

실험 부문은 연구 대상 인구의 하위 집합(이 경우 라벨이 지정된 그룹 중 하나)입니다.

모드 A와 모드 B 기간 동안 선택 HTTP 헤더 및 JavaScript API를 통해 액세스할 수 있는 임시 Cookie-Deprecation 값을 도입할 예정입니다. 이 값은 해당하는 모드 A 또는 B 실험 그룹 (위 비율로 정의됨)에 해당하는 경우 라벨을 제공합니다.

라벨에 액세스하려면 사용자 기기에 저장된 정보에 액세스해야 합니다. EU 및 영국과 같은 일부 관할권에서는 이러한 활동이 쿠키 사용과 유사하므로 라벨에 액세스하려면 최종 사용자의 동의가 필요할 수 있음을 알고 있습니다. 라벨을 요청하기 전에 이러한 동의 의무가 적용되는지에 관해 법률 자문을 받는 것이 좋습니다.

Sec-Cookie-Deprecation 요청 헤더를 수신하려면 먼저 사이트에서 receive-cookie-deprecation 쿠키를 설정해야 합니다. 이 쿠키는 Partitioned 속성을 사용해야 합니다. 즉, 헤더 수신 설정은 최상위 사이트별로 이루어져야 합니다.

예를 들어 3p-example.siteexample.com에 삽입된 리소스에서 Sec-Cookie-Deprecation 헤더를 수신하려면 3p-example.site가 해당 컨텍스트에서 다음 쿠키를 설정해야 합니다.

Set-Cookie: receive-cookie-deprecation=1; Secure; HttpOnly; Path=/; SameSite=None; Partitioned;  Max-Age=15552000

Secure, HttpOnly, SameSite, Partitioned 쿠키 속성은 필수입니다. 다른 속성인 Domain, Path, Expires, Max-Age는 필요에 맞게 설정할 수 있지만 Path=/가 적절한 기본값입니다. 이 예에서는 쿠키가 180일이 지날 때까지 만료되지 않도록 Max-Age=15552000를 설정합니다.

Sec-Cookie-Deprecation 요청 헤더가 제공되는 즉시 실험 그룹의 브라우저에 포함되도록 하려면 Chrome에서 진행하는 테스트 기간이 시작되기 전에 receive-cookie-deprecation=1 쿠키를 설정하는 것이 좋습니다.

예를 들어 브라우저가 example_label_1 그룹에 있다고 가정하면 이 쿠키가 포함된 후속 요청에도 Sec-Cookie-Deprecation 헤더가 포함됩니다.

Sec-Cookie-Deprecation: example_label_1

브라우저가 그룹에 속하지 않으면 헤더가 전송되지 않습니다. 라벨은 쿠키의 존재와 연결되어 있습니다. 따라서 특정 사이트에 대해 쿠키가 삭제되거나 완전히 차단되거나 차단된 경우 라벨이 전송되지 않습니다. Partitioned 속성은 서드 파티 쿠키가 완전히 지원 중단된 후에도 계속 사용하기 위한 것이므로 서드 파티 쿠키가 차단되면 Partitioned 쿠키가 설정될 수 있습니다.

cookieDeprecationLabel JavaScript API에 액세스

Cookie-Deprecation 값은 navigator.cookieDeprecationLabel.getValue() JavaScript API를 통해서도 액세스할 수 있습니다. 그러면 관련 그룹 라벨이 포함된 문자열로 확인되는 프로미스가 반환됩니다. 예를 들어 브라우저가 example_label_1 그룹에 있는 경우:

// Feature detect temporary API first
if ('cookieDeprecationLabel' in navigator) {
 // Request value and resolve promise
 navigator.cookieDeprecationLabel.getValue().then((label) => {
   console.log(label);
   // Expected output: "example_label_1"
 });
}

브라우저가 그룹에 속하지 않으면 API를 사용할 수 없거나 값이 빈 문자열이 되므로 기능 감지를 수행해야 합니다.

JavaScript API는 receive-cookie-deprecation 쿠키가 있는지와 관계없이 호출될 수 있습니다. 하지만 쿠키가 완전히 또는 사이트에 대해 특별히 차단되면 API를 다시 사용할 수 없게 되거나 빈 문자열이 반환됩니다.

클라이언트에서 제공하는 모든 값과 마찬가지로 사용하기 전에 헤더나 JavaScript API에서 값을 정리하고 유효성을 검사해야 합니다.

데모 및 테스트

Chrome 120부터는 로컬 개발자가 라벨 요청 및 읽기를 테스트할 수 있는 플래그를 사용할 수 있습니다.

chrome://flags/#tpc-phase-out-facilitated-testing 플래그를 사용하면 선택한 테스트 라벨을 사용 설정할 수 있습니다. 이러한 라벨은 실제 라벨과 구분하기 위해 fake_ 접두사가 붙습니다. 플래그를 사용 설정해도 브라우저에서 실험 그룹이 선택되지는 않습니다.

goo.gle/cft-demo를 통해 작동 중인 라벨을 확인할 수 있습니다.

개인 정보 보호 샌드박스 관련성 및 측정 API에 등록이 시행되므로 chrome://flags/#privacy-sandbox-enrollment-overrides를 사용하고 데모 출처를 제공하여 로컬 테스트 적용을 재정의해야 할 수 있습니다. 또는 터미널에서 Chrome을 실행 중이면 다음 명령줄 플래그를 포함합니다. --args --disable-features=EnforcePrivacySandboxAttestations

chrome://flags/#tpc-phase-out-facilitated-testing

플래그 드롭다운에는 여러 옵션이 있습니다. 테스터는 주로 'Force'로 표시된 항목에 관심을 가집니다. 이렇게 하면 다른 기기 구성과 관계없이 실험 동작이 사용 설정되기 때문입니다.

실험 그룹 라벨만 테스트하려면 '강제 제어 1 사용 설정됨' 또는 '강제 라벨 전용 사용 설정'을 선택하세요. 이렇게 하면 브라우저에서 'fake_control_1.1' 또는 'fake_label_only_1.1' 라벨을 전송합니다.

Chrome M120 이상에서는 다음 항목도 사용할 수 있습니다.

타사 쿠키 차단을 테스트하려면 '강제 처리 사용'을 선택합니다. 이렇게 하면 'fake_treatment_1.1' 실험 그룹 라벨이 전송되지만 서드 파티 쿠키를 차단하도록 쿠키 설정 페이지 및 현재 쿠키 설정도 수정됩니다.

비공개 광고 API 없이 서드 파티 쿠키 차단을 테스트하려면 'Force Control 2'를 선택합니다. 이렇게 하면 'fake_control_2' 실험 그룹 라벨이 전송되고, 쿠키 설정 페이지가 업데이트되고, 서드 파티 쿠키가 차단되고, 새 비공개 광고 API도 차단됩니다.

참고: 현재는 플래그를 사용 중지하더라도 브라우저가 새로운 쿠키 설정 페이지 및 서드 파티 쿠키를 차단하는 설정이 그대로 유지되는 문제가 있습니다. Google에서는 이 문제를 해결하기 위해 노력하고 있습니다. 그동안 --user-data-dir=<new dir> 명령줄 플래그로 Chrome을 실행하여 별도의 Chrome 데이터 디렉터리에서 이러한 플래그 값을 테스트할 수 있습니다.

의견

GitHub의 개발자 지원 저장소에 있는 "chrome-testing" 라벨을 사용하여 질문을 관리합니다. 초기 질문에 대한 의견과 토론을 환영합니다.

'Chrome에서 지원하는 테스트' 템플릿을 사용하여 저장소에서 새로운 질문이나 토론을 제기할 수도 있습니다.