이 가이드에서는 모든 API 호출의 공통 구조를 설명합니다.
클라이언트 라이브러리를 사용하여 API와 상호작용하는 경우 기본 요청 세부정보를 알 필요가 없습니다. 하지만 테스트 및 디버깅 시 API 호출 구조에 관한 지식이 유용할 수 있습니다.
Google Ads API는 REST 바인딩이 있는 gRPC API입니다. 즉, API를 호출하는 방법에는 두 가지가 있습니다.
권장:
대부분의 문서에서는 gRPC 사용을 설명합니다.
선택사항:
- 요청 본문을 JSON 객체로 만듭니다.
- HTTP 1.1을 사용하여 서버로 전송합니다.
- 응답을 JSON 객체로 역직렬화합니다.
- 결과를 해석합니다.
REST 사용에 관한 자세한 내용은 REST 인터페이스 가이드를 참고하세요.
리소스 식별자
Google Ads API의 객체는 구조화된 리소스 이름과 복합 식별자를 사용하여 처리됩니다.
리소스 이름
API의 대부분의 객체는 리소스 이름 문자열로 식별됩니다. 이러한 문자열은 REST 인터페이스를 사용할 때 URL로도 사용됩니다. 구조는 REST 인터페이스 리소스 이름을 참고하세요.
복합 ID
객체의 ID가 전역적으로 고유하지 않으면 상위 ID와 물결표 (~)를 앞에 추가하여 해당 객체의 복합 ID가 구성됩니다.
예를 들어 AdGroupAd의 리소스 이름 패턴은 customers/{customer_id}/adGroupAds/{ad_group_id}~{ad_id}입니다. 복합 식별자가 상위 광고 그룹 ID (ad_group.id)와 기본 광고 ID (ad_group_ad.ad.id)를 결합하므로 광고 ID 앞에 광고 그룹 ID를 추가합니다.
123의AdGroupId+45678의~+AdId= 복합 광고 그룹123~45678의 광고 ID
요청 헤더
요청의 본문에 포함되는 HTTP 헤더 (또는 gRPC 메타데이터)는 다음과 같습니다.
승인
고객을 대신하여 행동하는 관리자 계정 또는 자신의 계정을 직접 관리하는 광고주를 식별하는 Authorization: Bearer
YOUR_ACCESS_TOKEN 형식의 OAuth 2.0 액세스 토큰을 포함해야 합니다. 액세스 토큰을 가져오는 방법은 OAuth2 가이드를 참고하세요. 액세스 토큰은 획득 후 1시간 동안 유효합니다. 만료되면 액세스 토큰을 새로고침하여 새 토큰을 가져옵니다. 클라이언트 라이브러리는 만료된 토큰을 자동으로 새로고침합니다.
인증 오류가 발생하면 올바른 사용자 인증 정보를 사용하고 있고 충분한 권한이 있는지 확인합니다. USER_PERMISSION_DENIED 오류는 인증된 사용자에게 요청에 지정된 고객 계정에 대한 액세스 권한이 없을 수 있음을 나타냅니다. Google Cloud 프로젝트가 Test 액세스에만 승인되었는데 프로덕션 계정을 타겟팅하는 요청을 보내면 API는 v25 이상에서 AuthorizationError.CLOUD_PROJECT_NOT_APPROVED_FOR_PRODUCTION (또는 v24 이하에서 AuthorizationError.ACTION_NOT_PERMITTED)를 반환합니다.
권한 관리에 관한 자세한 내용은 Google Ads 액세스 수준을 참고하세요.
login-customer-id
요청에 사용할 승인된 고객의 고객 ID입니다 (하이픈 제외, -). 관리자 계정을 통해 고객 계정에 액세스하는 경우 이 헤더는 필수이며 관리자 계정의 고객 ID로 설정해야 합니다. 관리자 계정을 통해 인증할 때 login-customer-id를 포함하지 않으면 AuthorizationError.USER_PERMISSION_DENIED 오류가 발생합니다. 일반적인 오류에서 이 오류 유형에 관한 자세한 내용을 확인하세요. 계정 액세스가 해결되는 방식에 관한 자세한 설명은 OAuth 액세스 모델 가이드를 참고하세요.
https://googleads.googleapis.com/v25/customers/1234567890/campaignBudgets:mutate
login-customer-id를 설정하는 것은 로그인 후 Google Ads UI에서 계정을 선택하거나 오른쪽 상단에서 프로필 이미지를 클릭하는 것과 같습니다.
이 헤더를 포함하지 않으면 기본값은 운영 고객입니다.
linked-customer-id
이 헤더는 연결된 Google Ads 계정에 대해 조치를 취할 때 파트너 (예: 서드 파티 앱 분석 서비스 제공업체 또는 데이터 파트너)가 필요로 하며 사용합니다. 이 헤더는 제품 링크가 있는 Google Ads 계정의 고객 ID를 지정해야 합니다.
파트너가 제품 링크를 기반으로 Google Ads 계정에 API 호출을 해야 하는 시나리오를 생각해 보세요.
- 광고주: API 호출에 의해 관리되거나 업데이트되는 Google Ads 계정입니다.
광고주 계정의 ID는 요청에 지정됩니다. REST에서는
customerId경로 매개변수 (예:customers/1111111111/...)이고 gRPC에서는 요청의customer_id필드입니다. - 파트너: 파트너 계정 (예: 서드 파티 앱 분석 제공업체 또는 데이터 파트너)입니다.
- 연결된 계정: 파트너와 제품 링크가 설정되어 파트너에게 광고주에 대한 액세스 권한을 부여하는 Google Ads 계정입니다.
파트너 계정에 대한 액세스 권한이 있는 사용자가 광고주 계정의 항목에 대해 작업을 수행하기 위해 API를 호출합니다 (예: 전환을 업로드하거나 사용자 목록을 관리). 연결된 계정은 광고주 계정 자체이거나 광고주 계정의 관리자 계정일 수 있습니다.
요청 헤더는 다음과 같이 설정해야 합니다.
Authorization: 파트너에 액세스할 수 있는 사용자의 OAuth 2.0 액세스 토큰입니다.login-customer-id: 파트너 계정의 고객 ID입니다. 인증된 사용자에게 이 계정에 대한 액세스 권한이 있어야 합니다.linked-customer-id: 연결된 계정의 고객 ID입니다. 이 헤더는 이 요청의 승인이 연결된 계정과 파트너 간의 제품 링크에 의존함을 나타냅니다.
연결 시나리오에는 두 가지가 있습니다.
- 광고주 계정이 파트너 계정과 직접 제품 링크를 보유하는 경우 연결된 계정은 광고주이며
linked-customer-id은 광고주 계정의 고객 ID로 설정해야 합니다. - 광고주 계정이 파트너 계정과 제품 링크가 있는 관리자 계정으로 관리되는 경우 연결된 계정은 관리자 계정이며
linked-customer-id은 관리자의 고객 ID로 설정해야 합니다.
예 1: 직접 링크
광고주 계정 1111111111이 파트너 계정 2222222222과 직접 연결되어 있고 API 호출이 customers/1111111111/...을 타겟팅하는 경우:
Authorization: Bearer YOUR_ACCESS_TOKEN
login-customer-id: 2222222222
linked-customer-id: 1111111111
예 2: 관리자 링크
광고주 계정 1111111111이 관리자 계정 3333333333에 의해 관리되고, 관리자 계정 3333333333이 파트너 계정 2222222222과 연결되어 있으며, API 호출이 customers/1111111111/...을 타겟팅하는 경우:
Authorization: Bearer YOUR_ACCESS_TOKEN
login-customer-id: 2222222222
linked-customer-id: 3333333333
응답 헤더
다음 헤더 (또는 gRPC 트레일링 메타데이터)는 응답 본문과 함께 반환됩니다. 디버깅 목적으로 이러한 값을 로깅하는 것이 좋습니다.
request-id
request-id는 이 요청을 고유하게 식별하는 문자열입니다. 지원팀에 문의하여 실패한 API 요청 또는 예기치 않은 API 요청을 해결할 때 이 값을 제공하세요.