متطلبات الوصول

يفضّل المستخدمون مشاهدة أو الاستماع إلى المحتوى الذي يمكنهم الوصول إليه بالفعل، مثل المحتوى المتوفر بموجب الاشتراك الحالي إذا عرفت Google المحتوى الذي يمكن للمستخدم على تطبيقك أو منصتك، فيمكن لـ Google إنشاء نتيجة بحث أفضل أو الاستجابة لتوجيه المستخدم إلى هذا المحتوى.

الشكل 1. تساعد متطلبات الوصول المشتركين في قناتك المحتوى على تطبيقك أو منصتك

تحديد متطلبات الوصول إلى المحتوى

يجب عليك تحديد متطلبات الوصول لكل حزمة محتوى في . عند القيام بذلك، ضع في اعتبارك الأسئلة التالية:

  • هل يحتاج المستخدمون إلى تسجيل الدخول إلى تطبيقك أو نظامك الأساسي للوصول إلى المحتوى؟
  • هل يحتاج المستخدمون إلى اشتراك؟

    إجراءات المشاهدة فقط:

    • هل يحتاج المستخدمون إلى اشتراك من مقدم خدمة خارجي؟
    • هل لديك اشتراك متعدّد المستويات أو حِزم متعدّدة أو إضافات؟
  • إجراءات المشاهدة فقط: هل يحتاج المستخدمون إلى استئجار المحتوى أو شراؤه؟

  • هل تتغير متطلبات الوصول بمرور الوقت؟

  • هل تعتمد متطلبات الوصول على الموقع الجغرافي للجهاز؟

أنواع قيود الوصول

هناك نوعان من قيود الوصول:

نوع جدار الدفع

يمكنك حظر الوصول إلى المحتوى حسب نوع جدار الدفع. يعرض الجدول التالي تفاصيل الأنواع المختلفة لنظام حظر الاشتراك غير المدفوع:

نوع جدار الدفع مثال الفئة
لست بحاجة إلى الشراء أو تسجيل الدخول. Crackle nologinrequired
ويجب أن يسجّل المستخدم دخوله، ولكنه لا يحتاج إلى اشتراك مدفوع. Vudu (AVOD) free
يجب أن يكون لدى المستخدم اشتراك نشط. يكون الوصول مستقلاً عن فئة الاشتراك Netflix

subscription

يجب أن يكون لدى المستخدم اشتراك نشط. يعتمد الوصول على فئة الاشتراك Hulu (إضافات)

subscription

ويكون المحتوى متاحًا لفترة محدودة بعد عملية الشراء. Vudu rental
المحتوى متاح لفترة غير محدودة بعد عملية الشراء. Vudu purchase
المحتوى متوفر من خلال اشتراك الكابل. HBO Go externalSubscription

نوع جدار الدفع لإجراءات المشاهدة

لتحديد نوع جدار الدفع الخاص بالمحتوى في "إجراءات المشاهدة"، استخدِم category الموقع في مواصفات الوصول إلى الإجراءات:

"potentialAction": {
  "@type":"WatchAction",
  "target": { … },
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "subscription",
    "availabilityStarts": "2018-06-01T10:35:29Z",
    "availabilityEnds": "2019-05-31T10:35:29Z",
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    }
  },
  ...
}

نوع جدار الدفع لإجراءات الاستماع

لتحديد نوع جدار الدفع للمحتوى في "إجراءات الاستماع"، استخدم category الموقع في عنصر العرض:

"potentialAction": {
  "@type":"ListenAction",
  "target": { … },
  "expectsAcceptanceOf":{
    "@type":"Offer",
    "category":"subscription",
    "availabilityStarts": "2018-06-01T10:35:29Z",
    "availabilityEnds": "2019-05-31T10:35:29Z",
    "eligibleRegion": {
      "@type":"Country",
      "name":"US"
    }
  },
  ...
}

المنطقة الجغرافية

يجب تحديد المناطق الجغرافية التي يتوفر فيها المحتوى. استخدم واحدًا أو كلتا السمتين التاليتين:

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

تتيح السمتان eligibleRegion وineligibleRegion ما يلي: القيم التالية:

  • قائمة بـ Country، City و State
  • حاسمة GeoShape الخاص بك. يمكنك الاطّلاع على موقعان (GeoShape) للاطلاع على المتطلبات التفصيلية.
  • قائمة تضم GeoShape عناصر

إذا كان المحتوى متاحًا على مستوى العالم، استخدِم القيمة الخاصة التالية eligibleRegion:

"eligibleRegion": "EARTH",

حالات الاستخدام المؤهَّلة Region

في ما يلي أمثلة على حالات استخدام السمة eligibleRegion:

  • المثال 1: eligibleRegion مع قائمة بالبلدان.
  • المثال 2: eligibleRegion مع كائن GeoShape الذي يحتوي على قائمة بالرموز البريدية.
  • المثال 3: eligibleRegion مع كائن GeoShape الذي يحتوي على قائمة برموز منطقة الفرز لإعادة التوجيه (FSA).
  • المثال 4: eligibleRegion مع كائن GeoShape الذي يحتوي على معرّف منطقة السوق المحددة.
  • المثال 5: eligibleRegion مع قائمة من GeoShape عناصر. يحتوي كل منها على رقم تعريف منطقة السوق المحددة.
  • المثال 6: ineligibleRegion التي تتضمن رموزًا بريدية محظورة.

مثال 1

eligibleRegion مع قائمة بالبلدان:


"actionAccessibilityRequirement": {
  "@type": "ActionAccessSpecification",
  "category": "subscription",
  "requiresSubscription": {
    "@type": "MediaSubscription",
    "@id": "http://www.example.com/north_america_network/subscription",
    "name": "Example Subscription",
    "commonTier": true
  },
  "eligibleRegion": [
    {
      "@type": "Country",
      "name": "US"
    },
    {
      "@type": "Country",
      "name": "CA"
    }
  ]
}

مثال 2

eligibleRegion مع كائن GeoShape يحتوي على قائمة من الرموز البريدية:


"actionAccessibilityRequirement": {
  "@type": "ActionAccessSpecification",
  "category": "subscription",
  "requiresSubscription": {
    "@type": "MediaSubscription",
    "@id": "http://www.example.com/local_tv_network/subscription",
    "name": "Example Subscription",
    "commonTier": true
  },
  "eligibleRegion": {
    "@type": "GeoShape",
    "@id": "http://example.com/area1",
    "addressCountry": "US",
    "postalCode": [
      "94118",
      "94119"
    ]
  }
}

مثال 3

eligibleRegion مع كائن GeoShape يحتوي على قائمة برموز منطقة الفرز لإعادة التوجيه (FSA):


"actionAccessibilityRequirement": {
  "@type": "ActionAccessSpecification",
  "category": "subscription",
  "requiresSubscription": {
    "@type": "MediaSubscription",
    "@id": "http://www.example.com/local_tv_network/subscription",
    "name": "Example Subscription",
    "commonTier": true
  },
  "eligibleRegion":{
    "@type": "GeoShape",
    "@id": "http://example.com/area2",
    "addressCountry": "CA",
    "postalCode": [
      "1A1",
      "K1A"
    ]
  }
}

مثال 4

eligibleRegion مع كائن GeoShape يحتوي على رقم تعريف منطقة السوق المحددة:


"actionAccessibilityRequirement": {
  "@type": "ActionAccessSpecification",
  "category": "subscription",
  "requiresSubscription": {
    "@type": "MediaSubscription",
    "@id": "http://www.example.com/abcd/subscription",
    "name": "Example Subscription",
    "commonTier": true
  },
  "eligibleRegion":{
    "@type": "GeoShape",
    "@id": "http://example.com/area3",
    "addressCountry": "US",
    "identifier": [
      {
        "@type": "PropertyValue",
        "propertyID": "DMA_ID",
        "value": "501"
      }
    ]
  }
}

المثال الخامس

eligibleRegion التي تحتوي على قائمة تضم GeoShape عناصر. يحتوي كل نوع على رقم تعريف منطقة السوق المحددة:


"actionAccessibilityRequirement" : {
   "@type" : "ActionAccessSpecification",
   "eligibleRegion" : [
      {
         "@id" : "http://example.com/dma/601",
         "@type" : "GeoShape",
         "addressCountry" : "US",
         "identifier" : {
            "@type" : "PropertyValue",
            "propertyID" : "DMA_ID",
            "value" : "601"
         }
      },
      {
         "@id" : "http://example.com/dma/602",
         "@type" : "GeoShape",
         "addressCountry" : "US",
         "identifier" : {
            "@type" : "PropertyValue",
            "propertyID" : "DMA_ID",
            "value" : "602"
         }
      }
   ]
}

مثال 6

ineligibleRegion ذات الرموز البريدية المحظورة:


"actionAccessibilityRequirement": {
  "@type": "ActionAccessSpecification",
  "category": "subscription",
  "requiresSubscription": {
    "@type": "MediaSubscription",
    "@id": "http://www.example.com/local_tv_network/subscription",
    "name": "Example Subscription",
    "commonTier": true
  },
 "eligibleRegion":   {
      "@type": "Country",
      "name": "US"
    },
  "ineligibleRegion": {
    "@type": "GeoShape",
    "@id": "http://example.com/area1",
    "addressCountry": "US",
    "postalCode": [
      "94118",
      "94119"
    ]
  }
}

معرّف إذن الوصول

يشير معرّف الاستحقاق، entitlementId، إلى سلسلة تمثل الوصول إلى مجموعة من المحتوى في كتالوج الوسائط لتحديد ما إذا كان المستخدم بإمكان Google الوصول إلى المحتوى الخاص بك، تتخذ الخطوات التالية:

  1. نجري طلب بيانات من واجهة برمجة التطبيقات على نقطة نهاية الاستحقاقات لتلقّي أذونات المستخدِم معرّفات المستخدمين المؤهلة.
  2. نبحث عن معرّفات الاستحقاق المطلوبة للمحتوى من الوسائط خلاصة الإجراءات.
  3. نطابق entitlementId للمستخدم مع identifier خاصية العنصر اشتراك وسائط في خلاصتك. إذا كان على الأقل تطابق entitlementId، فإننا نحدد أن المستخدم يمكنه الوصول إلى المحتوى.
الشكل 2. يتطابق أحد معرّفات الاستحقاق الخاصة بالمستخدم معرّف الاستحقاق المطلوب للمحتوى.

تنصح Google باستخدام البنية التالية للسمة entitlementId:

<domain name> + colon (:) + <access level to content>

أمثلة على البنية:

  • example.com:basic
  • example.com:premium
  • example.com:sports

مثال على معرّف الوصول

تحدّد خلاصة MediaExampleCompany أن Movie XYZ تتطلب example.com:basic entitlementId، كما هو موضّح:

{
  "@context": ["http://schema.org", {"@language": "en"}],
  "@type": "Movie",
  "@id": "www.example.com/movie_xyz",
  "url": "www.example.com/movie_xyz",
  "name": "Movie XYZ",
  "potentialAction": {
    "@type": "WatchAction",
    "target": [ … ],
    "actionAccessibilityRequirement": {
      "@type": "ActionAccessSpecification",
      "category": "subscription",
      "requiresSubscription": {
        "@type": "MediaSubscription",
        "@id": "http://www.example.com/basic_subscription",
        "name": "Basic subscription",
        "commonTier": true
        ...
      },
      ...
    }
  },
  ...
}

حالات الاستخدام الشائعة للوصول إلى البيانات

في ما يلي حالات الاستخدام الشائعة للوصول إلى البيانات:

  • مجانية (لا يلزم تسجيل الدخول): المحتوى متاح بدون تسجيل الدخول أو اشتراك أو شراء.
  • Free (تسجيل الدخول مطلوب): يتطلب المحتوى تسجيل دخول المستخدمين ولكنه لا يتطلب اشتراكًا.
  • اشتراك الفئة الواحدة: يتطلب المحتوى اشتراكًا. يمكن لجميع المشتركين الوصول إلى للمحتوى، سواء كان أفلامًا أو حلقات، بغض النظر عن نوع الاشتراك طرد.
  • الاشتراك المتعدّد الفئات: المحتوى يتطلب اشتراكًا. يمكن للمشتركين الوصول إلى محتوى مختلف سواء كانت أفلامًا أو حلقات حسب درجة الاشتراك على سبيل المثال: المستوى الفضّي مقابل المستوى الذهبي.
  • الاشتراك في إضافة: المحتوى تتطلب اشتراكًا. يمكن للمشتركين إضافة محتوى مدفوع إلى الاشتراك العادي.
  • عملية شراء لمرة واحدة: يمكن للمحتوى أن الشراء، وبعد ذلك يمكن للمستخدم الوصول إليها إلى أجل غير مسمى.
  • البث التلفزيوني المباشر: يشمل الاشتراك إمكانية الوصول إلى القنوات المحلية والوطنية والقنوات المدفوعة
  • اشتراك تابع لجهة خارجية: يتطلّب المحتوى من المستخدم تسجيل الدخول باستخدام مزوّد خدمة الكابل.

مجاني (لا يلزم تسجيل الدخول)

تسجيل الدخول غير مطلوب

المحتوى متاح بدون تسجيل دخول أو اشتراك.


{
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "nologinrequired",
    "availabilityStarts": "2015-01-01T00:00Z",
    "availabilityEnds": "2015-12-31T00:00Z",
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    }
  }
}
  • اضبط السمة category على nologinrequired.
  • لا تضمِّن expectAcceptanceOf.

مجاني (يجب تسجيل الدخول)

يجب تسجيل الدخول

يتطلب المحتوى تسجيل دخول المستخدمين ولكنه لا يتطلب اشتراكك.


{
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "free",
    "availabilityStarts": "2015-01-01T00:00Z",
    "availabilityEnds": "2015-12-31T00:00Z",
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    }
  }
}
  • اضبط السمة category على free.
  • لا تضمِّن expectAcceptanceOf.

اشتراك من فئة واحدة

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


{
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "subscription",
    "availabilityStarts": "2015-01-01T00:00Z",
    "availabilityEnds": "2015-12-31T00:00Z",
    "requiresSubscription": {
        "@type": "MediaSubscription",
        "name": "Example Package",
        "commonTier": true,
        "@id": "http://www.example.com/example_package"
    },
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    }
  }
}

اشتراك بمستويات متعدّدة

في نموذج اشتراك متعدّد المستويات، يحصل مزود الخدمة على عدة مستويات فئات الاشتراك، مثل المستوى الذهبي والمستوى الفضّي المستوى البرونزي. يمكن للمستخدمين الذين لديهم اشتراك من المستوى الأعلى الوصول إلى الكل من المحتوى ذي المستوى الأدنى. في المقابل، إنّ المستخدمين الذين لديهم مستوى أقل لا يمكن لاشتراكك الوصول إلى محتوى المستوى الأعلى.

الشكل 3. نموذج اشتراك متعدّد المستويات للاستحقاقات

إليك السيناريو التالي:

  • اشتركت "سلوى" في الفئة الذهبية. الأذونات الممنوحة لك تعرض نقطة النهاية معرّفات entitlementId التالية:
    • example.com:bronze
    • example.com:silver
    • example.com:gold
  • اشترك سامي في الفئة البرونزية. الأذونات الممنوحة لك تعرض نقطة النهاية entitlementId التالية:
    • example.com:bronze
  • توضِّح خلاصة "إجراءات الوسائط" المتطلبات التالية:
    • يتطلب الفيلم أ example.com:bronze.
    • يتطلب الفيلم ب example.com:silver.

في هذا السيناريو، تحدِّد Google مستويات الوصول التالية لجيهان وجون:

  • لدى جاسر وسامر إمكانية الوصول إلى فيلم أ.
  • يمكن لسارة الوصول إلى فيلم ب، على عكس جون لا يمكنه الوصول إليه.
{
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "subscription",
    "requiresSubscription": {
      "@type": "MediaSubscription",
      "@id": "http://www.example.com/basic_subscription",
      "name": "Bronze",
      "commonTier": true
      ...
    },
    ...
  }
}

الاشتراك في الإضافة

في نموذج الاشتراك في الإضافات، يسمح مقدّم الخدمة للمستخدمين وتوسيع استحقاقاتهم وإضافة قنوات إلى اشتراك أساسي. المستخدمون يمكنهم إضافة العدد الذي يريدونه من القنوات

الشكل 4. نموذج الاشتراك في الإضافة و للاستحقاقات

إليك السيناريو التالي:

  • تمتلك "جين" كلاً من PRO وSportz بالإضافة إلى أساسي. تعرض نقطة نهاية الاستحقاقات معرّفات entitlementId التالية:
    • example.com:basic
    • example.com:pro
    • example.com:sportz
  • لدى طارق اشتراك أساسي فقط. الأذونات الممنوحة لك تعرض نقطة النهاية entitlementId التالية:
    • example.com:basic
  • توضِّح خلاصة "إجراءات الوسائط" المتطلبات التالية:
    • يتطلب الفيلم أ example.com:basic.
    • يتطلب الفيلم ب example.com:pro.

في هذا السيناريو، تحدِّد Google مستويات الوصول التالية لجيهان وجون:

  • لدى جاسر وسامر إمكانية الوصول إلى فيلم أ.
  • يمكن لسارة الوصول إلى فيلم ب، على عكس جون لا يمكنه الوصول إليه.
{
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "subscription",
    "availabilityStarts": "2015-01-01T00:00Z",
    "availabilityEnds": "2015-12-31T00:00Z",
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    "requiresSubscription": [
      {
          "@type": "MediaSubscription",
          "@id": "https://www.example.com/package/basic",
          "name": "Basic",
          "sameAs": "https://www.example.com/package/basic",
          "commonTier": true
        },
        {
          "@type": "MediaSubscription",
          "@id": "https://www.example.com/packages/basic/pro",
          "name": "PRO",
          "sameAs": "https://www.example.com/package/pro",
          "identifier": "example.com:pro",
          "commonTier": false
        },
        {
          "@type": "MediaSubscription",
          "@id": "https://www.example.com/package/sportz",
          "name": "Sportz",
          "sameAs": "https://www.example.com/package/sports",
          "identifier": "example.com:sportz",
          "commonTier": false
        }
    }
  }
}

عملية شراء لمرة واحدة

الشراء

المحتوى متاح لفترة غير محدودة بعد عملية الشراء.


{
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "purchase",
    "availabilityStarts": "2015-01-01T00:00Z",
    "availabilityEnds": "2015-12-31T00:00Z",
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    },
    "expectsAcceptanceOf": {
      "@type": "Offer",
      "price": 7.99,
      "priceCurrency": "USD",
      "seller": {
        "@type": "Organization",
        "name": "Example",
        "sameAs": "http://www.example.com/"
      }
    }
  }
}
  • اضبط السمة category على purchase.
  • تضمين expectAcceptanceOf في actionAccessibilityRequirement للإشارة إلى سعر عملية الشراء.

استئجار

ويكون المحتوى متاحًا لفترة محدودة بعد عملية الشراء.


{
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "rental",
    "availabilityStarts": "2015-01-01T00:00Z",
    "availabilityEnds": "2015-12-31T00:00Z",
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    },
    "expectsAcceptanceOf": {
      "@type": "Offer",
      "price": 7.99,
      "priceCurrency": "USD",
      "seller": {
        "@type": "Organization",
        "name": "Example",
        "sameAs": "http://www.example.com/"
      }
    }
  }
}
  • اضبط السمة category على rental.
  • تضمين expectAcceptanceOf في actionAccessibilityRequirement للإشارة إلى سعر الإيجار.

البث التلفزيوني المباشر

في خلاصة "إجراءات الوسائط"، يمكنك حظر الوصول إلى بث تلفزيوني مباشر. channel أو الحدث استنادًا إلى الشرطين التاليين للمستخدم:

  • الموقع الجغرافي لجهاز المستخدم

    لحظر الوصول إلى القناة التلفزيونية، حدِّد المنطقة التي يريد فيها المستخدمون حق الوصول إليها. ينطبق هذا الشرط عادةً على البث المحلي. القنوات التلفزيونية.

  • حالة حساب المستخدم

    إذا كان الوصول إلى قناة تلفزيونية يعتمد على الإعدادات على مستوى حساب المستخدم، استخدام معرفات الوصول إلى تمثل القيد.

    ينطبق هذا الشرط عادةً على حالات الاستخدام التالية:

    • حزمة: غالبًا ما يتم تضمين القنوات الوطنية في والحِزم، ويختار المستخدمون الحزمة التي يريدون الاشتراك فيها.
    • إضافة: تتطلّب بعض القنوات المميّزة من المستخدمين يضيفون بشكل انتقائي المزيد من القنوات إلى اشتراكاتهم.
    • الشبكة الإقليمية الرياضية (RSN): الشبكة الرياضية الإقليمية هي عادةً المرتبطة "بمنزل" المستخدم الموقع. يمكن للمستخدمين مشاهدة المحتوى على شبكة RSN حتى عند السفر خارج "منازلهم" الموقع.

اشتراك تابع لجهة خارجية

اشتراك تابع لجهة خارجية

ويتوفّر المحتوى للمشتركين من خدمة مختلفة.


{
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "externalsubscription"
    "availabilityStarts": "2015-01-01T00:00Z",
    "availabilityEnds": "2015-12-31T00:00Z",
    "requiresSubscription":{
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/faq",
      "name": "Example",
      "sameAs": "https://www.example.com/faq",
      "authenticator": {
        "@type": "Organization",
        "name": "TVE"
      }
    },
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    }
  }
}
  • يمكنك إضافة authenticator للإشارة إلى أنّ خدمة مختلفة بالمصادقة على المشتركين. على سبيل المثال، تتطلب HBO GO مقدّم خدمة التلفزيون الكبلي

حزم الفئات الشائعة

محتوى الفئات المشتركة متاح لجميع المشتركين بغض النظر عن باقة الاشتراك. ينطبق المستوى العام على كل المحتوى الذي يتضمّن category. من subscription. لمزيد من المعلومات عن السمة category، يمكنك الاطّلاع على قسم نوع جدار الدفع.

لماذا يجب توفُّر حزمة ذات مستوى مشترك؟

تتوفر في منتجات متعددة من Google أجهزة التلفزيون توصيات الأفلام للمستخدمين هذا يشمل ذلك "بحث Google" وAndroid TV و"مساعد Google". لضبط حساب المستخدم التوقعات بشأن التكلفة، يجب أن تفهم Google المحتوى المتاح للجميع المشتركين من خلال استخدام الفئة العامة. ينبغي أن تفهم Google أيضًا ما المحتوى متاح للمشتركين الذين لديهم حزم اشتراك محددة.

تقترح Google الكتب المتوفّرة في الفئة المشتركة ما لم يكن بإمكانك استخدام entitlement API. تتيح واجهة برمجة التطبيقات لمحرّك بحث Google فهم عناوين الفئات غير الشائعة التي يتم تحديدها المستخدم الوصول إليه.

متى يجب أن أنشئ حزمة من المستوى المشترك؟

يجب توفُّر حزمة من المستوى المشترك عندما تقدّم خدمتك محتوى متاحة لجميع المشتركين. يشمل ذلك الخدمات التي تقدّم حزمة واحدة فقط. والخدمات التي تقدم حزمًا أو إضافات متعددة.

لا يحتاج مقدّمو الخدمات الذين لا يملكون أي محتوى متاح لجميع المشتركين إلى إنشاء محتوى حزمة من المستوى المشترك. ومن الأمثلة على ذلك مقدمي الخدمات الذين يقدمون خدمات نقل المحتوى عبر جميع حزمهم.

أمثلة على الفئات الشائعة

في ما يلي أمثلة على الفئة المشتركة.

اشتراك بمستويات مختلفة

في نموذج الاشتراك المتعدّد المستويات، يحصل مقدّم الخدمة على عدة اشتراكات. المستويات، مثل المستويات الذهبية والفضية والبرونزية. مستخدمو حسابات تضم بإمكان اشتراك المستوى الأعلى الوصول إلى كل المحتوى في الفئات الأدنى. المستخدمون الذين لديهم اشتراك ذي فئة أقل، لا يمكنهم الوصول إلى المحتوى في . الصورة التالية هي مثال على بنية الحزمة.

تحتوي الفئة الذهبية على جميع محتوى الفئة الفضية، والتي
            نفسها تحتوي على كل المستوى البرونزي.
الشكل 5. بنية حزمة الاشتراك المقسّمة

في مثال التعليمة البرمجية التالي، الحزمة البرونزية هي الفئة الشائعة لأن جميع يمكن للمستخدمين الوصول إلى كل المحتوى في هذا المستوى.

"requiresSubscription": [
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/package/bronze",
      "name": "Bronze",
      "sameAs": "https://www.example.com/package/bronze",
      "commonTier": true
    },
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/package/silver",
      "name": "Silver",
      "sameAs": "https://www.example.com/package/silver",
      "identifier": "example.com:silver",
      "commonTier": false
    },
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/package/gold",
      "name": "Gold",
      "sameAs": "https://www.example.com/package/gold",
      "identifier": "example.com:gold",
      "commonTier": false
    }
  ],

الإضافات

في نموذج الاشتراك في الإضافات، يسمح مقدّم الخدمة للمستخدمين بتوسيع نطاق أذوناتهم وإضافة قنوات إلى اشتراك أساسي. يمكن للمستخدمين الإضافة كـ والعديد من القنوات. الصورة التالية هي مثال على الحزمة البنية.

يبدأ كل مستخدم بالقناة الأساسية، ويمكنه اختيار إضافة
            أي مجموعة من قنوات PRO وSportz وMoviemax.
الشكل 6. بنية حزمة الاشتراك في الإضافات.

إذا كانت لديك قناة متاحة لجميع المستخدمين ولا توجد تكلفة يمكنك دمج الحزمة مع حزمة الفئة العامة.

في مثال التعليمة البرمجية التالي، الحزمة الأساسية هي الفئة الشائعة لأن جميع يمكن للمستخدمين الوصول إلى كل المحتوى في هذه الحزمة.

"requiresSubscription": [
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/package/basic",
      "name": "Basic",
      "sameAs": "https://www.example.com/package/basic",
      "commonTier": true
    },
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/packages/basic/pro",
      "name": "PRO",
      "sameAs": "https://www.example.com/package/pro",
      "identifier": "example.com:pro",
      "commonTier": false
    },
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/package/sportz",
      "name": "Sportz",
      "sameAs": "https://www.example.com/package/sports",
      "identifier": "example.com:sportz",
      "commonTier": false
    },
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/package/moviemax",
      "name": "Moviemax",
      "sameAs": "https://www.example.com/package/moviemax",
      "identifier": "example.com:moviemax",
      "commonTier": false
    }
  ],

حزم تتضمن محتوى يتقاطع

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

مخطط Venn حيث يكون التداخل بين الحزم 1 و2 و3
            بعنوان &quot;الطبقة المشتركة&quot;.
الشكل 7. بنية حزمة مع محتوى متقاطع.

في مثال التعليمة البرمجية التالي، يقدم الموفر ثلاث حزم حيث تكون بعض يتقاطع المحتوى عبر جميع الحزم. في هذه الحالة، هناك حزمة رابعة الذي يمثل الفئة المشتركة المطلوبة. يجب أن تتضمّن كل المحتوى متاحة عبر جميع الحزم الثلاث.

"requiresSubscription": [
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/package/1",
      "name": "Package 1",
      "sameAs": "https://www.example.com/package/1",
      "identifier": "example.com:package1",
      "commonTier": false
    },
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/package/2",
      "name": "Package 2",
      "sameAs": "https://www.example.com/package/2",
      "identifier": "example.com:package2",
      "commonTier": false
    },
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/package/3",
      "name": "Package 3",
      "sameAs": "https://www.example.com/package/3",
      "identifier": "example.com:package3",
      "commonTier": false
    },
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/package/common",
      "name": "Common Tier Package",
      "sameAs": "https://www.example.com/package/common",
      "commonTier": true
    }
  ],

حزم بدون محتوى يتقاطع

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

الحزم 1 و2 و3 منفصلة تمامًا.
الشكل 8. بنية الحزمة بدون متقاطعة للمحتوى
.

في المثال التالي، يعرض موفّر الخدمة ثلاث حزم بدون محتوى ويتقاطع عبر جميع الحزم. ليس من المطلوب أيّ حزمة ذات مستوى مشترَك.

"requiresSubscription": [
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/package/1",
      "name": "Package 1",
      "sameAs": "https://www.example.com/package/1",
      "identifier": "example.com:package1",
      "commonTier": false
    },
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/package/2",
      "name": "Package 2",
      "sameAs": "https://www.example.com/package/2",
      "identifier": "example.com:package2",
      "commonTier": false
    },
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/package/3",
      "name": "Package 3",
      "sameAs": "https://www.example.com/package/3",
      "identifier": "example.com:package3",
      "commonTier": false
    }
  ],

نقطة نهاية الأذونات

استخدم المعلومات من هذا القسم لاستضافة نقطة نهاية HTTPS تعرض الاستحقاقات المرتبطة بالمستخدم.

المتطلبات الأساسية

قبل البدء، تأكَّد من أنّ الخدمة تتيح مسار OAuth 2.0 مع Google.

الطلب

لتلقّي أذونات المستخدم، ترسل Google طلبًا يتضمن رمز OAuth المميز للمستخدم. تحتاج نقطة النهاية إلى تحديد هوية المستخدم بناءً على بروتوكول OAuth هذا. الرمز المميز. انظر المثال التالي:

GET /resource HTTP/1.1
Host: server.example.com
Authorization: Bearer <OAuthToken>

الرد

تحتاج نقطة النهاية إلى عرض استجابة بالخصائص التالية:

الموقع
subscription

مطلوب

هذا حقل داخل استجابة الجذر.

subscription.type

مطلوب

يمكن أن تحتوي هذه السمة على القيم التالية:

  • ActiveSubscription: لدى المستخدم اشتراك نشط إلى المزوِّد.
  • ActiveTrial: لدى المستخدم فترة تجريبية نشطة المستخدم.
  • InactiveSubscription: ليس لدى المستخدم معرّف نشط. اشتراك أو فترة تجريبية نشطة.
subscription.expiration_date

اختياريّ

تاريخ انتهاء صلاحية هذا الإذن، في بتنسيق ISO 8601 بما في ذلك المنطقة الزمنية لمزيد من التفاصيل، يُرجى مراجعة تواريخ انتهاء الصلاحية:

entitlements

اختياريّ

وهذه السمة الجذر تحتوي على قيم entitlementId التي عمليات الاحتفاظ ببيانات المستخدم.

entitlements.entitlement

مطلوب في حال اختلاف إمكانية الوصول إلى قائمة البث. استنادًا إلى نوع الاشتراك

تحتوي هذه السمة على entitlementId. لمزيد من المعلومات، المعلومات، راجع معرّف الوصول إلى الموقع الإلكتروني:

entitlements.expiration_date

اختياريّ

تاريخ انتهاء صلاحية هذا الاشتراك، في بتنسيق ISO 8601 بما في ذلك المنطقة الزمنية لمزيد من التفاصيل، يُرجى مراجعة تواريخ انتهاء الصلاحية:

تواريخ انتهاء الصلاحية

هناك خاصيتان في استجابة نقطة النهاية تتعامل مع تاريخ انتهاء الصلاحية. التاريخان: subscription.expiration_date وentitlements.expiration_date. إِنْتَ يمكن أن تتضمن أحدهما أو لا، ولكن لا تتضمن كليهما. يعتمد الخيار الذي تستخدمه على نموذج الاشتراك الخاص بك.

نموذج الاشتراك
يمكن لجميع المشتركين الوصول إلى مجموعة البث الخاصة بك بالطريقة نفسها. لأنّك لست بحاجة إلى تحديد entitlements حدد subscription.expiration_date.

تختلف إمكانية الوصول إلى مجموعة البث بحسب تفاصيل اشتراك المستخدم.

إذا كان نموذج الاشتراك يتضمّن فئات أو إضافات متعدّدة تنتهي صلاحيتها بمرور الوقت، يمكنك تنفيذ أحد الإجراءات التالية:

  • إذا انتهت جميع قيم entitlements.entitlement في في الوقت ذاته، حدِّد subscription.expiration_date.
  • في حال انتهاء صلاحية بعض قيم entitlements.entitlement في أوقات مختلفة، قم بتحديد entitlements.expiration_date.

أمثلة للردود

في ما يلي أمثلة على ردود حالات الاشتراك المختلفة:

  • اشتراك نشط
  • اشتراك نشط له تاريخ انتهاء صلاحية
  • بدون اشتراك
  • يشير هذا المصطلح إلى الاشتراكات النشطة في فئات أو إضافات متعدّدة.

اشتراك نشط

الاشتراك النشِط

يمتلك المستخدم اشتراكًا نشطًا في example.com. في هذه الدورة، هذا يعني أنّه يمكن لجميع المشتركين الوصول إلى كامل كتالوج البث بغض النظر عن نوع اشتراكهم.


{
  "subscription" : {
    "type": "ActiveSubscription",
  }
}

اشتراك نشط له تاريخ انتهاء صلاحية

اشتراك نشط له تاريخ انتهاء صلاحية

يمتلك المستخدم اشتراكًا نشطًا في example.com، تاريخ انتهاء صلاحية الاشتراك في هذه الحالة، يكون لدى جميع المشتركين مشاهدة مجموعة البث كاملةً بغض النظر عن اشتراكهم الكتابة.


{
  "subscription" : {
    "type": "ActiveSubscription",
    "expiration_date": "2019-11-10T10:00:00Z"
  }
}

بدون اشتراك

بدون اشتراك

ليس لدى مستخدم اشتراك في example.com.


{
  "subscription" : {
    "type": "InactiveSubscription"
  }
}

يشير هذا المصطلح إلى الاشتراكات النشطة في فئات أو إضافات متعدّدة.

الاشتراكات النشِطة في فئات أو إضافات متعدّدة

يمتلك المستخدم اشتراكًا في "example.com:premium" حتى تاريخ معيّن.


{
  "subscription" : {
    "type": "ActiveSubscription",
  }
  "entitlements": [
    {
      "entitlement": "example.com:premium",
      "expiration": "2019-11-10T10:00:00Z"
    }
  ]
}

الحدّ الأقصى لمعدّل الاستخدام

تعمل Google على إعادة تحميل معلومات استحقاقات المستخدم كل ست ساعات كحد أقصى. إلى وتبسيط الحد الأقصى لطلبات البحث في الثانية (QPS)، وتوزع Google طلبات البحث إلى نقطة النهاية لديك بالتساوي مع مرور الوقت. ومن ثم، يمكنك تقدير المتوسط المتوقع عدد الطلبات في الثانية لنقطة النهاية بالصيغة التالية:

متوسط عدد الطلبات في الثانية = <إجمالي عدد المستخدمين> / 21,600 ثانية (6 ساعات × 60 دقيقة × 60 ثانية)

في حال توفير عدد كبير من المستخدمين، يمكن لـ Google تعديل الفاصل الزمني البالغ 6 ساعات. وإذا لزم الأمر، يمكنك التواصل مع Google لمناقشة الإعدادات.

الاتصال بـ Google

عندما تكون نقطة النهاية جاهزة، يُرجى التواصل مع Google لإبلاغ عنوان URL لنقطة النهاية.

خصائص مواصفات الوصول إلى الإجراءات

يمكنك الاطّلاع على قسم مواصفات الوصول إلى الإجراءات كمرجع المعلومات.