schema.org の Action は、構造化データに対して実行できる動詞またはアクティビティを表します。複数のタイプのアクションがサポートされており、すべて同様の構造化データで定義できます。
Go-To Actions
schema.org エンティティを使用してコンテンツにマークアップを追加すると、それらのエンティティに移動アクションを追加できます。たとえば、EmailMessage
エンティティに ViewAction
Go-To リンクを設定するには、次の例のようにメールの 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>
microdata
<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 のネイティブ モバイルアプリのコンテンツに直接リンクすることもできます。アプリにディープリンクするには、以下に示すように、android-app://
スキームと ios-app://
スキームでエンコードされた追加の target
URL を含めます。
JSON-LD
"target": [
“<web url>”,
“android-app://<android package name>/<scheme>/<host>/<path+query>”,
“ios-app://<App store ID>/<scheme>/<host><path+query>"
]
microdata
<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>
microdata
<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>
アプリがインストールされていない場合は、指定したウェブ URL にユーザーが移動します。
アプリ内ユーザー行動の数
アプリ内ユーザー行動は、ユーザーを別のウェブサイトに移動させることなく、Gmail 内でその場で処理されます。アプリ内アクションは移動アクションのように宣言されますが、ユーザー エージェント(Gmail など)がアクションをインラインで簡単に処理できるようにする追加情報が含まれています。
target
を使用してアクションを宣言する代わりに、適切な構成でアクションの HttpActionHandler
を宣言する必要があります。
たとえば、ユーザーが何かを承認、確認、認識する必要があるメールに確認ボタンを追加できます。ユーザーがボタンをクリックすると、Google からサービスに HTTP リクエストが発行され、確認が記録されます。ConfirmAction
は 1 回だけ操作できます。
次の例では、経費レポートに関するメールに 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>
microdata
<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>
microdata
<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>
関連情報
アクションの詳細については、以下をご覧ください。