Google Ads 액세스 모델 이해하기

Google Ads 계정에는 Google Ads 관리자 계정 Google Ads 광고주 계정 (고객 또는 클라이언트 계정이라고도 함)의 두 가지 유형이 있습니다. 관리자 계정은 다른 Google Ads 관리자 계정 또는 Google Ads 광고주 계정을 관리할 수 있습니다. 광고주 계정을 관리자 계정에 연결한 다음 관리자 계정을 통해 광고주 계정을 관리할 수 있습니다. 전체 연결 구조는 리프 수준에 광고주 계정이 있는 방향성 비순환 그래프입니다.

개별 사용자 또는 서비스 계정에 Google Ads 계정에 대한 액세스 권한을 부여할 수 있습니다. 사용자에게 광고주 계정에 대한 액세스 권한을 부여하는 방법에는 두 가지가 있습니다.

  • 사용자를 광고주 계정으로 초대하여 해당 계정에 대한 직접 액세스 권한을 부여합니다.
  • 사용자를 해당 계정에 연결된 관리자 계정에 초대하여 광고주 계정에 대한 간접 액세스 권한을 부여합니다. 관리자 계정은 연결된 모든 계정에 액세스할 수 있으므로 사용자는 광고주 계정에 액세스할 수 있습니다.

계정을 관리하도록 사용자를 초대할 때 사용자 역할을 할당할 수도 있습니다.

다음 계정 계층 구조를 살펴보세요. 모든 사용자에게 표준 액세스 권한이 있다고 가정합니다.

계정 계층 구조 다이어그램

다음 표에는 이 계정 구조가 요약되어 있습니다.

사용자 다음에 직접 액세스할 수 있음 다음에 대한 간접 액세스 권한 있음
U1, SA1 M1 M2, A1, A2, A3
U2 M2, M3 A1, A2, A3, A4
U3 A4  

로그인 고객 ID

사용자가 여러 계정 계층 구조에 액세스할 수 있습니다. 이러한 경우 API 호출을 할 때는 승인 및 계정 액세스 수준을 올바르게 결정하는 데 사용할 루트 계정을 지정해야 합니다. API 요청의 일부로 login-customer-id 헤더를 지정하면 됩니다.

다음 표에서는 이전 예시의 계정 계층 구조를 사용하여 사용할 수 있는 로그인 고객 ID와 호출할 수 있는 해당 계정 목록을 보여줍니다.

사용자 사용할 로그인 고객 ID API 호출을 수행할 계정
U1, SA1 M1 M1, M2, A1, A2, A3
U2 M2 M2, A1, A2, A3
U2 M3 M3, A1, A4
U3 A4 A4

사용자가 호출하는 Google Ads 계정에 직접 액세스할 수 있는 경우 login-customer-id 헤더를 제공하지 않아도 됩니다. 예를 들어 U3 사용자 인증 정보를 사용하여 A4에 대한 호출을 실행할 때 login-customer-id 헤더를 지정할 필요가 없습니다. Google Ads 서버가 고객 ID (A4)에서 액세스 수준을 올바르게 확인할 수 있기 때문입니다.

클라이언트 라이브러리 중 하나를 사용하는 경우 다음 설정을 사용하여 login-customer-id 헤더를 지정하세요.

자바

ads.properties 파일에 다음 설정을 추가합니다.

api.googleads.loginCustomerId=INSERT_LOGIN_CUSTOMER_ID_HERE

C#

GoogleAdsConfig 객체를 초기화하고 이를 사용하여 GoogleAdsClient 객체를 만들 때 다음 설정을 추가합니다.

GoogleAdsConfig config = new GoogleAdsConfig()
{
    ...
    LoginCustomerId = ******
};
GoogleAdsClient client = new GoogleAdsClient(config);

PHP

google_ads_php.ini 파일에 다음 설정을 추가합니다.

[GOOGLE_ADS]
loginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE"

Python

google-ads.yaml 파일에 다음 설정을 추가합니다.

login_customer_id: INSERT_LOGIN_CUSTOMER_ID_HERE

Ruby

google_ads_config.rb 파일에 다음 설정을 추가합니다.

Google::Ads::GoogleAds::Config.new do |c|
  c.login_customer_id = 'INSERT_LOGIN_CUSTOMER_ID_HERE'
end

이 파일을 보관하는 경로를 전달하여 GoogleAdsClient 인스턴스를 만듭니다.

client = Google::Ads::GoogleAds::GoogleAdsClient.new('path/to/google_ads_config.rb')

Perl

googleads.properties 파일에 다음 설정을 추가합니다.

loginCustomerId=INSERT_LOGIN_CUSTOMER_ID_HERE

curl

curl 명령어를 실행할 때 다음 명령줄 인수를 지정합니다.

-H "login-customer-id: LOGIN_CUSTOMER_ID"

사용자 역할

Google Ads API에는 자체적인 별도의 액세스 모델이 없으며 기능을 제한하기 위해 별도의 OAuth 2.0 범위를 사용하지 않습니다. 예를 들어 Google Ads API는 읽기 전용 작업과 읽기/쓰기 작업에 동일한 범위를 사용합니다. 대신 Google Ads API는 Google Ads에서 지원하는 것과 동일한 사용자 역할을 따릅니다. 관리자 수준에서 계정에 사용자 역할이 부여되면 계층 구조의 계정에서 역할을 상속받습니다. 사용자에게 특정 계정에 대한 충돌하는 역할이 있는 경우 API 요청에 지정된 login-customer-id 계정에서 올바른 수준을 확인합니다.

다음 표에서는 이전 예의 계정 계층 구조를 사용하여 사용자에게 다양한 사용자 역할을 부여할 때의 효과를 보여줍니다.

사용자 사용자 역할이 부여됨 login-customer-id 유효 액세스 수준
SA1 계정 M1의 일반 액세스 M1 M1, M2, A1, A2, A3의 일반 액세스
U2 M2
의 표준 액세스 M3
의 읽기 전용 액세스
M2 M2, A1, A2, A3의 표준 액세스
U2 M2
의 표준 액세스 M3
의 읽기 전용 액세스
M3 M3, A1, A4에 대한 읽기 전용 액세스