Declarar ações

Uma ação em schema.org representa um verbo ou atividade que pode ser realizada em um dado estruturado. Vários tipos de ações são aceitos e podem ser definidos com dados estruturados semelhantes.

Ações de referência

Se você adicionar marcação ao seu conteúdo com entidades do schema.org, poderá incluir ações de acesso direto a elas. Por exemplo, para que uma entidade EmailMessage tenha um link ViewAction Go-To, preencha a propriedade potentialAction do e-mail, como no exemplo a seguir:

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>

Microdados

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

A marcação acima é ignorada automaticamente por outros clientes de e-mail que não oferecem suporte a esquemas em e-mails.

Links diretos para dispositivos móveis

As ações "Go-To" também podem vincular diretamente o conteúdo em apps nativos para dispositivos móveis no Android e no iOS. Para criar um link direto para um app, inclua outros URLs target codificados com os esquemas android-app:// e ios-app://, conforme mostrado abaixo:

JSON-LD

"target": [
  “<web url>”,
  “android-app://<android package name>/<scheme>/<host>/<path+query>”,
  “ios-app://<App store ID>/<scheme>/<host><path+query>"
]

Microdados

<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>"/>

Como estender o exemplo anterior de 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>

Microdados

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

Se o usuário não tiver o app, a ação vai levar o usuário ao URL da Web fornecido.

Ações no aplicativo

As ações no app são processadas no local, no Gmail, sem enviar o usuário para outro site. As ações no app são declaradas como ações de acesso direto, mas contêm informações extras que facilitam a manipulação da ação inline por user agents (como o Gmail).

Em vez de declarar uma ação com uma target, você precisa declarar uma HttpActionHandler para a ação com a configuração adequada.

Por exemplo, é possível adicionar um botão de confirmação a e-mails que exigem que os usuários aprovem, confirmem e reconheçam algo. Quando o usuário clica no botão, uma solicitação HTTP é emitida pelo Google para seu serviço, registrando a confirmação. Só é possível interagir com ConfirmAction uma vez.

O exemplo a seguir adiciona um botão ConfirmAction a um e-mail sobre um relatório de despesas:

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>

Microdados

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

Ações de expiração

Em muitos casos, as ações são relevantes apenas por um período limitado. As ações associadas a entidades com datas conhecidas, como reservas de viagens, vão expirar automaticamente. O Gmail não mostra a ação depois que a viagem termina.

Os prazos também podem ser adicionados explicitamente às ações. Por exemplo, uma ação para recortar um cupom ou salvar um código de oferta pode ser válida apenas por um período limitado. Para definir o período em que uma ação é mostrada, defina as propriedades startTime e endTime da ação:

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>

Microdados

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

Leitura adicional

Para mais detalhes sobre as ações, consulte: