태그 관리자 API 승인

이 문서에서는 애플리케이션이 Tag Manager API에 요청할 수 있는 권한을 얻는 방법을 설명합니다.

요청 승인

사용자가 Google 사이트에서 계정 정보를 보려면 먼저 Google 계정으로 로그인해야 합니다. 마찬가지로 사용자가 애플리케이션에 처음 액세스할 때 데이터에 액세스할 수 있도록 애플리케이션을 승인해야 합니다.

애플리케이션에서 Tag Manager API로 전송하는 모든 요청에는 승인 토큰이 포함되어야 합니다. Google은 이 토큰을 사용하여 애플리케이션을 식별합니다.

승인 프로토콜 정보

요청을 승인하려면 애플리케이션에서 OAuth 2.0을 사용해야 합니다. 다른 승인 프로토콜은 지원되지 않습니다. 애플리케이션에서 Google 계정으로 로그인을 사용하는 경우, 승인의 일부 절차는 자동으로 처리됩니다.

OAuth 2.0을 사용하여 요청 승인하기

Tag Manager API에 대한 모든 요청은 인증된 사용자의 승인을 받아야 합니다.

OAuth 2.0의 세부적인 승인 절차('흐름')는 제작 중인 애플리케이션 종류에 따라 약간씩 다릅니다. 다음의 일반적인 과정은 모든 애플리케이션 유형에 적용됩니다.

  1. 애플리케이션을 만들 때 Google API 콘솔을 사용하여 애플리케이션을 등록합니다. 이렇게 하면 Google에서 클라이언트 ID 및 클라이언트 보안 비밀과 같이 나중에 필요한 정보를 제공합니다.
  2. Google API 콘솔에서 태그 관리자 API를 활성화합니다. API 콘솔의 목록에 이 API가 없다면 이 단계를 건너뜁니다.
  3. 애플리케이션에서 사용자 데이터에 액세스해야 하는 경우 Google에 특정 액세스 범위를 요청합니다.
  4. Google에서 사용자에게 애플리케이션이 일부 데이터를 요청하도록 승인할 것인지 물어보는 동의 화면을 표시합니다.
  5. 사용자가 승인하면 Google에서 애플리케이션에 제한 시간이 있는 액세스 토큰을 제공합니다.
  6. 애플리케이션에서 액세스 토큰을 첨부하여 사용자 데이터를 요청합니다.
  7. Google에서 요청과 토큰이 유효하다고 판단하면 요청된 데이터를 반환합니다.

일부 흐름에는 새로운 액세스 토큰을 얻기 위해 갱신 토큰을 사용하는 등의 추가 단계가 포함됩니다. 다양한 유형의 애플리케이션에 적용되는 흐름을 자세히 알아보려면 Google의 OAuth 2.0 문서를 참조하세요.

다음은 Tag Manager API의 OAuth 2.0 범위 정보입니다.

범위 의미
https://www.googleapis.com/auth/tagmanager.readonly Google 태그 관리자 컨테이너를 확인합니다.
https://www.googleapis.com/auth/tagmanager.edit.containers Google 태그 관리자 컨테이너를 관리합니다.
https://www.googleapis.com/auth/tagmanager.delete.containers Google 태그 관리자 컨테이너를 삭제합니다.
https://www.googleapis.com/auth/tagmanager.edit.containerversions Google 태그 관리자 컨테이너 버전을 관리합니다.
https://www.googleapis.com/auth/tagmanager.publish Google 태그 관리자 컨테이너를 게시합니다.
https://www.googleapis.com/auth/tagmanager.manage.users Google 태그 관리자 데이터의 사용자 권한을 관리합니다.
https://www.googleapis.com/auth/tagmanager.manage.accounts Google 태그 관리자 계정을 관리합니다.

OAuth 2.0을 사용하여 액세스를 요청하려면 애플리케이션에 범위 정보와 함께 애플리케이션 등록 시 Google에서 제공하는 정보(예: 클라이언트 ID, 클라이언트 보안 비밀)가 필요합니다.

시작하기

Tag Manager API를 사용하려면 먼저 Google API 콘솔에서 프로젝트를 만들고, API를 사용 설정하고, 사용자 인증 정보를 만드는 과정을 안내하는 설정 도구를 사용해야 합니다.

새 서비스 계정을 설정하려면 다음 안내를 따르세요.

  1. 사용자 인증 정보 만들기 > 서비스 계정 키를 클릭합니다.
  2. 서비스 계정의 공개/비공개 키를 표준 P12 파일로 다운로드할지 아니면 Google API 클라이언트 라이브러리에서 로드할 수 있는 JSON 파일로 다운로드할지 선택합니다.

새로운 공개 키/비공개 키 쌍이 생성되고 기기에 다운로드됩니다. 생성된 파일은 이 키의 유일한 사본입니다. 이를 안전하게 저장해야 합니다.

일반적인 OAuth 2.0 흐름

다음 가이드라인은 특정 OAuth 2.0 흐름의 일반적인 사용 사례를 간략히 설명합니다.

웹 서버

이 흐름은 사용자의 Google 태그 관리자 계정에 대한 자동/오프라인/예약된 액세스에 적합합니다.

예:
  • 서버에서 태그 관리자 정보 자동 업데이트

클라이언트 측

사용자가 브라우저 내에서 Google 태그 관리자 계정에 액세스하기 위해 애플리케이션과 직접 상호작용할 때 적합합니다. 이 흐름은 서버 측 기능이 필요하지 않지만, 자동/오프라인/예약 보고에는 비실용적입니다.

예:
  • 맞춤설정된 브라우저 기반 구성 도구

설치된 앱

패키지로 배포되고 사용자가 설치하는 애플리케이션용 인증 흐름을 완료하려면 애플리케이션 또는 사용자에게 브라우저에 대한 액세스 권한이 있어야 합니다.

예:
  • PC 또는 Mac의 데스크톱 위젯
  • 콘텐츠 관리 시스템용 플러그인입니다. 웹 서버 또는 클라이언트 측에 비해 이 흐름의 이점은 애플리케이션에 단일 API 콘솔 프로젝트를 사용할 수 있다는 것입니다. 이렇게 하면 사용자가 더 간단하게 설치할 수 있습니다.

서비스 계정

자체 Google 태그 관리자 계정의 자동/오프라인/예약 액세스에 유용합니다. 예를 들어 내 Google 태그 관리자 계정을 모니터링하고 다른 사용자와 공유하는 맞춤 도구를 빌드할 수 있습니다.

문제 해결

access_token가 만료되었거나 특정 API 호출에 잘못된 범위를 사용하는 경우 응답에 401 상태 코드가 표시됩니다.

승인된 사용자가 Google 태그 관리자 계정 또는 컨테이너에 액세스할 수 없는 경우 응답에 403 상태 코드가 표시됩니다. 올바른 사용자로 승인되었고 태그 관리자 계정 또는 컨테이너에 액세스할 수 있는 권한을 부여받았는지 확인하세요.

OAuth 2.0 Playground

OAuth 2.0 플레이그라운드를 사용하면 웹 인터페이스를 통해 전체 승인 흐름을 진행할 수 있습니다. 또한 승인된 쿼리를 만드는 데 필요한 모든 HTTP 요청 헤더가 표시됩니다. 자체 애플리케이션에서 작동하도록 승인을 얻을 수 없는 경우 OAuth 2.0 플레이그라운드를 통해 작동하도록 해야 합니다. 그런 다음 플레이그라운드의 HTTP 헤더 및 요청을 애플리케이션에서 전송하는 요청과 비교할 수 있습니다. 이를 통해 요청 형식을 올바르게 지정했는지 쉽게 확인할 수 있습니다.

잘못된 권한 부여

갱신 토큰을 사용하려고 할 때 invalid_grant 오류 응답이 표시되면 다음 중 하나 또는 둘 다로 인해 오류가 발생한 것일 수 있습니다.

  1. 서버의 시계가 NTP와 동기화되지 않습니다.
  2. 갱신 토큰 한도를 초과했습니다.
    애플리케이션에서는 단일 Google 태그 관리자 계정에 액세스하기 위해 여러 갱신 토큰을 요청할 수 있습니다. 예를 들어 이 방법은 사용자가 여러 컴퓨터에 애플리케이션을 설치하고 동일한 Google 태그 관리자 계정에 액세스하려는 경우에 유용합니다. 이 경우 설치당 하나씩 총 두 개의 갱신 토큰이 필요합니다. 갱신 토큰 수가 한도를 초과하면 이전 토큰은 무효화됩니다. 애플리케이션에서 무효화된 갱신 토큰을 사용하려고 하면 invalid_grant 오류 응답이 반환됩니다. 고유한 클라이언트-ID/계정 조합마다 갱신 토큰을 최대 25개까지 포함할 수 있습니다. (이 한도는 변경될 수 있습니다.) 애플리케이션에서 동일한 Client-ID/계정 조합에 대한 갱신 토큰을 계속 요청하는 경우 26번째 토큰이 발급되면 발급된 첫 번째 갱신 토큰이 무효화됩니다. 27번째로 요청된 갱신 토큰은 두 번째로 발급된 토큰을 무효화하는 식입니다.