ユーザー アクティビティのベスト プラクティスUser Activities best practices

このガイドでは、ユーザーアクティビティを作成および更新するための推奨される方法について説明します。This guide outlines the recommended practices for creating and updating User Activities. Windows のユーザーアクティビティ機能の概要については、「 デバイス間でもユーザーアクティビティを続行する」を参照してください。For an overview of the User Activities feature on Windows, see Continue user activity, even across devices. または、他の開発プラットフォームでのアクティビティの実装については、「Project ローマ」の「 ユーザーアクティビティ」セクション を参照してください。Or, see the User Activities section of Project Rome for the implementations of Activities on other development platforms.

ユーザーアクティビティを作成または更新する場合When to create or update User Activities

すべてのアプリが異なるため、アプリ内のアクションをユーザーアクティビティにマップする最適な方法は、各開発者が決定します。Because every app is different, it's up to each developer to determine the best way to map actions within the app to User Activities. ユーザーアクティビティは Cortana とタイムラインで紹介されます。これは、ユーザーの生産性と効率を向上させることに重点を置いています。これは、過去にアクセスしたコンテンツに戻るために役立ちます。Your User Activities will be showcased in Cortana and Timeline, which are focused on increasing users' productivity and efficiency by helping them get back to content they visited in the past.

一般的なガイドラインGeneral guidelines

  • 関連するユーザーアクションのグループに対して1つのアクティビティを記録します。Record a single activity for a group of related user actions. これは、音楽の再生リストまたはテレビ番組に特に関連します。1つのアクティビティを一定の間隔で更新して、ユーザーの進行状況を反映することができます。This is especially relevant for music playlists or TV Shows: a single Activity can be updated at regular intervals to reflect the user's progress. この場合は、複数の日または数週間にわたるエンゲージメント期間を表す複数の履歴項目を持つ1つのユーザーアクティビティがあります。In this case, you will have a single User Activity with multiple History Items representing periods of engagement across multiple days or weeks. これは、ユーザーがアプリ内で段階的な進捗を行うドキュメントベースのアクティビティにも当てはまります。The same applies to document-based activities on which the user makes gradual progress within your app.
  • ユーザーデータをクラウドに格納します。Store user data in the cloud. クロスデバイスアクティビティをサポートする場合は、このアクティビティを再利用するために必要なコンテンツがクラウドの場所に格納されていることを確認する必要があります。If you want to support cross-device Activities, you'll need to make sure the content required to re-engage this Activity is stored to a cloud location. デバイス固有のアクティビティは、アクティビティが作成されたデバイスのタイムラインに表示されますが、他のデバイスでは表示されない場合があります。Device-specific Activities will appear on Timeline on the device where the activity was created but may not appear on other devices.
  • ユーザーによる再開が不要なアクションに対しては、アクティビティを作成しないでください。Do not create Activities for actions that users will not need to resume. アプリケーションを使用して、状態を保持しない単純な1回限りの操作を完了する場合は、ユーザーアクティビティを作成する必要がないことがあります。If your application is used to complete simple, one-time operations that do not persist status, you probably do not need to create a User Activity.
  • 他のユーザーによって完了したアクションに対しては、アクティビティを作成しないでください。Do not create Activities for actions completed by other users. 外部アカウントがユーザーをアプリ内に送信する場合は @-mentions 、そのアカウントのアクティビティを作成しないでください。If an external account sends the user a message or @-mentions them within your app, you should not create an Activity for this. この種類のアクションは、アクションセンターの通知によってより適切に提供されます。This type of action is better served by Action Center Notifications.
    • コラボレーションシナリオは例外です。複数のユーザーが同時に同じアクティビティを操作している場合 (Word 文書など)、ユーザーが別のユーザーに変更を加えた場合があります。Collaboration scenarios are an exception: If multiple users are working on the same activity together (such as a Word document), there will be cases in which another user has made changes after your user. この場合は、既存のアクティビティを更新して、ドキュメントに加えられた変更を反映させることができます。In this case, you may want to update the existing Activity to reflect changes that were made to the document. これには、新しい履歴項目を作成せずに、既存のユーザーアクティビティコンテンツデータを更新する操作が含まれます。This would involve updating the existing User Activity content data without creating a new History Item.

特定の種類のアプリに関するガイドラインGuidelines for specific types of apps

すべてのアプリは異なりますが、ほとんどのアプリは次のいずれかの対話パターンに分類されます。While every app is different, most apps will fall into one of the following interaction patterns.

  • ドキュメントベースのアプリ —ドキュメントごとに1つのアクティビティを作成し、1つまたは複数の履歴項目で使用期間を反映します。Document-based apps — Create one Activity per document, with one or more History Items reflecting periods of use. ドキュメントに変更が加えられたときに、アクティビティを更新することが重要です。It is important to update your Activity as changes are made to the document.
  • ゲーム : セーブまたは世界の各ゲームに1つのアクティビティを作成します。Games — Create one Activity for each game save or world. ゲームで1つのレベルのシーケンスのみがサポートされている場合は、同じアクティビティを時間の経過と共に再発行できます。ただし、コンテンツデータを更新して最新の進行状況やアチーブメントを表示することもできます。If your game supports only a single sequence of levels, you can re-publish the same Activity over time, although you may wish to update the content data to show the latest progress or achievements.
  • ユーティリティアプリ -ユーザーが残して再開する必要があるアプリ内に何もない場合は、ユーザーアクティビティを使用する必要はありません。Utility apps — If there is nothing within your app that users would need to leave and resume, you do not need to use User Activities. 優れた例として、電卓などの単純なアプリがあります。A good example is a simple app like Calculator.
  • 基幹業務アプリ -単純なタスクやワークフローを管理するための多くのアプリが存在します。Line-of-business apps — Many apps exist for managing simple tasks or workflows. アプリを介してアクセスされる個別のワークフローごとに1つのアクティビティを作成します (たとえば、経費報告書はそれぞれ独立したアクティビティであるため、ユーザーはアクティビティをクリックして特定のレポートが承認されたかどうかを確認できます)。Create one activity for each separate workflow accessed through your app (for example, expense reports would each be a separate Activity, so that the user could then click an Activity to see if a particular report was approved).
  • メディア再生アプリ -コンテンツの論理グループごとに1つのアクティビティ (再生リスト、プログラム、またはスタンドアロンコンテンツなど) を作成します。Media playback apps — Create one Activity per logical grouping of content (such as a playlist, program, or standalone content). アプリ開発者にとっての基礎となる質問は、コンテンツの各部分 (テレビエピソード、曲) がスタンドアロンコンテンツまたはコレクションの一部としてカウントされるかどうかです。The underlying question for app developers is whether a each piece of content (TV episode, song) counts as standalone content or part of a collection. 一般的な規則として、ユーザーがコレクションまたはシーケンシャルコンテンツを再生するようにすると、コレクション全体がアクティビティになります。As a general rule, if the user opts to play a collection or sequential content, the collection as a whole is the activity. 1つのコンテンツを再生することを選択した場合は、コンテンツの1つの部分がアクティビティになります。If they opt to play a single piece of content, then that one piece of content is the activity. 以下の具体的なガイドラインを参照してください。See more specific guidelines below.
    • 音楽: アルバム/アーティスト/ジャンル : ユーザーがアルバム、アーティスト、またはジャンルを 選択し、ヒットした場合、そのコレクションはアクティビティです。曲ごとに個別のアクティビティを記述しないでください。Music: Album/Artist/Genre — If the user selects an Album, Artist, or Genre and hits play, that collection is the activity; do not write a separate Activity for each song. 1つのアルバムまたはコレクションがランダムに再生されるような短いコレクションでは、ユーザーの現在の位置を反映するためにアクティビティを更新する必要がない場合があります。For short collections like a single album or collections being played back in a random order, you may not need to update the Activity to reflect the user's current position. アルバムや再生リストなどの長いシーケンシャル再生では、アルバム内の位置を記録するのが理にかなっている場合があります。For long sequential playback such as an album or playlist, recording your position within the album might make sense.
    • 音楽: スマート再生リスト -ランダムな順序で音楽を再生するアプリケーションは、その再生リストの1つのアクティビティを記録する必要があります。Music: smart playlists — Applications which play music in a random order should record a single Activity for that playlist. ユーザーが2回目に再生リストを再生する場合は、同じアクティビティに対して追加の履歴レコードを作成します。If the user plays the playlist a second time, you would create additional history records for the same Activity. 順序がランダムであるため、再生リストのユーザーの現在の位置を記録する必要はありません。Recording the user's current position in the playlist is not necessary because the ordering is random.
    • テレビシリーズ -現在のユーザーの完了後に次のエピソードを再生するようにアプリが構成されている場合は、テレビシリーズの1つのアクティビティを作成する必要があります。TV series — If your app is configured to play the next episode after the current one is complete, you should write a single Activity for the TV series. 複数の表示セッションでさまざまなエピソードを再生する際には、アクティビティを更新して、系列内の現在の位置を反映させ、複数の履歴レコードを作成します。As you play the various episodes across multiple viewing sessions, you'll update your Activity to reflect the current position in the series, and multiple history records will be created.
    • ムービー : ムービーは1つのコンテンツであり、独自の履歴レコードを持っている必要があります。Movie — A movie is a single piece of content and should have its own history record. ユーザーがムービーの視聴を停止した場合、その位置を記録することをお勧めします。If the user stops watching the movie part-way through, it is desirable to record their position. 後で再開する場合、アクティビティは、中断された場所にあるムービーを再開したり、最初から再開または開始するかどうかをユーザーに確認したりすることができます。When they wish to resume it in the future, the Activity could resume the movie where they left off, or even ask the user if they wish to resume or start at the beginning.

ユーザーアクティビティの設計User Activity design

ユーザーアクティビティは、アクティブ化 URI、ビジュアルデータ、コンテンツメタデータの3つのコンポーネントで構成されています。User Activities consist of three components: an activation URI, visual data, and content metadata.

  • アクティベーション URI は、特定のコンテキストでアプリケーションを再開するためにアプリケーションまたはエクスペリエンスに渡すことができる URI です。The activation URI is a URI that can be passed to an application or experience in order to resume the application with a specific context. 通常、これらのリンクは、スキームのプロトコルハンドラーの形式を使用します ("my app:/page2? action = edit" など)。Typically, these links take the form of protocol handler for a scheme (for example, "my-app://page2?action=edit"). URI パラメーターがアプリによってどのように処理されるかは、開発者が決定します。It is up to the developer to determine how URI parameters will be handled by their app. 詳細については、「 ハンドル URI のアクティブ化 」を参照してください。See Handle URI activation for more information.
  • ビジュアルデータは、一連の必須プロパティと省略可能なプロパティ (タイトル、説明、アダプティブカード要素など) で構成され、ユーザーがアクティビティを視覚的に識別できるようにします。The visual data, consisting of a set of required and optional properties (for example: title, description, or Adaptive Card elements), allow users to visually identify an Activity. アクティビティのアダプティブカードビジュアルを作成するためのガイドラインについては、以下を参照してください。See below for guidelines on creating Adaptive Card visuals for your Activity.
  • コンテンツメタデータは、特定のコンテキストでアクティビティをグループ化および取得するために使用できる JSON データです。The content metadata is JSON data that can be used to group and retrieve activities under a specific context. 通常、これはデータの形式に http://schema.org なります。Typically, this takes the form of http://schema.org data. このデータの入力に関するガイドラインについては、以下を参照してください。See below for guidelines on filling out this data.

アダプティブカードのデザインガイドラインAdaptive Card design guidelines

アクティビティがタイムラインに表示されると、 アダプティブカードフレームワークを使用して表示されます。When Activities appear in Timeline, they are displayed using the Adaptive Card framework. 開発者がアクティビティごとにアダプティブカードを提供していない場合、タイムラインは、アプリの名前/アイコン、必須のタイトルフィールド、および省略可能な説明フィールドに基づいて、単純なカードを自動的に作成します。If the developer does not provide an Adaptive Card for each Activity, Timeline will automatically create a simple card based on the app name/icon, the required Title field, and the optional Description field.

アプリ開発者は、単純なアダプティブカード JSON スキーマを使用してカスタムカードを提供することをお勧めします。App developers are encouraged to provide custom cards using the simple Adaptive Card JSON schema. アダプティブカードオブジェクトを作成する方法の技術的な手順については、 アダプティブカードのドキュメント を参照してください。See the Adaptive Cards documentation for technical instructions on how to construct Adaptive Card objects. ユーザーアクティビティでアダプティブカードを設計する場合は、以下のガイドラインを参照してください。Refer to the guidelines below for designing Adaptive Cards in User Activities.

  • 画像を使用するUse images
    • 可能な場合は、アクティビティごとに一意のイメージを使用します。Use a unique image for each Activity, if possible. アプリケーションの名前とアイコンが、アクティビティのカードの横に自動的に表示されます。その他のイメージは、ユーザーが探しているアクティビティを特定するのに役立ちます。Your application name and icon will automatically be displayed next to your Activity's card; additional images will help users locate the Activity they are looking for.
    • ユーザーが読み取ることが想定されているテキストをイメージに含めることはできません。Images should not include text that the user is expected to read. このテキストは、ユーザー補助のニーズを持つユーザーには使用できず、検索することもできません。This text won't be available to users with accessibility needs and cannot be searched.
    • 画像にテキストが含まれておらず、2:1 の比率でトリミングできる場合は、背景画像として使用する必要があります。If the image doesn't contain text and can be cropped to about a 2:1 ratio, you should use it as a background image. これにより、タイムラインに表示される、太字のアクティビティカードが生成されます。This results in a bold activity card which will stand out in Timeline. 画像は少し暗くなり、テキストがカードに表示されたままになります。また、この場合はアクティビティ名を使用することをお勧めします。この場合、小さいテキストを読むのが困難になります。The image will be darkened slightly to ensure the text remains visible on the card, and you are encouraged to only use the Activity Name in this case, as smaller text can become hard to read.
    • イメージを2:1 にトリミングできない場合は、アクティビティカード内に配置する必要があります。If the image cannot be cropped to 2:1, you should put it within the Activity Card.
      • 縦横比が正方形または縦の場合は、カードの右側に余白なしでイメージを固定します。If the aspect ratio is Square or Portrait, anchor the image on the right side of the card with no margins.
      • 縦横比が横の場合は、カードの右上隅に画像を固定します。If the aspect ratio is Landscape, anchor the image to the upper-right corner of the card.
  • 各アクティビティには、常に表示されるアクティビティ名を指定する必要があります。Each activity is required to provide an Activity Name, which should always be shown.
    • この名前は、大きな太字のテキストオプションを使用して、カードの左上隅に表示されます。This name should be displayed in the upper-left corner of the card using the large bold text option. この名前は簡単に認識できることが重要です。これは、Cortana シナリオでアクティビティが表示されるときにユーザーに表示される唯一の部分です。It is important that the name is easily recognizable, as this is the only part users will see when the activity is shown in Cortana scenarios. タイムラインに同じ名前が表示されると、ユーザーは大量のアクティビティを簡単に参照できるようになります。Showing the same name in Timeline makes it easier for users to browse a large number of Activities.
  • アプリのすべてのアクティビティに同じ視覚スタイルを使用して、ユーザーが自分のアプリのアクティビティをタイムラインで簡単に見つけられるようにします。Use the same visual style for all of the Activities from your app, so that users can easily locate your app's activities in the Timeline.
    • たとえば、アクティビティはすべて同じ背景色を使用する必要があります。For example, Activities should all use the same background color.
  • 補足テキスト情報は控えめに使用してください。Use supplemental text information sparingly.
    • カードにテキストを入力しないようにし、ユーザーが適切な活動を見つけたり、状態情報 (特定のタスクの現在の進行状況など) を反映したりするのに役立つ補足情報のみを使用します。Avoid filling the card with text, and only use supplemental information that aids users in finding the right activity or reflects state information (such as the current progress in a particular task).

コンテンツメタデータのガイドラインContent metadata guidelines

ユーザーアクティビティには、コンテンツメタデータを含めることもできます。このメタデータは、Windows および Cortana がアクティビティを分類して推論を生成するために使用します。User Activities can also contain content metadata, which Windows and Cortana use to categorize Activities and generate inferences. アクティビティは、特定のトピック (ユーザーが休暇を研究している場合)、オブジェクト (ユーザーが何かを調査している場合)、またはアクション (ユーザーがさまざまなアプリや web サイトで特定の製品を購入している場合) など、グループ化することができます。Activities can then be grouped around a particular topic, such as a location (if the user is researching vacations), object (if the user is researching something) or action (if the user is shopping for a particular product across different apps and websites). アクティビティに含まれる名詞と動詞の両方を表すことをお勧めします。It's a good idea to represent both the nouns and the verbs involved in an activity.

次の例では、 Schema.orgの標準に続くコンテンツメタデータの JSON は、"John が加藤さんと上田さんをプレイしています" というシナリオを表しています。In the following example, the content metadata JSON, following the standards of Schema.org, represents the scenario: "John played Angry Birds with Steve."

// John played angry birds with Steve.
  "@context": "http://schema.org",
  "@type": "PlayAction",
  "agent": {
    "@type": "Person",
    "name": "John"
  "object": {
    "@type": "MobileApplication",
    "name": "Angry Birds."
  "participant": {
    "@type": "Person",
    "name": "Steve"

キー APIKey APIs