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

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

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

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

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

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

    إجراءات الساعة فقط:

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

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

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

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

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

نوع نظام حظر الاشتراك غير المدفوع

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

نوع نظام حظر الاشتراك غير المدفوع مثال الفئة
لا يلزم إجراء عملية شراء أو تسجيل دخول. طقطقة nologinrequired
على المستخدم تسجيل الدخول، ولكن لا يحتاج إلى اشتراك مدفوع. فودو (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 بالقيم التالية:

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

"eligibleRegion": "EARTH",

حالات الاستخدام المؤهَّلة في المنطقة

في ما يلي أمثلة على حالات الاستخدام للسمة 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 عناصر. ويتضمّن كل منها رقم تعريف DMA:


"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
        ...
      },
      ...
    }
  },
  ...
}

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

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

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

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

لا حاجة إلى تسجيل الدخول

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


{
  "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 مستويات الوصول التالية لكل من "سمير" و"جون":

  • فِيهْ كِلَامِةْ سَامِي وِفُؤَادْ عَنْدُهُمْ إِذَا كَانُوا مُتَاحِينْ لِـ الْأَفْلَامْ A.
  • حَسَنْ مُمْكِنِ الْوُصُولْ لِـ الْفِيلْمْ بْ، بَسّْ مُنِيرْ مِشْ فَعَّلْ دَهْ.
{
  "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 مستويات الوصول التالية لكل من "سمير" و"جون":

  • فِيهْ كِلَامِةْ سَامِي وِفُؤَادْ عَنْدُهُمْ إِذَا كَانُوا مُتَاحِينْ لِـ الْأَفْلَامْ A.
  • حَسَنْ مُمْكِنِ الْوُصُولْ لِـ الْفِيلْمْ بْ، بَسّْ مُنِيرْ مِشْ فَعَّلْ دَهْ.
{
  "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 للإشارة إلى سعر الاستئجار.

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

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

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

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

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

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

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

    • حزمة: غالبًا ما يتم تضمين القنوات الوطنية في الحِزم، ويختار المستخدمون الحزمة التي يريدون الاشتراك فيها.
    • الإضافة: تتطلب بعض القنوات المدفوعة من المستخدمين إضافة قنوات إضافية بشكل اختياري إلى اشتراكاتهم.
    • الشبكة الرياضية الإقليمية (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 باستخدام العناوين المتوفّرة في الفئة الشائعة ما لم توفّر واجهة برمجة تطبيقات التخويل. تتيح واجهة برمجة التطبيقات لـ 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
            من المستوى المشترك.
الشكل 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 لنقطة النهاية.

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

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