리소스 서비스가 변경됨

리소스의 전용 서비스를 사용하는 것이 Google Ads API에서 단일 리소스 유형의 항목을 만들거나 업데이트하거나 삭제하는 가장 직접적인 방법입니다.

변이 엔드포인트

변경 가능한 각 리소스에는 해당 서비스와 작업 유형이 있습니다. 전용 서비스를 사용하여 리소스를 변경하려면 작업에서 다음 필드 중 하나를 채우고 서비스의 변경 엔드포인트로 전송합니다.

  • 생성 (create): 생성할 새 리소스 객체입니다.
  • 업데이트 (update): 변경된 필드를 지정하는 update_mask와 함께 수정된 리소스 객체입니다.
  • 삭제 (remove): 삭제할 대상 리소스의 resource_name 문자열입니다.

예를 들어 새 Campaign를 만들려면 다음 단계를 완료하세요.

  1. 선택한 속성으로 Campaign 객체를 생성합니다.
  2. CampaignOperation의 create 필드에 할당합니다.
  3. MutateCampaignsRequest에서 CampaignService.MutateCampaigns로 작업을 전송합니다.

이 동일한 패턴은 Google Ads API의 모든 리소스별 서비스에 적용됩니다.

다음 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")가 반환됩니다.