تحديد الإصدار

تتضمّن Ad Manager API إصدارات الإصدارات الرئيسية المُسمّاة وإصدارات مثبّتة محليًا متوافقة مع الإصدارات القديمة من الإصدار الرئيسي الحالي.

يمكن وضع علامة على الخدمات والطرق والحقول على أنها متوقفة في أي وقت داخل على الرغم من ذلك، ستظل الإصدارات الرئيسية (مثل الإصدار 1) متوافقة حتى الإصدار الرئيسي تم إنهاء العمل به.

إصدارات الإصدارات الرئيسية

إصدار الإصدار الرئيسي هو إصدار غير متوافق مع الإصدارات القديمة تغييرات واجهة برمجة التطبيقات. سيتم تسمية هذه الإصدارات وستتضمّن نقاط نهاية مختلفة لواجهة برمجة التطبيقات. تتوفّر الإصدارات الرئيسية السابقة لفترة نقل البيانات.

لا تتّبع Ad Manager API وتيرة إصدار منتظمة للإصدارات الكبرى. لن يتم طرح الإصدارات الرئيسية الجديدة إلا عند الضرورة.

الإصدارات المتوفّرة في التطبيق

تم طرح تغييرات متوافقة مع الأنظمة القديمة، بما في ذلك ميزات جديدة وإصلاحات للأخطاء. محل إصدار واجهة برمجة التطبيقات الرئيسية الحالي. يجب أن يتعامل العملاء مع الحقول غير المعروفة في ردود واجهة برمجة التطبيقات.

التوافق مع الأنظمة القديمة

يتم الحفاظ على التوافق مع الأنظمة القديمة للتغييرات في الإصدار الرئيسي. يتم تعريف التوافق على النحو التالي:

  1. التوافق مع المصدر: يتم تجميع الرمز المكتوب لإصدار سابق باستخدام إصدار أحدث، ويتم تشغيله بنجاح باستخدام إصدار أحدث من مكتبة العميل.

  2. توافق الأسلاك: رمز تمت كتابته وفقًا لإصدار سابق يتصل بشكل صحيح مع خادم أحدث. بعبارة أخرى، لا تتطابق فقط المدخلات والمخرجات، بل تستمر توقعات التسلسل وإزالة التسلسل في التطابق.

  3. التوافق الدلالي: يستمر الرمز المكتوب مقابل إصدار سابق يحصلون على ما يتوقعه المطورون المعقولون.

تعرِض الجداول التالية أنواع تغييرات واجهات برمجة التطبيقات وما إذا كانت تُعدّ متوافقة مع الإصدارات القديمة.

الخدمات

نوع التغيير متوافقة مع الأنظمة القديمة
إضافة خدمة جديدة نعم
إزالة خدمة لا

الطُرق

نوع التغيير متوافقة مع الأنظمة القديمة
إضافة طريقة جديدة نعم
إزالة طريقة لا
تغيير طلب طريقة أو نوع ردّها لا

أغراض

نوع التغيير التوافق مع الإصدارات السابقة
إضافة حقل مطلوب لا
إضافة حقل اختياري نعم
نقل حقل إلى رسالة فرعية أو خارجها لا
تغيير حقل من مطلوب إلى اختياري نعم
تغيير حقل من اختياري إلى مطلوب لا
إزالة قيد ثابت نعم
إضافة قيد غير قابل للتغيير لا

عمليات التعداد

نوع التغيير التوافق مع الإصدارات السابقة
إضافة قيمة مصنّفة نعم
إزالة قيمة تعداد لا

سلوك الحقول التي تم إيقافها نهائيًا

الحقول البديلة

بالنسبة إلى الحقول التي لها بديل، ستتم تعبئة كلا الحقلين عندما يكون ذلك ممكنًا. عند إجراء التعديل، يمكن ضبط أيّ من الحقلين. يؤدي تضمين كلا الحقلين في طلب تعديل إلى حدوث خطأ 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,
}