إعلان الإجراءات

يمثّل "الإجراء" في schema.org فعلاً أو نشاطًا يمكن تنفيذه على جزء من البيانات المنظَّمة. تتوفّر أنواع متعددة من الإجراءات ويمكن تحديدها كلها باستخدام بيانات منظَّمة مشابهة.

الإجراءات الأكثر استخدامًا

إذا أضفت ترميزًا إلى المحتوى باستخدام عناصر schema.org، يمكنك إضافة إجراءات Go-To إليها. على سبيل المثال، لجعل عنصر EmailMessage يتضمّن رابط ViewAction Go-To، املأ السمة potentialAction للبريد الإلكتروني، كما في المثال التالي:

JSON-LD

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "EmailMessage",
  "potentialAction": {
    "@type": "ViewAction",
    "target": "https://watch-movies.com/watch?movieId=abc123",
    "name": "Watch movie"
  },
  "description": "Watch the 'Avengers' movie online"
}
</script>

البيانات الجزئية

<div itemscope itemtype="http://schema.org/EmailMessage">
  <div itemprop="potentialAction" itemscope itemtype="http://schema.org/ViewAction">
    <link itemprop="target" href="https://watch-movies.com/watch?movieId=abc123"/>
    <meta itemprop="name" content="Watch movie"/>
  </div>
  <meta itemprop="description" content="Watch the 'Avengers' movie online"/>
</div>

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

الربط بصفحات معيّنة على الأجهزة الجوّالة

يمكن أن تؤدي إجراءات Go-To أيضًا إلى ربط المحتوى مباشرةً بالتطبيقات المتوافقة مع نظام تشغيل الأجهزة الجوّالة على Android وiOS. لإنشاء رابط لصفحة معيّنة في تطبيق، أدرِج عناوين URL إضافية target مشفّرة باستخدام المخططين android-app:// وios-app:// كما هو موضّح أدناه:

JSON-LD

"target": [
  “<web url>”,
  “android-app://<android package name>/<scheme>/<host>/<path+query>”,
  “ios-app://<App store ID>/<scheme>/<host><path+query>"
]

البيانات الجزئية

<link itemprop="target" href="<web url>"/>
<link itemprop="target" href="android-app://<android package name>/<scheme>/<host>/<path+query>”/>
<link itemprop="target" href="ios-app://<App store ID>/<scheme>/<host>/<path+query>"/>

تمديد المثال السابق EmailMessage:

JSON-LD

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "EmailMessage",
  "name": "Watch movie",
  ... information about the movie ...
  "potentialAction": {
    "@type": "ViewAction",
    "target": [
      "https://watch-movies.com/watch?movieId=abc123",
      "android-app://com.watchmovies.app/http/watch-movies.com/watch?movieId=abc123",
      "ios-app://12345/movieapp/watch-movies.com/watch?movieId=abc123"
    ]
  }
}
</script>

البيانات الجزئية

<div itemscope itemtype="http://schema.org/EmailMessage">
  <meta itemprop="name" content="Watch movie"/>
  ... information about the movie ...
  <div itemprop="potentialAction" itemscope itemtype="http://schema.org/ViewAction">
    <meta itemprop="target" content="https://watch-movies.com/watch?movieId=abc123"/>
    <meta itemprop="target" content="android-app://com.watchmovies.android/http/watch-movies.com/watch?movieId=abc123"/>
    <meta itemprop="target" content="ios://12345/movieapp/watch-movies.com/watch?movieId=abc123"/>
 </div>
</div>

إذا لم يكن التطبيق مثبَّتًا على جهاز المستخدِم، سيتم توجيهه إلى عنوان URL على الويب الذي تقدّمه.

الإجراءات داخل التطبيق

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

بدلاً من تعريف إجراء باستخدام target، عليك تعريف HttpActionHandler للإجراء مع الإعداد المناسب.

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

يضيف المثال التالي زر ConfirmAction إلى رسالة إلكترونية حول تقرير نفقات:

JSON-LD

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "EmailMessage",
  "potentialAction": {
    "@type": "ConfirmAction",
    "name": "Approve Expense",
    "handler": {
      "@type": "HttpActionHandler",
      "url": "https://myexpenses.com/approve?expenseId=abc123"
    }
  },
  "description": "Approval request for John's $10.13 expense for office supplies"
}
</script>

البيانات الجزئية

<div itemscope itemtype="http://schema.org/EmailMessage">
  <div itemprop="potentialAction" itemscope itemtype="http://schema.org/ConfirmAction">
    <meta itemprop="name" content="Approve Expense"/>
    <div itemprop="handler" itemscope itemtype="http://schema.org/HttpActionHandler">
      <link itemprop="url" href="https://myexpenses.com/approve?expenseId=abc123"/>
    </div>
  </div>
  <meta itemprop="description" content="Approval request for John's $10.13 expense for office supplies"/>
</div>

الإجراءات التي ستنتهي صلاحيتها

في كثير من الحالات، تكون الإجراءات مناسبة لفترة محدودة فقط. ستنتهي تلقائيًا صلاحية الإجراءات المرتبطة بكيانات لها تواريخ معروفة، مثل حجوزات السفر. لا يعرض Gmail الإجراء بعد انتهاء الرحلة.

يمكن أيضًا إضافة فترات انتهاء الصلاحية بشكلٍ صريح إلى الإجراءات. على سبيل المثال، قد يكون إجراء قصّ قسيمة أو حفظ رمز عرض صالحًا لفترة محدودة فقط. لضبط الفترة الزمنية التي يتم فيها عرض الإجراء، اضبط السمتَين startTime وendTime للإجراء:

JSON-LD

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "EmailMessage",
  "potentialAction": {
    "@type": "ConfirmAction",
    "name": "Save coupon",
    "handler":  {
       "@type": "HttpActionHandler",
       "url": "https://my-coupons.com/approve?couponId=abc123"
    },
    "startTime": "2015-06-01T12:00:00Z",
    "endTime": "2015-06-05T12:00:00Z"
  }
}
</script>

البيانات الجزئية

<div itemscope itemtype="http://schema.org/EmailMessage">
  <div itemprop="potentialAction" itemscope itemtype="http://schema.org/ConfirmAction">
    <meta itemprop="name" content="Save coupon"/>
    <div itemprop="handler" itemscope itemtype="http://schema.org/HttpActionHandler">
      <link itemprop="url" href="https://my-coupons.com/approve?couponId=abc123"/>
    </div>
    <meta itemprop="startTime" content="2015-06-01T12:00:00Z" />
    <meta itemprop="endTime" content="2015-06-05T12:00:00Z" />
  </div>
</div>

محتوى إضافي للقراءة

لمزيد من التفاصيل حول الإجراءات، يُرجى الاطّلاع على: