사용자 활동 모범 사례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. 또는 다른 개발 플랫폼에서 작업을 구현 하기 위해 프로젝트 로마의 사용자 작업 섹션 을 참조 하세요.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

  • 관련 사용자 동작 그룹에 대 한 단일 작업을 기록 합니다.Record a single activity for a group of related user actions. 이는 특히 음악 재생 목록 또는 TV 쇼와 관련이 있습니다. 단일 작업을 일정 한 간격으로 업데이트 하 여 사용자의 진행 상황을 반영할 수 있습니다.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. 이 경우 여러 며칠 또는 몇 주 동안의 참여 기간을 나타내는 여러 기록 항목이 포함 된 단일 사용자 활동이 만들어집니다.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. 응용 프로그램을 사용 하 여 상태를 유지 하지 않는 간단한 일회성 작업을 완료 하는 경우에는 사용자 작업을 만들 필요가 없을 것입니다.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.

  • 문서 기반 앱 -사용 기간을 반영 하는 하나 이상의 기록 항목을 사용 하 여 문서 마다 하나의 활동을 만듭니다.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.
  • 게임 -각 게임 저장 또는 세계에 대해 하나의 활동을 만듭니다.Games — Create one Activity for each game save or world. 게임에서 수준 시퀀스를 하나만 지 원하는 경우에는 시간에 따라 동일한 활동을 다시 게시할 수 있지만, 최신 진행 상황이 나 성과를 표시 하도록 콘텐츠 데이터를 업데이트 하려고 할 수 있습니다.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.
  • Lob ( 기간 업무) 앱 -간단한 작업 또는 워크플로를 관리 하기 위한 많은 앱이 있습니다.Line-of-business apps — Many apps exist for managing simple tasks or workflows. 앱을 통해 액세스 하는 각 개별 워크플로에 대해 활동을 하나씩 만듭니다. 예를 들어 경비 보고서는 각각 별도의 활동 이므로 사용자가 활동을 클릭 하 여 특정 보고서가 승인 되었는지 확인할 수 있습니다.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).
  • 미디어 재생 앱 -콘텐츠의 논리적 그룹화 (예: 재생 목록, 프로그램 또는 독립 실행형 콘텐츠) 당 하나의 작업을 만듭니다.Media playback apps — Create one Activity per logical grouping of content (such as a playlist, program, or standalone content). 앱 개발자를 위한 기본 질문은 각 콘텐츠 (TV 에피소드, 노래)가 독립 실행형 콘텐츠 또는 컬렉션의 일부분으로 계산 되는지 여부입니다.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. 일반적으로 사용자가 컬렉션 또는 순차 콘텐츠를 재생 하도록 opts 하는 경우 전체 컬렉션은 활동입니다.As a general rule, if the user opts to play a collection or sequential content, the collection as a whole is the activity. 단일 콘텐츠를 재생 하도록 선택 하는 경우 한 콘텐츠는 활동입니다.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. 단일 앨범이 나 임의의 순서로 재생 되는 컬렉션 같은 짧은 컬렉션의 경우 사용자의 현재 위치를 반영 하도록 활동을 업데이트할 필요가 없습니다.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.
    • 음악: 스마트 재생 목록 -임의의 순서로 음악을 재생 하는 응용 프로그램은 해당 재생 목록에 대 한 단일 작업을 기록 해야 합니다.Music: smart playlists — Applications which play music in a random order should record a single Activity for that playlist. 사용자가 재생 목록을 두 번째로 재생 하면 동일한 작업에 대 한 추가 기록 레코드를 만들 수 있습니다.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.
    • Tv 시리즈 -현재 앱이 완료 된 후 다음 에피소드를 재생 하도록 앱을 구성한 경우 tv 시리즈에 대 한 단일 활동을 작성 해야 합니다.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.
    • 영화 -동영상은 단일 콘텐츠 이며 고유한 기록 레코드를 포함 해야 합니다.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, 시각적 데이터 및 콘텐츠 메타 데이터의 세 가지 구성 요소로 구성 됩니다.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. 그러면 위치 (사용자가 휴가를 연구 하는 경우), 개체 (사용자가 항목을 조사 하는 경우) 또는 작업 (사용자가 다른 앱 및 웹 사이트에서 특정 제품을 구입 하는 경우)과 같은 특정 토픽 주위에 활동을 그룹화 할 수 있습니다.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은 Steve로 화난를 재생 했습니다."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