버전 관리

Ad Manager REST API에는 이름이 지정된 메이저 버전 출시와 인플레이스 출시를 최신 메이저 버전으로 업데이트합니다.

서비스, 메서드, 필드는 언제든지 하지만 메이저 버전 (예: v1)이 출시되기 전까지는 메이저 버전이 출시될 때까지 계속 지원됩니다. 지원이 중단됩니다

메이저 버전 출시

메이저 버전 출시는 이전 버전과 호환되지 않는 출시로 정의됩니다. API 변경사항 이러한 출시 버전에는 이름이 지정되며 API 엔드포인트가 다릅니다. 이전 메이저 버전은 이전 기간 동안 지원됩니다.

Ad Manager REST API에는 Major 제공합니다 새로운 메이저 버전은 필요한 경우에만 출시됩니다.

인플레이스 출시

새로운 기능 및 버그 수정을 비롯한 이전 버전과 호환되는 변경사항 출시 새 API를 사용합니다 클라이언트는 알 수 없는 필드를 처리해야 함 API 응답에서 반환됩니다.

이전 버전과의 호환성

이전 버전과의 호환성은 Major 버전 내 변경사항에 대해 유지됩니다. 호환성은 다음과 같이 정의됩니다.

  1. 소스 호환성: 이전 버전 컴파일에 대해 작성된 코드는 새 버전을 출시하고 새 버전의 클라이언트 라이브러리로 대체될 수 있습니다.

  2. 통신 호환성: 이전 버전에 대해 작성된 코드 최신 서버와 올바르게 통신할 수 있는지 확인합니다 즉, 입력값은 물론 출력은 호환되지만 직렬화 및 역직렬화 기대치는 계속 일치시킵니다.

  3. 시맨틱 호환성: 이전 버전에서 작성된 코드는 계속됨 가장 합리적인 개발자가 기대하는 것을 받게 됩니다.

다음 표에는 API 변경사항의 유형과 고려 여부가 나와 있습니다. 이전 버전과 호환됩니다.

서비스

변경 유형 이전 버전과의 호환성
새 서비스 추가
서비스 삭제 아니요

메서드

변경 유형 이전 버전과의 호환성
새 방법 추가
메서드 삭제 아니요
메서드의 요청 또는 응답 유형 변경 아니요

객체

변경 유형 이전 버전과의 호환성
필수 입력란 추가 아니요
선택적 필드 추가
하위 메시지 안팎으로 필드 이동 아니요
필드를 필수에서 선택사항으로 변경
필드를 선택사항에서 필수로 변경 아니요
변경할 수 없는 제한 삭제
변경할 수 없는 제한 추가 아니요

열거

변경 유형 이전 버전과의 호환성
enum 값 추가
enum 값 삭제 아니요

지원 중단된 필드 동작

대체 필드

대체 필드가 있는 경우 가능한 경우 두 필드 모두 채워집니다. 업데이트 시 두 필드 중 하나를 설정할 수 있습니다. 업데이트에 두 필드 모두 포함 요청에서 INVALID_ARGUMENT 오류가 발생합니다.

다음 스키마를 살펴보세요.

{
  // The cost of this Foo in micros.
  // Deprecated: Use `cost` instead.
  "costMicros": number,

  // The cost of this Foo.
  "cost": {
    object (Money)
  }
}

읽기 응답은 두 필드를 동일한 값으로 채웁니다.

{
  "costMicros": 1250000,
  "cost": {
    "currencyCode": "USD",
    "units": "1",
    "nanos": 250000000
  }
}

업데이트 요청에서 두 값 중 하나를 설정할 수 있습니다. 두 필드를 모두 포함하면 오류 INVALID_ARGUMENT개:

costMicros

// Update payload
{
  "costMicros": 1500000
}

// Response payload
{
  "costMicros": 1500000,
  "cost": {
    "currencyCode": "USD",
    "units": "1",
    "nanos": 500000000
  }
}

비용

// Update payload
{
  "cost": {
    "currencyCode": "USD",
    "units": "1",
    "nanos": 500000000
  }
}

// Response payload
{
  "costMicros": 1500000,
  "cost": {
    "currencyCode": "USD",
    "units": "1",
    "nanos": 500000000
  }
}

둘 다

// Update payload
{
  "costMicros": 1250000,
  "cost": {
    "currencyCode": "USD",
    "units": "1",
    "nanos": 500000000
  }
}

// Response payload
{
  "error": {
    "code": 400,
    "message": "Request contains an invalid argument.",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.BadRequest",
        "fieldViolations": [
          {
            "field": "costMicros",
            "description": "Cannot update both costMicros and cost."
          }
        ]
      }
    ]
  }
}

지원 중단된 기능

제품 기능이 지원 중단되면 해당 필드가 의미상 적절한 기본값을 반환할 수 있습니다. 업데이트 무시할 수 있습니다

{
  // The salesperson split amount in micros.
  // Deprecated: The Sales Management feature has been deprecated. This field
  // will always be `0`.
  "salespersonSplitMicros": number,
}