Google의 새로운 태그 문서를 미리 확인해 주셔서 감사합니다. 이 사이트는 공개 베타 버전입니다 (의견 보내기).

동의 설정 관리하기(웹)

동의 모드의 사용 설정과 방법은 동의를 얻기 위한 구현 방식과 사용하는 태그 추가 플랫폼(Google 태그 관리자(GTM) 또는 gtag.js)에 따라 다릅니다.

  • Google 동의 모드를 지원하는 콘텐츠 관리 플랫폼(CMP)에서는 다음 기능을 제공합니다.
    • 동의 관리를 위한 태그를 생성하는 데 사용하는 태그 관리자 템플릿(커뮤니티 템플릿 갤러리에서 찾을 수 있음)
    • gtag.js를 이용해 동의를 관리하는 사이트를 위한 자바스크립트 코드
  • 동의 모드를 지원하지 않는 맞춤 구현 및 CMP을 이용할 경우에는 다음을 참고하세요.
    • GTM을 사용하는 경우 태그 관리자 동의 API를 이용해 나만의 템플릿을 만드는 것이 좋습니다.
    • gtag.js를 사용하는 경우 사이트의 각 페이지에 직접 명령어 또는 맞춤 HTML 스니펫의 형태로 동의 코드를 직접 추가하세요.

이 도움말에서는 권장사항에 대해 간략히 설명하고 API 예를 보여드립니다. 관련 내용은 다음을 참고하세요.

시작하기 전에

동의 모드를 구현하기 전에 다음 사항을 고려해야 합니다.

  • 모든 방문자가 아니라 지역에 맞게 기본 동의 설정을 구성하는 것이 좋습니다. 이렇게 하면 기본 동의 모드가 거부됨으로 설정된 경우 동의 배너가 필요하지 않은 지역에서는 사용자를 측정할 수 있습니다. 지역별 동작을 참고하세요.

  • CMP를 사용하는 경우 기본 동의 명령어에 지정된 지역의 방문자를 타겟팅하도록 동의 업데이트 명령어를 구성해야 합니다. 이렇게 하면 동의 상태가 기본적으로 거부됨으로 설정되어 있는 경우 사용자가 동의 상태를 업데이트할 수 있습니다.

  • 나만의 템플릿 또는 맞춤 HTML 태그를 작성하는 경우, 콜백 또는 gtag()를 사용하는 명령어에서 실행되는 모든 명령어는 다음 트리거가 실행되기 전에 사용하지 못할 수도 있습니다. 동의 정보를 최대한 빨리 이용할 수 있게 하려면 태그 관리자 동의 API를 사용하여 동의 상태를 설정하는 태그 템플릿을 사용하거나 만드세요.

기본 동의 상태는 조직에 필요한 기본값에 따라 페이지 로드 시 즉시 설정되어야 합니다. 그러면 CMP 또는 맞춤 동의 관리 솔루션에서 방문자에게 관련 동의 유형에 대한 동의를 부여하거나 거부하라는 메시지를 표시해야 합니다. 동의 모드에서 동의 선택 여부를 저장하지 않으므로 동의가 이루어진 후 모든 페이지에서 최대한 빨리 사용자의 동의 여부를 기반으로 동의 모드 업데이트 명령을 실행해야 합니다.

gtag('consent','update',...) 메서드를 updateConsentState 대신 사용하면 안 됩니다. 이 메서드가 대기중인 다른 모든 메시지 이후의 목록에 추가되고 처리되지 않은 상태에서 다음 이벤트가 시작될 수 있기 때문입니다. 자세한 내용은 데이터 영역 정보 처리 방식을 참고하세요.

다음 섹션에는 gtag.js 및 태그 관리자 API의 예가 나와 있습니다.

동의 상태의 기본값은 명시적으로 설정되지 않은 경우 granted입니다. 사용 중인 각 저장용량 유형의 기본값을 설정하는 것이 좋습니다. 이 도움말에 나온 동의 상태 값은 예시입니다. 각 측정 제품의 기본 동의 모드가 조직의 정책과 일치하도록 설정되어 있는지 확인해야 합니다.

gtag.js

기본 측정 기능을 조정하려면 사이트의 모든 페이지에서 측정 데이터를 전송하는 명령어(예: config, event) 전에 gtag('consent', 'default', ...) 명령어를 호출하세요. 예를 들어 ad_storageanalytics_storage를 기본적으로 거부하려면 consent 매개변수에 다음과 같이 설정을 지정하세요.

gtag('consent', 'default', {
  'ad_storage': 'denied',
  'analytics_storage': 'denied'
});

태그 관리자

커뮤니티 템플릿 갤러리의 동의 모드 템플릿을 사용하여 동의를 관리하는 것이 좋습니다. 태그 관리자 API를 사용하여 직접 만드는 방법에 대해 자세히 알아보려면 태그 관리자 템플릿에서 동의 구성하기를 읽어보세요. 다음은 태그 관리자 API를 사용하여 모든 동의 유형의 기본 동의 상태를 설정하는 방법입니다.

const setDefaultConsentState = require('setDefaultConsentState');

setDefaultConsentState({
  'ad_storage': 'denied',
  'analytics_storage': 'granted'
});

사용자가 동의를 지정하거나 동의 선택을 변경하는 경우 측정 동작을 업데이트하세요.

gtag.js

update 호출에 제공된 필드에 대해서만 동의 상태가 변경됩니다. 이 예시에서는 ad_storage 값만 변경되었습니다. analytics_storagedenied로 설정된 경우 이 호출 후에도 계속 거부됩니다. 모든 동의 유형에 대해 올바른 값이 설정되어 있는지 확인하는 것은 사용자의 몫입니다. 지원되는 유형에 대해 자세히 알아보려면 API 참조의 동의 부분을 읽어보세요.

모든 페이지에 최대한 빨리 업데이트 사항을 전달하세요. 사용자가 동의한 후 이 상태를 유지하고 이후 페이지에서 그에 따라 업데이트 명령어를 호출하세요. 동의 모드에서 동의 선택 여부를 저장하지 않으므로 동의가 이루어진 후 모든 페이지에서 최대한 빨리 사용자의 동의 여부를 기반으로 동의 모드 업데이트 명령을 실행해야 합니다.

이 예에서는 하드코딩된 'granted'/'denied' 값을 사용하지만, 실제로는 동의 관리 솔루션에서 수집한 사용자의 실제 동의를 사용하여 런타임 시 결정해야 합니다. 다음은 사용자가 광고 쿠키 허용에 동의하면 동의를 부여하는 코드입니다.

gtag('consent', 'update', {
  'ad_storage': 'granted'
});

태그 관리자

다음은 모든 유형의 저장용량에 동의한다고 명시한 방문자에 대한 updateConsentState 호출을 보여주는 예입니다. 이 예에서는 하드코딩된 값을 기본으로 사용하지만, 실제로는 런타임 시 동의 관리 솔루션을 통해 수집한 동의를 바탕으로 이러한 값을 정해야 합니다.

const updateConsentState = require('updateConsentState');

updateConsentState({
  'ad_storage': 'granted',
  'analytics_storage': 'granted'
});

CMP가 비동기식으로 로드되는 경우 항상 Google 태그보다 먼저 실행되지 않을 수 있습니다. 이러한 상황을 처리하려면 밀리초 값과 함께 wait_for_update를 지정하여 데이터가 전송될 때까지의 대기 시간을 관리하세요.

예를 들어 기본적으로 특정 페이지에서 ad_storage를 거부하지만 CMP가 동의 상태를 업데이트하도록 허용하려면 wait_for_update를 사용하세요. 다음 코드에서 ad_storagedenied로 기본 설정되었고, 태그가 실행되기 전에 500밀리초 동안 동의 도구가 gtag('consent', 'update', ...)를 호출할 수 있습니다.

gtag('consent', 'default', {
  'ad_storage': 'denied',
  'wait_for_update': 500
})

구현 예

다음 예에서는 기본적으로 ad_storagedenied로 설정합니다. 사용자가 ad_storage에 기반한 기능에 동의한다고 표시한 후 granted로 업데이트됩니다.

gtag.js

여기에서는 코드의 순서가 중요합니다. 동의 코드가 잘못된 순서로 호출되면 동의 기본값이 작동하지 않습니다. 비즈니스 요구사항에 따라 구체적인 내용이 달라질 수 있지만 일반적으로 코드는 다음과 같은 순서로 실행해야 합니다.

  1. 전체 사이트 태그를 로드합니다. 이 코드는 기본 스니펫 코드입니다. 기본 스니펫은 gtag('consent', 'default', ...) 호출을 포함하도록 업데이트해야 합니다(아래 참고). 기본값을 설정하지 않으면 모든 태그 지정 기능이 사용 설정됩니다.

  2. 동의 솔루션을 로드합니다. 동의 솔루션이 비동기식으로 로드되는 경우 이 과정이 올바른 순서로 실행되는지 확인하는 방법은 비동기 동의 관리 플랫폼과 통합을 참고하세요.

  3. 동의 솔루션에 의해 처리되지 않으면 사용자가 동의한다고 명시한 후 gtag('consent', 'update', ...)를 호출하세요.

<script>
// Define dataLayer and the gtag function.
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}

// Default ad_storage to 'denied' as a placeholder
// Determine actual values based on your own requirements
gtag('consent', 'default', {
  'ad_storage': 'denied'
});
</script>
<!-- Global site tag (gtag.js) - Google Ads: CONVERSION_ID -->
<script async src="https://www.googletagmanager.com/gtag/js?id=AW-YYYYYY">
</script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}

  gtag('js', new Date());
  gtag('config', 'AW-YYYYYY');
</script>

<!-- Update this section based on your business requirements. -->
<script>
  function consentGranted() {
    gtag('consent', 'update', {
      'ad_storage': 'granted'
    });
  }
</script>

<body>
  ...
  <button onclick="consentGranted">Yes</button>
  ...
</body>

태그 관리자

태그 관리자를 사용하는 사이트의 경우 CMP를 사용하여 방문자 동의 선택 여부를 업데이트하는 것이 좋습니다. CMP에서는 커뮤니티 템플릿 갤러리를 통해 동의 모드 관리를 위한 태그를 만들 수 있는 템플릿을 제공합니다. 제공된 템플릿을 사용할 수 없는 경우 템플릿을 직접 만든 후 동의 솔루션을 통합할 수 있습니다.

템플릿을 사용할 수 없는 경우 페이지의 코드를 다음과 같이 업데이트할 수 있습니다. 여기에서는 코드의 순서가 중요합니다. 동의 코드가 잘못된 순서로 호출되면 동의 기본값이 작동하지 않습니다.

 <script>
   // Define dataLayer and the gtag function.
   window.dataLayer = window.dataLayer || [];
   function gtag(){dataLayer.push(arguments);}

   // Default ad_storage to 'denied'.
   gtag('consent', 'default', {
     'ad_storage': 'denied'
   });
 </script>

 <!-- Google Tag Manager -->
 <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
 })(window,document,'script','dataLayer','GTM-XXXXXX');</script>
 <!-- End Google Tag Manager -->

 <!-- Update this section based on your business requirements -->
 <script>
   function consentGranted() {
     gtag('consent', 'update', {
       'ad_storage': 'granted'
     });
   }
 </script>

 <body>
   ...
   <button onclick="consentGranted">Yes</button>
   ...
 </body>
 ```

고급 동의 기능에는 다음과 같은 기능이 포함됩니다.

  • 특정 지역의 동작 설정
  • 사용자가 쿠키에 동의하지 않은 경우 URL에 광고 클릭, 클라이언트 ID 및 세션 ID 정보 전달
  • 사용자가 광고 쿠키에 대한 동의를 거부하는 경우 광고 정보를 완전히 수정(삭제)

지역별 동작

특정 지역의 사용자에 대해 태그의 기본 동작을 변경하려면 동의 명령어에 지역을 지정하세요. 지역 값을 제공하면 사용자의 지리적 위치에 따라 기본값을 미세 조정할 수 있습니다. 지역을 식별하는 데 관한 자세한 내용은 지역 ID를 참고하세요.

다음 예에서는 스페인과 알래스카 사용자에 대해 analytics_storagedenied로 설정하고 다른 모든 사용자에 대해서는 ad_storagedenied로 설정합니다.

gtag.js

gtag('consent', 'default', {
  'analytics_storage': 'denied',
  'region': ['ES', 'US-AK']
});

gtag('consent', 'default', {
  'ad_storage': 'denied'
});

태그 관리자

위에 권장된 대로 템플릿을 사용하여 태그를 만드는 경우 지역별 기본값을 설정하는 컨트롤이 있을 수 있습니다. 템플릿 태그를 직접 작성하는 경우 다음 코드는 지역별 동의 상태 기본값을 설정하는 예를 보여줍니다.

const setDefaultConsentState = require('setDefaultConsentState');

setDefaultConsentState({
  'analytics_storage': 'denied',
  'region': ['ES', 'US-AK']
});
setDefaultConsentState({
  'ad_storage': 'denied'
});

가장 구체적인 설정이 우선 적용됨

지역 및 하위 지역 값이 나타나는 동일한 페이지에서 두 개의 기본 동의 명령어가 실행되면 더 구체적인 지역이 포함된 명령어가 적용됩니다. 예를 들어 US 지역의 경우 US-CA를 'granted'로 설정하고 US-CA 지역의 경우 ad_storage를 'denied'로 설정한 경우 캘리포니아에서 온 방문자에게는 더 구체적인 US-CA 설정이 적용됩니다. 이 예에서는 US-CA의 방문자가 ad_storage를 'denied'로 설정한다는 것을 의미합니다.

지역 ad_storage 동작
US 'granted' US에 있지만 CA에 없는 사용자에게 적용됩니다.
US-CA 'denied' US-CA 사용자에게 적용됩니다.
미지정 'granted' 기본값 'granted'를 사용합니다. 이 예에서는 US 또는 US-CA에 거주하지 않는 방문자에게 적용됩니다.

URL에 광고 클릭, 클라이언트 ID, 세션 ID 정보 전달

사용자가 광고를 클릭한 후 웹사이트를 방문하면 광고에 대한 정보가 방문 페이지 URL에 쿼리 매개변수로 추가될 수도 있습니다. 전환 정확성을 개선하기 위해 Google 태그에서는 일반적으로 이 정보를 도메인의 퍼스트 파티 쿠키에 저장합니다.

하지만 ad_storagedenied로 설정된 경우 Google 태그에서는 이 정보를 로컬로 저장하지 않습니다. ad_storagedenied일 때 광고 클릭 측정 품질을 개선하기 위해 URL 패스 스루를 사용하여 여러 페이지에서 URL 매개변수를 통해 광고 클릭 정보를 전달할 수도 있습니다.

마찬가지로 analytics_storagedenied로 설정된 경우 URL 패스 스루를 사용하여 여러 페이지에서 쿠키 없이 이벤트 및 세션 기반 분석 정보(전환 포함)을 전송할 수 있습니다.

URL 패스 스루를 사용하려면 다음 조건을 충족해야 합니다.

  • 페이지에 동의 인식 Google 태그가 있어야 합니다.
  • 광고주가 URL 패스 스루 기능을 사용하도록 선택해야 합니다.
  • 페이지에 동의 모드가 구현되어 있어야 합니다.
  • 발신 링크는 현재 페이지의 도메인과 동일한 도메인을 참조해야 합니다.
  • URL에 gclid/dclid가 있어야 합니다(Google Ads 및 플러드라이트 태그만 해당)

gtag.js

이 기능을 사용 설정하려면 url_passthrough 매개변수를 true로 설정하세요.

gtag('set', 'url_passthrough', true);

태그 관리자

동의 상태를 설정하는 템플릿 태그를 사용하는 경우 gtagSet 맞춤 템플릿 API를 사용해 URL 패스 스루를 설정할 수도 있습니다. 또는 전환 링커 및/또는 애널리틱스 태그에서 다음 옵션을 사용하여 설정할 수도 있습니다.

Google Ads플러드라이트 태그의 경우:

이 기능을 사용 설정하려면 전환 링커 태그를 만들거나 기존 전환 링커 태그를 사용하고 모든 페이지 URL에서 연결 사용 설정을 선택하세요. 전환 링커 태그를 만드는 방법은 기본 설정을 참고하세요.

Google 애널리틱스 태그의 경우:

  1. 태그 관리자에서 설정할 필드로 이동합니다.
  2. 설정할 필드 섹션이 펼쳐지면 행 추가를 클릭합니다.
  3. 필드 이름에 올바른 값을 입력합니다.
    • Google 애널리틱스: GA4 구성 태그에 url_passthrough를 입력합니다.
    • Google 애널리틱스 설정 변수를 사용하는 Google 애널리틱스: 유니버설 애널리틱스 태그에 urlPassthrough를 입력합니다.
  4. 에 'true'를 입력합니다.
  5. 태그를 저장하고 게시합니다.

또는 사이트의 모든 페이지에서 GTM 설치 스니펫 앞에 url_passthrough 매개변수를 true로 설정할 수 있습니다.

window.dataLayer = window.dataLayer || [];
function gtag(){window.dataLayer.push(arguments);}
gtag('set', 'url_passthrough', true);

URL 패스 스루를 사용하는 경우 사용자가 웹사이트의 페이지 간에 이동할 때 쿼리 매개변수가 링크에 추가될 수도 있습니다.

  • gclid
  • dclid
  • gclsrc
  • _gl
  • wbraid

최상의 결과를 얻으려면 다음 사항을 확인하세요.

  1. 사이트의 리디렉션을 통해 위의 모든 쿼리 매개변수가 전달됩니다.
  2. 분석 도구가 페이지 URL에서 이 매개변수를 무시합니다.
  3. 이 매개변수가 사이트 동작을 방해하지 않습니다.

광고 데이터 수정

ad_storagedenied이면 광고 목적으로 새로운 쿠키가 설정되지 않습니다. 또한 이전에 google.com 및 doubleclick.net에 설정된 서드 파티 쿠키는 스팸 및 사기 관련 목적을 제외하고는 사용되지 않습니다. Google로 전송되는 데이터에는 URL 매개변수의 모든 광고 클릭 정보를 포함한 전체 페이지 URL이 계속 포함됩니다.

ad_storagedenied일 때 광고 데이터를 추가로 수정하려면, gtag를 사용하는 경우 ads_data_redactiontrue로 설정하세요.

gtag('set', 'ads_data_redaction', true);

ads_data_redactiontrue이고 ad_storagedenied이면 Google Ads 및 플러드라이트 태그의 네트워크 요청에 전송된 광고 클릭 식별자가 수정됩니다. 네트워크 요청은 쿠키가 없는 도메인을 통해서도 전송됩니다.

태그 관리자에는 동의 설정에 대한 응답으로 태그가 작동하는 방식을 관리할 때 함께 사용하면 도움이 되는 여러 기능이 있습니다. 동의 초기화 트리거, 동의 관리를 위한 태그 설정, 동의 개요 페이지가 그 대표적인 기능입니다. 동의 모드와 통합하는 기능을 자사 제품에 구현한 제3자 동의 관리 솔루션 제공업체도 있습니다. 태그 관리자 동의 기능에 대해 자세히 알아보기

동의 모드 구성 확인 및 디버깅에 관한 자세한 내용은 Tag Assistant 동의 모드 디버깅을 참고하세요.

기존 태그 관리

ga.js, analytics.js 또는 conversion.js와 같은 기존 Google 태그를 사용하는 경우 gtag.js 또는 Google 태그 관리자로 업데이트해야 합니다.

다른 기존 태그의 개인 정보 보호 설정에 대한 자세한 내용은 다음 문서를 참고하세요.