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

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

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

إذا أضفت ترميزًا إلى المحتوى باستخدام كيانات schema.org، يمكنك إضافة إجراءات "الانتقال إلى" لها. على سبيل المثال، لجعل كيان EmailMessage يتضمّن رابط Go-To ViewAction، املأ سمة 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>

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

الربط لموضع معيّن في الجوّال

كما يمكن أن توفر إجراءات الانتقال رابطًا مباشرًا إلى المحتوى في تطبيقات الأجهزة الجوّالة الأصلية على 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>

قراءات إضافية

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