یک اکشن در 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 همچنین میتوانند مستقیماً به محتوا در برنامههای تلفن همراه بومی در اندروید و 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 وبی که شما ارائه میدهید، هدایت میکند.
اقدامات درون برنامهای
اقدامات درون برنامهای (In-App Actions) به صورت داخلی، درون Gmail و بدون ارسال کاربر به وبسایت دیگری، مدیریت میشوند. اقدامات درون برنامهای مانند Go-To Actions تعریف میشوند، اما حاوی اطلاعات اضافی هستند که مدیریت درونخطی آن را برای user-agentها (مانند Gmail) آسان میکند.
به جای تعریف یک اکشن با target
، باید یک HttpActionHandler
برای اکشن با پیکربندی مناسب تعریف کنید.
برای مثال، میتوانید یک دکمهی تأیید به ایمیلهایی اضافه کنید که از کاربران میخواهند چیزی را تأیید، تصدیق و تصدیق کنند. به محض اینکه کاربر روی این دکمه کلیک کند، یک درخواست 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>
مطالعه بیشتر
برای جزئیات بیشتر در مورد اقدامات، به موارد زیر مراجعه کنید: