동영상: 2019 워크숍의 서비스 및 리소스 강연을 확인하세요.
이 가이드에서는 Google Ads API를 구성하는 기본 구성요소를 소개합니다. Google Ads API는 리소스 와 서비스 로 구성됩니다. 리소스는 Google Ads 항목을 나타내고 서비스는 Google Ads 항목을 검색하고 조작합니다.
객체 계층 구조
Google Ads 계정은 객체 계층 구조로 볼 수 있습니다.

계정의 최상위 리소스는 고객입니다.
각 고객은 하나 이상의 활성 캠페인을 포함합니다.
각 캠페인은 광고를 논리적 모음으로 그룹화하는 데 사용되는 하나 이상의 광고그룹을 포함합니다.
광고그룹 광고는 실행 중인 광고를 나타냅니다. 광고그룹당 하나의 광고그룹 광고만 포함할 수 있는 앱 캠페인을 제외하고 각 광고그룹에는 하나 이상의 광고그룹 광고가 포함됩니다.
하나 이상의 AdGroupCriterion
또는 CampaignCriterion을 광고그룹 또는
캠페인에 연결할 수 있습니다. 이는 광고가 트리거되는 방식을 정의하는 기준을 나타냅니다.
다양한 기준 유형이 있습니다. 예: 키워드, 연령대, 위치 캠페인 수준에서 정의된 기준은 캠페인 내의 다른 모든 리소스에 영향을 미칩니다. 캠페인 전체 예산과 날짜를 지정할 수도 있습니다.
마지막으로 계정, 캠페인 또는 광고그룹 수준에서 확장 소재를 연결할 수 있습니다. 확장 소재를 사용하면 전화번호, 도로명 주소, 프로모션과 같은 추가 정보를 광고에 제공할 수 있습니다. 확장 소재 개요를 참고하세요.
리소스
리소스는 Google Ads 계정 내의 항목을 나타냅니다. Campaign 및 AdGroup은 리소스의 두 가지 예입니다.
객체 ID
Google Ads의 모든 객체는 자체 ID로 식별됩니다. 이러한 ID 중 일부는 모든 Google Ads 계정에서 전역적으로 고유한 반면, 일부는 제한된 범위 내에서만 고유합니다.
| 객체 ID | 고유성 범위 | 전역적으로 고유한가요? |
|---|---|---|
| 예산 ID | 전역 | 예 |
| 캠페인 ID | 글로벌 수준 | 예 |
| AdGroup ID | 전역 | 예 |
| 광고 ID | 광고그룹 | 아니요. 하지만 (AdGroupId, AdId) 쌍은 전역적으로 고유합니다. |
| AdGroupCriterion ID | 광고그룹 | 아니요. 하지만 (AdGroupId, CriterionId) 쌍은 전역적으로 고유합니다. |
| CampaignCriterion ID | 캠페인 | 아니요. 하지만 (CampaignId, CriterionId) 쌍은 전역적으로 고유합니다. |
| 라벨 ID | 고객 | 아니요. 하지만 (CustomerId, LabelId) 쌍은 전역적으로 고유합니다. |
| UserList ID | 전역 | 예 |
| 저작물 ID | 전역 | 예 |
이러한 ID 규칙은 Google Ads 객체의 로컬 저장소를 설계할 때 유용할 수 있습니다.
일부 객체는 여러 항목 유형에 사용할 수 있습니다. 이러한 경우 객체에는 콘텐츠를 설명하는 type 필드가 포함됩니다. 예를 들어
AdGroupAd는 텍스트 광고,
호텔 광고 또는 지역 광고와 같은 객체를 참조할 수 있습니다. 이 값은
AdGroupAd.ad.type 필드를 통해 액세스할 수 있으며
AdType enum의 값을 반환합니다.
리소스 이름
각 리소스는 리소스와 상위 요소를 경로로 연결하는 resource_name 문자열로 고유하게 식별됩니다. 예를 들어 캠페인 리소스 이름의 형식은 다음과 같습니다.
customers/customer_id/campaigns/campaign_id
따라서 고객 ID가 1234567인 Google Ads 계정에서 ID가 987654인 캠페인의 resource_name은 다음과 같습니다.
customers/1234567/campaigns/987654
서비스
서비스를 사용하면 Google Ads 항목을 검색하고 수정할 수 있습니다. 수정, 객체 및 통계 검색, 메타데이터 검색 서비스의 세 가지 유형의 서비스가 있습니다.
객체 수정 (변형)
이러한 서비스는 mutate 요청을 사용하여 연결된 리소스 유형의 인스턴스를 수정합니다. 또한 단일 리소스 인스턴스를 검색하는 get 요청을 제공하며 이는 리소스의 구조를 검사하는 데 유용할 수 있습니다.
서비스의 예는 다음과 같습니다.
CustomerService고객을 수정하는 customers.CampaignService캠페인을 수정하는 캠페인AdGroupService광고그룹을 수정하는 ad groups
각 mutate 요청에는 상응하는 operation 객체가 포함되어야 합니다. 예를 들어 CampaignService.MutateCampaigns 메서드는 하나 이상의
CampaignOperation 인스턴스를 예상합니다. 작업에 대한
자세한 내용은
객체 변경 및 검사를 참고하세요.
동시 변형
Google Ads 객체는 둘 이상의 소스에서 동시에 수정할 수 없습니다. 앱으로 동일한 객체를 업데이트하는 사용자가 여러 명 있거나 여러 스레드를 사용하여 Google Ads 객체를 병렬로 변형하는 경우 오류가 발생할 수 있습니다. 여기에는 동일한 애플리케이션의 여러 스레드 또는 다른 애플리케이션 (예: 앱과 동시 Google Ads UI 세션)에서 객체를 업데이트하는 것이 포함됩니다.
API는 업데이트 전에 객체를 잠그는 방법을 제공하지 않습니다. 두 소스가 객체를 동시에 변형하려고 하면 API에서 DatabaseError.CONCURRENT_MODIFICATION_ERROR를 발생시킵니다.
비동기 변형과 동기 변형 비교
Google Ads API 변형 메서드는 동기식입니다. API 호출은 객체가 변형된 후에만 응답을 반환하므로 각 요청에 대한 응답을 기다려야 합니다. 이 접근 방식은 코딩하기 비교적 간단하지만 프로세스가 호출이 완료될 때까지 기다려야 하는 경우 부하 분산에 부정적인 영향을 미치고 리소스를 낭비할 수 있습니다.
대안은 완료를 기다리지 않고 여러 서비스에서 일괄
작업을 실행하는
BatchJobService를 사용하여 객체를 비동기식으로 변형하는 것입니다. 일괄 작업이 제출되면 Google Ads API 서버는 작업을 비동기식으로 실행하여 프로세스가 다른 작업을 실행할 수 있도록 합니다. 작업 상태를 주기적으로 확인하여 완료 여부를 확인할 수 있습니다.
비동기 처리에 대한 자세한 내용은 일괄 처리 가이드를 참고하세요.
변형 유효성 검사
대부분의 변형 요청은 실제 데이터에 대해 호출을 실제로 실행하지 않고도 유효성을 검사할 수 있습니다. 작업을 실제로 실행하지 않고도 누락된 매개변수 및 잘못된 필드 값에 대한 요청을 테스트할 수 있습니다.
이 기능을 사용하려면 요청의 선택적 validate_only 불리언 필드를 true로 설정합니다. 그러면 요청이 실행될 것처럼 완전히 유효성이 검사되지만 최종 실행은 건너뜁니다. 오류가 발견되지 않으면 빈 응답이 반환됩니다. 유효성 검사에 실패하면 응답의 오류 메시지에 실패 지점이 표시됩니다.
validate_only 는 일반적인 정책 위반에 대한 광고를 테스트하는 데 특히 유용합니다. 특정 단어, 문장 부호, 대문자 또는 길이와 같은 정책을 위반하는 경우 광고가 자동으로 거부됩니다. 악성 광고 하나로 인해 전체 일괄 처리가 실패할 수 있습니다. validate_only 요청 내에서 새 광고를 테스트하면 이러한 위반사항을 확인할 수 있습니다. 정책 위반 오류 처리에
관한 코드 예시를 참고하여 실제로 작동하는지 확인하세요.
객체 및 실적 통계 가져오기
GoogleAdsService 는 객체 및 성능 통계를 검색하기 위한 단일 통합 서비스입니다.
GoogleAdsService의 모든 Search 및 SearchStream 요청에는 쿼리할 리소스, 검색할 리소스 속성 및 실적 측정항목, 요청을 필터링하는 데 사용할 조건자, 실적 통계를 세분화하는 데 사용할 분류 기준을 지정하는 쿼리가 필요합니다. 쿼리 형식에 대한 자세한 내용은
Google Ads 쿼리 언어 가이드를 참고하세요.
메타데이터 검색
GoogleAdsFieldService 는 리소스의 사용 가능한 속성 및 데이터 유형과 같은 Google Ads API의 리소스에 관한 메타데이터를 검색합니다.
이 서비스는
GoogleAdsService에 대한 쿼리를 구성하는 데 필요한 정보를 제공합니다. 편의를 위해
GoogleAdsFieldService에서 반환된 정보는
필드 참고 문서에서도 확인할 수 있습니다.