Déclarer des actions

Dans schema.org, une action représente un verbe ou une activité pouvant être effectuée sur un élément de données structurées. Plusieurs types d'actions sont acceptés et peuvent tous être définis à l'aide de données structurées similaires.

Actions de destination

Si vous ajoutez du balisage à votre contenu avec des entités schema.org, vous pouvez y ajouter des actions de redirection. Par exemple, pour ajouter un lien de redirection ViewAction à une entité EmailMessage, renseignez la propriété potentialAction de l'e-mail, comme dans l'exemple suivant:

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>

Microdonnées

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

Notez que le balisage ci-dessus est automatiquement ignoré par les autres clients de messagerie qui n'acceptent pas les schémas dans les e-mails.

Liens profonds pour mobile

Les actions de redirection peuvent également être associées directement au contenu des applications mobiles natives sur Android et iOS. Pour créer un lien profond vers une application, incluez des URL target supplémentaires encodées avec les schémas android-app:// et ios-app://, comme indiqué ci-dessous:

JSON-LD

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

Microdonnées

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

Pour développer l'exemple EmailMessage précédent:

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>

Microdonnées

<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 l'utilisateur ne dispose pas de votre application, l'action le redirige vers l'URL Web que vous fournissez.

Actions dans l'application

Les actions dans l'application sont gérées directement dans Gmail, sans rediriger l'utilisateur vers un autre site Web. Les actions dans l'application sont déclarées comme des actions de redirection, mais elles contiennent des informations supplémentaires qui permettent aux agents utilisateur (tels que Gmail) de gérer facilement l'action en ligne.

Au lieu de déclarer une action avec un target, vous devez déclarer un HttpActionHandler pour l'action avec la configuration appropriée.

Par exemple, vous pouvez ajouter un bouton de confirmation aux e-mails demandant aux utilisateurs d'approuver, de confirmer et de prendre acte de quelque chose. Une fois que l'utilisateur a cliqué sur le bouton, Google envoie une requête HTTP à votre service pour enregistrer la confirmation. Vous ne pouvez interagir avec ConfirmAction qu'une seule fois.

L'exemple suivant ajoute un bouton ConfirmAction à un e-mail concernant un rapport de dépenses:

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>

Microdonnées

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

Actions arrivant à expiration

Dans de nombreux cas, les actions ne sont pertinentes que pendant une durée limitée. Les actions associées à des entités dont la date est connue, comme les réservations de voyages, expirent automatiquement. Gmail n'affiche plus l'action une fois le trajet terminé.

Vous pouvez également ajouter des délais d'expiration de manière explicite aux actions. Par exemple, une action consistant à couper un bon de réduction ou à enregistrer un code d'offre peut n'être valable que pendant une durée limitée. Pour définir la période pendant laquelle une action s'affiche, définissez les propriétés startTime et endTime de l'action:

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>

Microdonnées

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

Documentation complémentaire

Pour en savoir plus sur les actions, consultez les pages suivantes: