یک اکشن در 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 actions can also link directly to content in native mobile apps on Android and iOS . To deep link to an app, include additional target URLs encoded with the android-app:// and ios-app:// schemes as shown below:
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 وبی که شما ارائه میدهید، هدایت میکند.
اقدامات درون برنامهای
اقدامات درون برنامهای (In-App Actions) به صورت داخلی، درون Gmail و بدون ارسال کاربر به وبسایت دیگری، مدیریت میشوند. اقدامات درون برنامهای مانند Go-To Actions تعریف میشوند، اما حاوی اطلاعات اضافی هستند که مدیریت درونخطی آن را برای user-agentها (مانند Gmail) آسان میکند.
به جای تعریف یک اکشن با target ، باید یک HttpActionHandler برای اکشن با پیکربندی مناسب تعریف کنید.
For instance, you can add a confirm button to emails requiring users to approve, confirm, and acknowledge something. Once the user clicks on the button, an HTTP request will be issued from Google to your service, recording the confirmation. ConfirmAction can only be interacted with once.
مثال زیر یک دکمه 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>
مطالعه بیشتر
برای جزئیات بیشتر در مورد اقدامات، به موارد زیر مراجعه کنید: