Declarar acciones

Una acción en schema.org representa un verbo o una actividad que se puede realizar en un fragmento de datos estructurados. Se admiten varios tipos de acciones, y todas se pueden definir con datos estructurados similares.

Acciones de Go-To

Si agregas lenguaje de marcado a tu contenido con entidades de schema.org, puedes agregar acciones de Ir a para ellas. Por ejemplo, para que una entidad EmailMessage tenga un vínculo Ir a ViewAction, propaga la propiedad potentialAction del correo electrónico, como en el siguiente ejemplo:

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>

Microdatos

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

Ten en cuenta que otros clientes de correo electrónico que no admiten esquemas en los correos electrónicos ignoran automáticamente el lenguaje de marcado anterior.

Vinculación directa para dispositivos móviles

Las acciones Ir a también pueden vincularse directamente con el contenido de las apps nativas para dispositivos móviles en Android y iOS. Para crear un vínculo directo a una app, incluye URLs target adicionales codificadas con los esquemas android-app:// y ios-app://, como se muestra a continuación:

JSON-LD

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

Microdatos

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

Extensión del ejemplo 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>

Microdatos

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

Si el usuario no tiene tu app, la acción lo llevará a la URL web que proporciones.

Acciones en la aplicación

Las acciones en la app se controlan en el lugar, dentro de Gmail, sin enviar al usuario a otro sitio web. Las acciones integradas en la app se declaran como acciones de acceso directo, pero contienen información adicional que facilita que los agentes de usuario (como Gmail) controlen la acción de forma intercalada.

En lugar de declarar una acción con un target, debes declarar un HttpActionHandler para la acción con la configuración adecuada.

Por ejemplo, puedes agregar un botón de confirmación a los correos electrónicos que requieren que los usuarios aprueben, confirmen y reconozcan algo. Una vez que el usuario haga clic en el botón, Google enviará una solicitud HTTP a tu servicio para registrar la confirmación. Solo se puede interactuar con ConfirmAction una vez.

En el siguiente ejemplo, se agrega un botón ConfirmAction a un correo electrónico sobre un informe de gastos:

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>

Microdatos

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

Acciones que vencen

En muchos casos, las acciones solo son pertinentes durante un período limitado. Las acciones asociadas a entidades con fechas conocidas, como las reservas de viajes, vencerán automáticamente. Gmail no muestra la acción después de que finaliza el viaje.

También se pueden agregar fechas de vencimiento de forma explícita a las acciones. Por ejemplo, una acción para guardar un cupón o guardar un código de oferta podría ser válida solo por un tiempo limitado. Para establecer el período durante el que se muestra una acción, configura las propiedades startTime y endTime de la acción:

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>

Microdatos

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

Lecturas adicionales

Para obtener más detalles sobre las acciones, consulta los siguientes recursos: