Объявить действия

В 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>

Обратите внимание, что приведенная выше разметка автоматически игнорируется другими почтовыми клиентами, которые не поддерживают схемы в электронных письмах.

Мобильные глубокие ссылки

Действия Go-To также могут напрямую ссылаться на контент в нативных мобильных приложениях для 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://12345/movieapp/watch-movies.com/watch?movieId=abc123"/>
 </div>
</div>

Если у пользователя нет вашего приложения, действие перенаправит его на указанный вами веб-адрес.

Действия внутри приложения

Действия внутри приложения обрабатываются непосредственно в Gmail, без перенаправления пользователя на другой веб-сайт. Действия внутри приложения объявляются аналогично действиям типа Go-To , но содержат дополнительную информацию, которая упрощает обработку действия пользовательскими агентами (такими как 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>

Дополнительная литература

Для получения более подробной информации о действиях см.: