API 구조 가이드에서 설명한 것처럼 Google Ads API의 각 최상위 리소스에는 리소스 인스턴스 수정을 지원하는 해당 리소스 유형별 서비스가 있습니다. GoogleAdsService.Mutate를 사용하여 단일 요청에서 여러 리소스 유형을 원자적으로 변경할 수도 있습니다.
이 가이드에서는 CampaignService를 사용하여 Campaign 객체를 수정하는 방법을 보여주지만 다른 모든 리소스 유형별 서비스에도 동일한 개념이 적용됩니다.
변형 요청
각 리소스 유형별 서비스에는 변경 요청을 허용하는 mutate 메서드가 있습니다. 이 요청은 다음으로 구성됩니다.
customer_id(또는 REST URL의 경우customerId)operations모음partial_failure,validate_only,response_content_type와 같은 선택적 실행 설정 (변형 후 변경 가능한 리소스가 반환되는지 아니면 리소스 이름만 반환되는지 결정)
예를 들어 CampaignService의 MutateCampaigns 메서드는 다음으로 구성된 MutateCampaignsRequest를 허용합니다.
customer_idCampaignOperation객체 컬렉션 (operations)- 선택적 실행 설정 (
partial_failure,validate_only,response_content_type는 선호하는 응답 유형을 나타냄)
작업
CampaignOperation와 같은 작업 객체를 사용하면 operation 필드를 설정하여 단일 리소스에서 실행할 작업을 지정할 수 있습니다.
이 필드는 다음 속성으로 구성된 oneof 필드입니다.
create- 리소스의 새 인스턴스를 만듭니다.
updateupdate리소스의 속성과 일치하도록 리소스를 업데이트합니다. 이 필드를 설정하면 업데이트 작업 중에 수정할 속성을 Google Ads API에 알려주는 작업의update_mask도 설정해야 합니다. 각 클라이언트 라이브러리에는update_mask를 생성하는 필드 마스크 유틸리티 또는 도우미 메서드가 포함되어 있습니다.remove- 리소스 이름 문자열 (예:
customers/1234567890/campaigns/987654321)로 지정된 리소스를 삭제합니다.
operation 필드는 oneof 필드이므로 단일 작업을 사용하여 여러 객체를 수정할 수 없습니다. 예를 들어 캠페인 하나를 만들고 다른 캠페인을 삭제하려면 요청에 CampaignOperation 인스턴스를 두 개 추가합니다. 하나는 create이 설정된 인스턴스이고 다른 하나는 remove이 설정된 인스턴스입니다.
일괄 작업
단일 작업은 단일 리소스만 생성, 업데이트 또는 삭제할 수 있지만 단일 mutate 요청에는 여러 작업이 포함될 수 있습니다. 각각 단일 작업을 포함하는 여러 mutate 요청을 전송하는 대신 작업을 단일 mutate 요청으로 결합해야 합니다.
예를 들어 캠페인 10개를 만들려면 CampaignOperation 객체가 10개 있는 단일
MutateCampaignsRequest을 전송해야 합니다. 여러 리소스 유형의 작업을 단일 요청으로 그룹화하려면 GoogleAdsService.Mutate 또는 리소스 변경을 사용합니다.
응답 변경
응답에서 반환되는 내용은 mutate 요청의 response_content_type 필드에 전송된 내용에 따라 달라집니다.
예를 들어 MUTABLE_RESOURCE가 지정되면 response에는 리소스의 resource_name과 캠페인의 변경 가능한 필드가 campaign에 모두 포함됩니다. 기본적으로 (RESOURCE_NAME_ONLY) 각 MutateCampaignResult에는 resource_name만 채워집니다.
변형 오류
기본적으로 (partial_failure = false) mutate 요청의 작업은 요청의 모든 작업이 성공한 경우에만 Google Ads 계정에 적용됩니다. 작업이 실패하면 전체 요청이 롤백됩니다. 부분 실패를 지원하는 변이 요청 (요청 메시지에 partial_failure 필드가 있는 요청)의 경우 partial_failure = true을 설정하면 유효한 작업이 커밋되고 실패한 작업은 응답의 partial_failure_error 필드에 작업별 오류를 반환합니다. 오류 처리에 관한 자세한 내용은 부분적 실패 가이드 및 일반적인 오류 가이드를 참고하세요.
변경사항 추적
Google Ads 계정의 객체에 적용된 변경사항을 추적하거나 객체의 현재 상태를 가져오려면 change_status 및 change_event 리소스를 사용하면 됩니다.
change_status은 지정된 기간 내에 변경된 리소스의 요약을 제공합니다.change_event은 변경된 필드의 이전 값과 새 값을 포함하여 변경사항의 자세한 기록을 제공합니다.
이러한 리소스를 쿼리하려면 GoogleAdsService.SearchStream 또는 GoogleAdsService.Search 메서드를 사용합니다. GoogleAdsService을 사용한 보고서 스트리밍에 대해 자세히 알아보세요.