리소스를 생성, 업데이트, 삭제합니다. 이 메서드는 여러 유형의 리소스가 있는 원자성 트랜잭션을 지원합니다. 예를 들어 캠페인 및 캠페인 예산을 개별적으로 만들거나, 원자적으로 최대 수천 개의 변경을 수행할 수 있습니다.
이 메서드는 기본적으로 일련의 뮤테이션 메서드를 둘러싸는 래퍼입니다. 이러한 메서드를 직접 호출하는 것보다 제공하는 유일한 기능은 다음과 같습니다.
- 원자적 트랜잭션
- 임시 리소스 이름 (아래에 설명됨)
- 일련의 변경 호출을 수행하는 것에 비해 지연 시간이 다소 감소함
참고: 원자적 트랜잭션을 지원하는 리소스만 포함되므로 이 방법으로 개별 서비스에 대한 모든 호출을 대체할 수는 없습니다.
원자적 트랜잭션의 이점
원자성은 오류를 훨씬 더 쉽게 처리합니다. 일련의 변경 작업 중 하나에 오류가 발생하면 계정이 일관성 없는 상태가 될 수 있습니다. 원자성의 경우 선택한 상태에 직접 도달하거나 요청이 실패하여 재시도할 수 있습니다.
임시 리소스 이름
임시 리소스 이름은 리소스를 만들고 동일한 요청에서 해당 리소스를 참조하는 데 사용되는 특수한 유형의 리소스 이름입니다. 예를 들어 resourceName
가 customers/123/campaignBudgets/-1
인 캠페인 예산을 만들면 해당 리소스 이름을 동일한 요청의 Campaign.budget
필드에서 재사용할 수 있습니다. 이러한 방식으로 두 리소스가 원자적으로 생성되고 연결됩니다.
임시 리소스 이름을 만들려면 서버가 일반적으로 할당하는 이름의 부분에 음수를 입력합니다.
참고:
- 임시 이름으로 리소스를 만들어야 이름을 재사용할 수 있습니다. 예를 들어 이전의 CampaignBudget+Campaign 예시는 변경 순서가 뒤바뀌었을 경우 실패합니다.
- 임시 이름은 요청 간에 기억되지 않습니다.
- 요청의 임시 이름 수에는 제한이 없습니다.
- 리소스 유형이 다르더라도 각 임시 이름에는 고유한 음수를 사용해야 합니다.
지연 시간
리소스 유형별로 변경을 그룹화하는 것이 중요합니다. 그렇지 않으면 요청이 타임아웃되어 실패할 수 있습니다. 지연 시간은 대략 개별 muter 메서드에 대한 일련의 호출과 거의 같습니다. 여기서 리소스 유형의 각 변경은 새로운 호출입니다. 예를 들어 캠페인 10개를 변형한 후 광고그룹 10개를 변경하면 통화 2건과 같은 반면, 캠페인 1개, 광고그룹 1개, 캠페인 1개, 광고그룹 1개를 변형하면 통화 4개와 같은 결과입니다.
{/18AdCustomizerErrorAdErrorAdGroupAdErrorAdGroupCriterionErrorAdGroupErrorAssetErrorAuthenticationErrorAuthorizationErrorBiddingErrorCampaignBudgetErrorCampaignCriterionErrorCampaignErrorCampaignExperimentErrorCampaignSharedSetErrorCollectionSizeErrorContextErrorConversionActionErrorCriterionErrorCustomerFeedErrorDatabaseErrorDateErrorDateRangeErrorDistinctErrorExtensionFeedItemErrorExtensionSettingErrorFeedAttributeReferenceErrorFeedErrorFeedItemErrorFeedItemSetErrorFieldErrorFieldMaskErrorFunctionParsingErrorHeaderErrorImageErrorInternalErrorKeywordPlanAdGroupKeywordErrorKeywordPlanCampaignErrorKeywordPlanErrorLabelErrorListOperationErrorMediaUploadErrorMutateErrorNewResourceCreationErrorNullErrorOperationAccessDeniedErrorPolicyFindingErrorPolicyViolationErrorQuotaErrorRangeErrorRequestErrorResourceCountLimitExceededErrorSettingErrorSharedSetErrorSizeLimitErrorStringFormatErrorStringLengthErrorUrlFieldErrorUserListErrorYoutubeVideoRegistrationError
HTTP 요청
POST https://googleads.googleapis.com/v16/customers/{customerId}/googleAds:mutate
URL은 gRPC 트랜스코딩 구문을 사용합니다.
경로 매개변수
매개변수 | |
---|---|
customerId |
필수 항목입니다. 리소스가 수정되고 있는 고객의 ID입니다. |
요청 본문
요청 본문에는 다음과 같은 구조의 데이터가 포함됩니다.
JSON 표현 |
---|
{ "mutateOperations": [ { object ( |
입력란 | |
---|---|
mutateOperations[] |
필수 항목입니다. 개별 리소스에서 수행할 작업의 목록입니다. |
partialFailure |
true인 경우 작업이 성공적으로 수행되고 잘못된 작업은 오류를 반환합니다. false인 경우 모든 작업이 모두 유효한 경우에만 하나의 트랜잭션에서 모든 작업이 수행됩니다. 기본값은 false입니다. |
validateOnly |
true인 경우 요청의 유효성이 검사되지만 실행되지는 않습니다. 결과는 반환되지 않고 오류만 반환됩니다. |
responseContentType |
응답 콘텐츠 유형 설정입니다. 변형 후 변경 가능한 리소스를 반환해야 하는지 아니면 리소스 이름만 반환해야 하는지 결정합니다. 변경 가능한 리소스는 리소스에 적절한 응답 필드가 있는 경우에만 반환됩니다. 예를 들면 MutateCampaignResult.campaign이 있습니다. |
응답 본문
GoogleAdsService.Mutate
의 응답 메시지입니다.
성공할 경우 응답 본문에 다음 구조의 데이터가 포함됩니다.
JSON 표현 |
---|
{ "partialFailureError": { object ( |
입력란 | |
---|---|
partialFailureError |
부분 실패 모드의 작업 실패와 관련된 오류입니다. PartialFailure = true이고 모든 오류가 연산 내에서 발생한 경우에만 반환됩니다. 작업 외부에서 오류가 발생하면 (예: 인증 오류) RPC 수준 오류가 반환됩니다. |
mutateOperationResponses[] |
변형에 대한 모든 응답입니다. |
승인 범위
다음 OAuth 범위가 필요합니다.
https://www.googleapis.com/auth/adwords
자세한 내용은 OAuth 2.0 개요를 참고하세요.