バージョニング

アド マネージャー REST API には、「メジャー バージョン リリース」と「リリース」のどちらも 下位互換性のあるインプレース リリースを現在のメジャー バージョンに

サービス、メソッド、フィールドは、同じ期間内でいつでも非推奨とマークされる可能性があります。 ただし、メジャー バージョン(v1 など)は、そのメジャー バージョンまで引き続きサポートされます。 廃止されました。

メジャー バージョン リリース

メジャー バージョン リリースとは、下位互換性のないリリースのことです。 API の変更。これらのリリースには名前が付けられ、異なる API エンドポイントを持ちます。 移行期間中は、以前のメジャー バージョンがサポートされています。

Ad Manager REST API では、メジャー リリースの定期的なリリースは決まっていません。 あります。新しいメジャー バージョンは、必要な場合にのみリリースされます。

インプレース リリース

新機能やバグの修正など、下位互換性のある変更がリリースされました。 現在のメジャー API バージョンにインプレースで移行する必要があります。クライアントが不明なフィールドを処理する必要がある 使用できます。

下位互換性

下位互換性は、メジャー バージョン内の変更に対して維持されます。 互換性は次のように定義されます。

  1. ソースの互換性: 以前のリリースに対して記述されたコードはコンパイル可能 実行され、新しいバージョンの Deployment の クライアント ライブラリを使用します。

  2. ワイヤーの互換性: 以前のリリースに対して記述されたコード 新しいサーバーと正常に通信します。つまり、入力データだけでなく 出力には互換性がありますが、シリアル化とシリアル化解除の想定は 一致します

  3. セマンティック互換性: 以前のバージョンに対して記述されたコードが継続される 多くの開発者が期待する成果が得られるように 設計されています

次の表に、API の変更の種類と、それらが考慮されているかどうかをまとめます。 下位互換性があります。

サービス

変更の種類 下位互換性
新しいサービスを追加
サービスを削除する いいえ

メソッド

変更の種類 下位互換性
新しいメソッドを追加
メソッドを削除する いいえ
メソッドのリクエストまたはレスポンスのタイプを変更する いいえ

オブジェクト

変更の種類 下位互換性
必須フィールドを追加してください いいえ
オプション フィールドを追加する
サブメッセージへのフィールドの移動、またはサブメッセージからのフィールドの移動 いいえ
フィールドを必須から省略可に変更する
フィールドを省略可から必須に変更する いいえ
変更不可の制限を削除する
変更不可の制限を追加する いいえ

列挙型

変更の種類 下位互換性
列挙値を追加する
列挙値を削除する いいえ

サポートが終了したフィールドの動作

置換フィールド

置換があるフィールドについては、可能であれば両方のフィールドに値が入力されます。 更新するときは、どちらのフィールドも設定できます。更新に両方のフィールドを含める 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,
}