הצהרה על פעולות

פעולה ב-schema.org מייצגת פועל או פעילות שאפשר לבצע על קטע של נתונים מובְנים. יש תמיכה בכמה סוגים של פעולות, וניתן להגדיר את כולן באמצעות נתונים מובְנים דומים.

פעולות מומלצות

אם מוסיפים תוכן לסימון עם ישויות של schema.org, אפשר להוסיף להן פעולות 'מעבר אל'. לדוגמה, כדי ליצור לישות EmailMessage עם קישור 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 לפעולה עם ההגדרה המתאימה.

לדוגמה, אפשר להוסיף לחצן אישור לאימיילים שבהם המשתמשים צריכים לאשר, לאמת ולאשר משהו. אחרי שהמשתמש ילחץ על הלחצן, תישלח מ-Google בקשת HTTP לשירות שלכם, שבה תתועד האישור. אפשר לבצע פעולה עם 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>

מקורות מידע נוספים

פרטים נוספים על פעולות זמינים במאמרים הבאים: