در schema.org، یک عمل (action) نشاندهندهی فعالیتی است که میتواند روی بخشی از دادههای ساختاریافته انجام شود. جیمیل از انواع مختلفی از اقدامات پشتیبانی میکند و شما میتوانید هر کدام را با دادههای ساختاریافتهی مشابه تعریف کنید.
اقدامات لازم
اگر با استفاده از موجودیتهای schema.org به محتوای خود نشانهگذاری اضافه کنید، میتوانید اقدامات لازم برای رفتن به آنها را نیز اضافه کنید. برای مثال، برای دادن یک لینک رفتن به ViewAction به موجودیت EmailMessage ، ویژگی 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-app://12345/movieapp/watch-movies.com/watch?movieId=abc123"/>
</div>
</div>
اگر کاربر برنامه شما را نداشته باشد، این اکشن او را به URL وبی که شما ارائه میدهید، هدایت میکند.
اقدامات درون برنامهای
جیمیل اقدامات درون برنامهای را بدون ارسال کاربر به وبسایت دیگری، درجا مدیریت میکند. شما اقدامات درون برنامهای مانند اقدامات go-to را تعریف میکنید، اما اطلاعات اضافی را نیز در آن قرار میدهید که به کلاینتهای ایمیل (مانند جیمیل) کمک میکند تا این اقدامات را به صورت درونخطی مدیریت کنند.
به جای تعریف یک اکشن با یک 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>
مطالعه بیشتر
برای جزئیات بیشتر در مورد اقدامات، مراجعه کنید به: