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

يفضّل المستخدمون مشاهدة المحتوى الذي يمكنهم الوصول إليه، مثل المحتوى المضمّن في اشتراكهم الحالي. إذا كان محرّك بحث 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",

حالات استخدام eligibleRegion

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

  • المثال 1: eligibleRegion مع قائمة بالبلدان
  • المثال 2: eligibleRegion مع عنصر GeoShape يحتوي على قائمة بالرموز البريدية
  • المثال 3: eligibleRegion مع عنصر GeoShape يتضمّن قائمة برموز منطقة إعادة التوجيه للرمز البريدي حسب ترتيبه (FSA).
  • المثال 4: eligibleRegion مع عنصر GeoShape يتضمّن معرّف DMA.
  • المثال 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
  },
  "additionalProperty": {
      "@type": "PropertyValue",
      "name": "DisplaySubscriptionIdentifier",
      "value": "http://www.example.com/local_tv_network/subscription"
  },
  "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
  },
  "additionalProperty": {
      "@type": "PropertyValue",
      "name": "DisplaySubscriptionIdentifier",
      "value": "http://www.example.com/abcd/subscription"
  },
  "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
  },
  "additionalProperty": {
      "@type": "PropertyValue",
      "name": "DisplaySubscriptionIdentifier",
      "value": "http://www.example.com/local_tv_network/subscription"
  },
 "eligibleRegion":   {
      "@type": "Country",
      "name": "US"
    },
  "ineligibleRegion": {
    "@type": "GeoShape",
    "@id": "http://example.com/area1",
    "addressCountry": "US",
    "postalCode": [
      "94118",
      "94119"
    ]
  }
}

معرّف الاستحقاق

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

  1. نرسل طلب بيانات من واجهة برمجة التطبيقات إلى نقطة نهاية "الأذونات" لتلقّي معرّفات أذونات المستخدم.
  2. نبحث عن معرّفات الأهلية المطلوبة للمحتوى من خلاصة Media Actions.
  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
        ...
      },
      "additionalProperty": {
        "@type": "PropertyValue",
        "name": "DisplaySubscriptionIdentifier",
        "value": "http://www.example.com/basic_subscription"
      },
      ...
    }
  },
  ...
}

حالات الاستخدام الشائعة للوصول

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

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

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

لا يلزم تسجيل الدخول

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


{
  "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"
    },
    "additionalProperty": {
      "@type": "PropertyValue",
      "name": "DisplaySubscriptionIdentifier",
      "value": "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
  • توضّح خلاصة "مهام لمحتوى الوسائط" المتطلبات التالية:
    • يتطلّب الفيلم A توفّر example.com:bronze.
    • يتطلّب الفيلم (ب) توفّر example.com:silver.

في هذا السيناريو، تحدّد Google مستويات الوصول التالية لكل من &quot;سارة&quot; و&quot;أحمد&quot;:

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

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

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

الشكل 4. نموذج اشتراك في الإضافات وتمثيل الأذونات فيه

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

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

في هذا السيناريو، تحدّد Google مستويات الوصول التالية لكل من &quot;سارة&quot; و&quot;أحمد&quot;:

  • يمكن لكل من جمانة وجاسم الوصول إلى الفيلم أ.
  • يمكن لـ "سارة" الوصول إلى الفيلم ب، ولكن لا يمكن لـ "علي" ذلك.
{
  "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
        }
    ],
      "additionalProperty": {
        "@type": "PropertyValue",
        "name": "DisplaySubscriptionIdentifier",
        "value": "http://www.example.com/package/basic"
      },
    }
  }
}

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

الشراء

سيبقى المحتوى متاحًا لفترة زمنية غير محدودة بعد الشراء.


{
  "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 للإشارة إلى سعر الاستئجار.

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

في خلاصة مهام لمحتوى الوسائط، يمكنك حظر الوصول إلى قناة أو حدث في البث التلفزيوني المباشر استنادًا إلى شرطَي المستخدمَين التاليَين:

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

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

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

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

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

    • الحزمة: غالبًا ما يتم تضمين القنوات الوطنية في حِزم، ويختار المستخدمون الحزمة التي يريدون الاشتراك فيها.
    • حزمة إضافية: تتطلّب بعض القنوات المدفوعة من المستخدمين إضافة قنوات إضافية بشكل انتقائي إلى اشتراكهم.
    • الشبكة الرياضية الإقليمية (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"
      }
    },
    "additionalProperty": {
      "@type": "PropertyValue",
      "name": "DisplaySubscriptionIdentifier",
      "value": "http://www.example.com/faq"
     },
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    }
  }
}
  • أضِف authenticator للإشارة إلى أنّ خدمة مختلفة تصادق على المشتركين. على سبيل المثال، يتطلّب تطبيق HBO GO اشتراكًا من مقدّم خدمة الكابل.

حِزم المستوى الشائع

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

لماذا يجب توفُّر حزمة من الفئة الشائعة؟

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

تنصح Google باستخدام العناوين المتوفّرة في الفئة الشائعة ما لم تكن تتيح واجهة برمجة التطبيقات الخاصة بالحق في المشاهدة. تتيح واجهة برمجة التطبيقات لـ 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
    }
  ],

الحِزم التي تتضمّن محتوًى متداخلًا

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

مخطّط فنّي يظهر فيه تداخل بين الحزم 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 معلومات أذونات المستخدم كل ست ساعات تقريبًا. لتحقيق سلاسة في الحدّ الأقصى لعدد الطلبات في الثانية، توزّع Google الطلبات على نقطة النهاية بالتساوي بمرور الوقت. وبالتالي، يمكنك تقدير متوسّط عدد طلبات البحث في الثانية المتوقّع لنقطة النهاية باستخدام الصيغة التالية:

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

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

التواصل مع Google

عندما تصبح نقطة النهاية جاهزة، تواصَل مع Google لإبلاغها بعنوان URL الخاص بنقطة النهاية.

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

راجِع قسم سمات مواصفات الوصول إلى الإجراءات للحصول على معلومات مرجعية.