이 페이지에서

For AI agents: a documentation index is available at /docs/llms.txt. Append .md to any page URL for markdown, or send Accept: text/markdown.

쿠키 및 동의 관리(브라우저 SDK)

이 가이드에서는 Amplitude Browser SDK 2가 쿠키, 로컬 스토리지, 옵트인 및 옵트아웃 옵션, 프랑스의 CNIL 규정을 비롯한 동의 관리와 어떻게 작동하는지에 대해 설명합니다.

브라우저 SDK 2 호환성 이 가이드에서는

브라우저 SDK 2(TypeScript SDK)에 대해 설명합니다. 기존 JavaScript SDK에 대해서는 기존 쿠키 및 동의 관리 가이드를 참조하십시오.

Amplitude 쿠키

쿠키는 브라우저가 사용자의 기기에 저장하는 웹사이트의 데이터 조각입니다. 웹사이트는 기능적 또는 기술적 목적을 위해 저장된 데이터에 액세스하기 위해 나중에 쿠키를 검색합니다. 초기화 후, Amplitude Browser SDK 2는 특정 접두어로 시작하고 프로젝트 API 키의 처음 10자리를 포함하는 쿠키를 생성합니다.

예를 들어 다음과 같이 SDK를 초기화할 경우:

ts
import * as amplitude from "@amplitude/analytics-browser";
amplitude.init("a2dbce0e18dfe5f8e...");

Amplitude Browser SDK 2는 다음 형식의 쿠키를 생성합니다.

  • 사용자 세션 쿠키AMP_: 프로젝트의 API 키의 처음 10자가 추가됩니다(예: AMP_a2dbce0e18).
  • 마케팅 캠페인 쿠키AMP_MKTG_: 프로젝트의 API 키의 처음 10자리가 추가됩니다(예: AMP_MKTG_a2dbce0e18).

테스트 쿠키

초기화 다음 기간동안 SDK는 쿠키 기능을 확인하기 위해 임시 테스트 쿠키를 생성할 수 있습니다.

  • AMP_TEST_ 그 뒤에 타임스탬프가 표시됩니다: 쿠키가 작동하는지 테스트합니다.
  • AMP_TLDTEST_ 그 뒤에 타임스탬프가 표시되어 쿠키 저장에 적합한 하위 도메인을 찾습니다.

SDK는 테스트가 완료된 후 이러한 테스트 쿠키를 삭제합니다. 그것들이 남아 있다면 수동으로 안전하게 삭제할 수 있습니다.

쿠키 데이터

SDK는 쿠키에 다양한 유형의 정보를 저장합니다:

사용자 세션 쿠키(AMP_*)

사용자 세션 쿠키에는 SDK가 올바르게 작동하는 데 필요한 메타데이터가 포함되어 있습니다:

  • deviceId: 세션 간에 지속되는 임의로 생성된 문자열입니다.
  • userId: 사용자가 로그인할 때 앱이 이 값을 Amplitude에 전송하면 SDK는 이를 쿠키에 저장합니다. 사용자를 고유하게 식별하려면 이 값을 설정하십시오. Amplitude는 이를 저장하기 전에 이 값을 Base64로 인코딩합니다.
  • sessionId: 각 세션에 대해 무작위로 생성된 문자열입니다.
  • lastEventTime: 마지막 이벤트의 시간으로, 만료 시기를 결정하고 새 세션 ID를 생성하는 데 사용됩니다.
  • lastEventId: 이벤트를 구별하는 데 사용되는 식별자의 증분 시퀀스입니다.

마케팅 캠페인 쿠키 (AMP_MKTG_*)

마케팅 캠페인 쿠키는 속성 데이터를 저장합니다.

  • UTM 매개변수(utm_source, utm_medium, utm_campaign, utm_term, utm_content).
  • 추천자 정보(referrer, referring_domain).
  • 클릭 ID(gclid, fbclid, dclid, gbraid, wbraid, ko_click_id, msclkid, ttclid, twclid, li_fat_id, rdt_cid).

쿠키 크기

쿠키 크기는 쿠키 당 약 60바이트에서 120바이트까지 다양합니다. 사용자 세션 및 마케팅 캠페인 쿠키 모두를 사용할 경우 프로젝트 API 키당 Amplitude 쿠키에 대해 총 약 240바이트가 필요할 것으로 예상됩니다.

만료 시간

기본적으로 Amplitude 쿠키는 365일(1년) 후에 만료됩니다. 이 설정은 cookieOptions.expiration구성 매개변수를 사용하여 사용자 정의할 수 있습니다.

ts
amplitude.init("API_KEY", {
  cookieOptions: {
    expiration: 30, // Set cookies to expire after 30 days
  },
});

Amplitude 쿠키 삭제

프로그래밍 방식으로 Amplitude 쿠키를 제거하려면, 다음 코드조각을 실행하십시오.

ts
const API_KEY = "1234567890abcdefghijklmnopqrstuv"; // Replace it with your API KEY
const cookieName = `AMP_${API_KEY.substring(0, 10)}`;
const cookieNameMktg = `AMP_MKTG_${API_KEY.substring(0, 10)}`;
const cookies = document.cookie.split(";");
cookies.forEach((cookie) => {
  const [name] = cookie.trim().split("=");
  if (name === cookieName || name === cookieNameMktg) {
    document.cookie = `${name}=; Max-Age=0; path=/; SameSite=Lax`;
  }
});

사용자가 로그아웃한 후 익명화하려면 reset를 호출하십시오.

ts
amplitude.reset();

reset 는 다음 작업을 수행합니다.

  1. userId을 undefined로 설정합니다.
  2. 새 UUID 값으로 deviceId설정합니다.

userId이 정의되지 않고 deviceId가 새 값인 경우, 해당 사용자는 Amplitude에 새 사용자로 표시됩니다.

localStorage를 사용하여 쿠키 비활성화

쿠키 대신 localStorage를 사용하도록 SDK를 구성하려면 identityStorage옵션을 설정합니다.

ts
amplitude.init("API_KEY", {
  identityStorage: "localStorage",
});

로컬 스토리지에 저장된 데이터

localStorage를 사용할 때 SDK는 쿠키가 일반적으로 보유하고 있는 것과 동일한 사용자 세션 정보를 저장하며, 다음도 포함합니다.

  • 전송되지 않은 이벤트: Amplitude에 성공적으로 업로드되지 않은 이벤트입니다.
  • 실패한 이벤트: 전송에 실패하여 SDK가 재시도를 위해 대기열에 추가하는 이벤트입니다.

SDK는 프로젝트 API 키를 포함하는 키를 사용하여 데이터를 localStorage에 저장합니다.

  • AMP_unsent_[API_KEY]: 전송되지 않은 이벤트를 저장합니다.

로컬 스토리지 제한 사항

로컬 스토리지는 하위 도메인별로 액세스를 제한합니다. 예를 들어 www.amplitude.com및 analytics.amplitude.com과 같은 하위 도메인에서 식별되지 않은 사용자를 추적하는 경우 각 하위 도메인의 값은 다른 하위 device_id도메인을 검색하는 동안 사용할 수 없습니다.

Amplitude SDK는 교차 사이트 추적을 지원합니다. 자세한 내용은 교차 도메인 추적을 참조하십시오.

쿠키 및 로컬 스토리지 비활성화(옵트아웃 스토리지)

identityStorage를 none으로 설정하여 모든 영구 저장소를 비활성화할 수 있습니다:

ts
amplitude.init("API_KEY", {
  identityStorage: "none",
});

모든 저장소를 비활성화하면 SDK가 기존 ID를 찾을 수 없기 때문에 Amplitude는 해당 사용자가 귀하의 사이트를 방문할 때마다 해당 사용자를 위해 새로운 ID를 생성합니다device_id. 사용자가 로그인하거나 다른 식별 정보를 제공하면 Amplitude의 사용자 식별 시스템은 다양한 device_id 값을 해당 사용자 ID와 연결합니다.

쿠키 동의 관리

특정 관할권에서는 귀하가 전체 데이터를 수집하기 전에 사용자가 필수적이지 않은 쿠키에 동의해야 합니다. 귀하가 수집하여 Amplitude에 전송하는 개인 데이터에 대해 전체 필요한 동의를 얻고 전체 필요한 공개를 할 책임은 궁극적으로 귀하에게 있습니다. 또한 귀하는 귀하의 특정 사용 사례와 귀하가 쿠키를 사용하는 관할권에 따라 귀하의 쿠키 정책에서 Amplitude 쿠키를 어떻게 분류할지를 결정할 책임이 있습니다.

Amplitude는 사용자의 옵트아웃 상태에 관계없이 SDK가 초기화되는 즉시 쿠키를 생성할 수 있습니다. 동의하기 전에 쿠키가 존재하지 않아야 하는 경우, 사용자가 동의할 때까지 SDK 초기화를 연기하십시오.

이러한 관할 구역 중 하나에서 Amplitude SDK를 사용하는 경우, 사용자가 쿠키 사용에 동의할 때까지 SDK를 초기화하지 마십시오. SDK 초기화는 쿠키 저장, 로컬 저장소 및 이벤트 트래킹과 같은 Amplitude 기능을 활성화 또는 비활성화합니다.

지연된 초기화 방식

동의 관리를 위해 쿠키 동의 이전의 이벤트를 추적하고 나중에 SDK를 초기화할 수 있습니다.

ts
// Track events
amplitude.track("Button Clicked");
// Later, when user provides consent,
// initialize the SDK
amplitude.init("API_KEY");

스토리지와 관련된 구성 옵션

브라우저 SDK 2의 각 스토리지 관련 옵션:

스토리지를 위한 추상화 계층

스토리지를 위한 추상화 계층, 사용 가능한 옵션, 저장된 메타데이터는 TypeScript SDK용 Amplitude의 GitHub 저장소에서 사용할 수 있습니다.

자주 묻는 질문

CNIL France - 자주 묻는 질문

CNIL France FAQs

CNIL과 관련된 FAQ는 법률 또는 규제 관련 조언을 제공하기 위한 것이 아니며, Amplitude의 전체 보증이나 계약상 약속도 아닙니다. Amplitude는 고객이 이 주제와 관련된 문제에 대해 법적 및 규제 의무에 대해 독립적인 법률 자문을 구할 것을 권장합니다.

이 내용이 도움이 되었나요?