리소스의 전용 서비스를 사용하는 것이 Google Ads API에서 단일 리소스 유형의 항목을 만들거나 업데이트하거나 삭제하는 가장 직접적인 방법입니다.
변이 엔드포인트
변경 가능한 각 리소스에는 해당 서비스와 작업 유형이 있습니다. 전용 서비스를 사용하여 리소스를 변경하려면 작업에서 다음 필드 중 하나를 채우고 서비스의 변경 엔드포인트로 전송합니다.
- 생성 (
create): 생성할 새 리소스 객체입니다. - 업데이트 (
update): 변경된 필드를 지정하는update_mask와 함께 수정된 리소스 객체입니다. - 삭제 (
remove): 삭제할 대상 리소스의resource_name문자열입니다.
예를 들어 새 Campaign를 만들려면 다음 단계를 완료하세요.
- 선택한 속성으로
Campaign객체를 생성합니다. CampaignOperation의create필드에 할당합니다.MutateCampaignsRequest에서CampaignService.MutateCampaigns로 작업을 전송합니다.
이 동일한 패턴은 Google Ads API의 모든 리소스별 서비스에 적용됩니다.
AdGroup:AdGroupOperation을AdGroupService.MutateAdGroups에 전달합니다.CampaignCriterion:CampaignCriterionOperation를CampaignCriterionService.MutateCampaignCriteria에 전달합니다.
다음 REST JSON 페이로드는 CampaignService.MutateCampaigns에 대한 요청을 보여줍니다.
{
"customerId": "CUSTOMER_ID",
"operations": [
{
"create": {
"name": "Interplanetary Cruise #1",
"advertisingChannelType": "SEARCH",
"status": "PAUSED",
"manualCpc": {},
"campaignBudget": "customers/CUSTOMER_ID/campaignBudgets/BUDGET_ID",
"containsEuPoliticalAdvertising": "DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING"
}
}
],
"partialFailure": false,
"validateOnly": false
}
여러 작업 및 제한사항
변이 요청의 operations 필드가 반복되므로 단일 요청에는 해당 리소스 유형에 대한 여러 작업 (요청당 최대 10,000개 작업)이 포함될 수 있습니다. partial_failure을 true로 설정하지 않는 한 요청의 모든 작업은 기본적으로 원자적으로 실행됩니다.
하지만 개별 리소스 서비스에는 두 가지 중요한 제한사항이 있습니다.
- 단일 리소스 유형: 리소스 서비스에 대한 요청은 해당 서비스에서 관리하는 리소스만 변경할 수 있습니다.
- 임시 리소스 ID 또는 상호 참조 없음: 리소스별 변형 호출의 작업은 독립적으로 처리됩니다. 임시 음수 ID (예:
customers/CUSTOMER_ID/campaigns/-1)를 할당하거나 동일한 요청에서 다른 작업에서 새로 생성된 항목을 참조할 수 없습니다.
단일 요청에서 여러 리소스 유형을 변경하거나 종속 작업에서 임시 리소스 이름을 참조해야 하는 경우 GoogleAdsService.Mutate을 대신 사용하세요.
버전별 차이
지원되는 Google Ads API 버전 간에 다음과 같은 차이점을 고려하여 리소스를 변경하세요.
- 라이프사이클 목표 서비스: v25 이상에서는 신규 고객 확보 (
new_customer_acquisition_goal_settings), 고객 유지 (retention_goal_settings), 충성도 유지(loyalty_retention_goal_settings)를 비롯한 모든 라이프사이클 목표가 표준 반복operations필드를 사용하여GoalService.MutateGoals및CampaignGoalConfigService.MutateCampaignGoalConfigs를 통해 변이됩니다. 이는CustomerLifecycleGoalService.ConfigureCustomerLifecycleGoals및CampaignLifecycleGoalService.ConfigureCampaignLifecycleGoals(v24 이하에서 신규 고객 확보에 사용되며 단수operation필드를 허용함)을 대체합니다. - 캠페인 날짜 및 시간 필드:
Campaign을 만들거나 업데이트할 때 v23 이상에서는start_date_time및end_date_time(yyyy-MM-dd HH:mm:ss)을 사용하여 v22에서 사용된 날짜 전용start_date및end_date필드를 대체합니다. - 합성 콘텐츠 증명 변경 가능성:
Asset.synthetic_content_info및Ad.synthetic_content_info는 v22 이상의 스키마에 표시되지만synthetic_content_info.advertiser_attestation.status및synthetic_content_info.advertiser_attestation.source필드는 v23 이상에서만 변경 가능합니다 (system_attestation는 항상OUTPUT_ONLY임). v22에서advertiser_attestation하위 필드를 변경하려고 하면 변경 불가능한 필드 오류 ("The field attempted to be mutated is immutable"또는"Field cannot be set")가 반환됩니다.