В schema.org действие представляет собой операцию, которую можно выполнить над структурированными данными. Gmail поддерживает несколько типов действий , и вы можете определить каждое из них с помощью аналогичных структурированных данных.
Перейти к действиям
Если вы добавляете разметку в свой контент с помощью сущностей 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 . Для создания прямых ссылок на приложение необходимо добавить дополнительные target URL-адреса, закодированные с использованием схем 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>
Если у пользователя нет вашего приложения, действие перенаправит его на указанный вами веб-адрес.
Действия внутри приложения
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>
Дополнительная информация
Более подробную информацию о действиях см. в:
- Обработка запросов на выполнение действий
- Безопасные действия
- Глубокие ссылки Android
- Глубокие ссылки iOS