Déclarer des actions

Dans schema.org, une action représente une activité qui peut être effectuée sur un élément de données structurées. Gmail est compatible avec plusieurs types d'actions, et vous pouvez définir chacune d'elles avec des données structurées similaires.

Actions "Accéder à"

Si vous ajoutez un balisage à votre contenu avec des entités schema.org, vous pouvez ajouter des actions "Aller à" pour celles-ci. Par exemple, pour attribuer un lien de destination 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>

Les autres clients de messagerie qui ne sont pas compatibles avec les schémas dans les e-mails ignorent automatiquement ce balisage.

Liens profonds mobiles

Les actions de référence peuvent également rediriger directement vers du contenu dans les applications mobiles 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é dans les exemples suivants :

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

En étendant 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-app://12345/movieapp/watch-movies.com/watch?movieId=abc123"/>
 </div>
</div>

Si l'utilisateur ne possède pas votre application, l'action le redirige vers l'URL Web que vous fournissez.

Actions dans l'application

Gmail gère les actions dans l'application sur place, sans rediriger l'utilisateur vers un autre site Web. Vous déclarez des actions dans l'application, comme les actions "Accéder à", mais vous incluez des informations supplémentaires qui aident les clients de messagerie (comme Gmail) à gérer l'action de manière intégrée.

Au lieu de déclarer une action avec un target, déclarez 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 ou de reconnaître quelque chose. Lorsque l'utilisateur clique sur le bouton, Google envoie une requête HTTP à votre service pour enregistrer la confirmation. Les utilisateurs ne peuvent interagir avec un ConfirmAction qu'une seule fois.

L'exemple suivant ajoute un bouton ConfirmAction à un e-mail concernant une note de frais :

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 expirant

Dans de nombreux cas, les actions ne sont pertinentes que pendant une période limitée. Les actions associées à des entités dont les dates sont connues, comme les réservations de voyage, expirent automatiquement. Gmail n'affiche pas l'action une fois le voyage terminé.

Vous pouvez également ajouter explicitement des dates d'expiration aux actions. Par exemple, une action permettant de découper un bon de réduction ou d'enregistrer un code promotionnel peut n'être valable que pendant une durée limitée. Pour définir la période pendant laquelle une action est affichée, 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 :