앱 작업을 통해 사용자는 Google 어시스턴트에 요청하거나 어시스턴트가 추천하는 Android 바로가기를 사용하여 Android 앱에서 기능을 실행할 수 있습니다. 다음은 앱 작업으로 Android 앱을 확장하는 기본 단계입니다.
- 트리거할 인앱 기능 및 이와 일치하는 내장 인텐트(BII)를 식별합니다.
- BII의 처리 세부정보를 제공합니다.
- 앱 작업의 바로가기를 어시스턴트로 푸시합니다.
- 테스트 기기에서 앱 작업을 미리 봅니다.
- 앱의 테스트 버전을 만듭니다.
- 앱 작업 검토 및 배포를 요청합니다.
원하는 경우 어시스턴트에서 사용자에게 추천할 수 있도록 어시스턴트에 제공할 동적 바로가기를 정의할 수 있습니다. 앱 작업 Codelab에 따라 샘플 앱을 사용하여 앱 작업을 만듭니다.
요구사항
앱 작업 개발을 시작하려면 개발자와 앱이 다음 요구사항을 충족하는지 확인합니다.
- Google Play Console에 액세스할 수 있는 Google 계정이 있어야 합니다.
- 앱 작업은 Google Play 스토어에 게시된 앱에서만 사용할 수 있으므로 앱이 Google Play 스토어에 게시되어 있어야 합니다. 또한 앱 작업이 관리 Google Play에서 지원되지 않으므로 앱은 직장 프로필 용도여서는 안 됩니다.
- 앱 작업을 테스트하려면 실제 기기 또는 가상 기기가 필요합니다.
- Google 어시스턴트 플러그인에서 지원하는 호환되는 최신 버전의 Android 스튜디오를 설치합니다.
- Android 스튜디오, 테스트 기기의 Google 앱, Google Play Console에 로그인할 때 동일한 Google 계정을 사용해야 합니다.
- 테스트 기기에서 어시스턴트를 설정하고 홈 버튼을 길게 터치하여 테스트해야 합니다.
내장 인텐트와 앱 기능 일치
사용자가 음성 요청으로 이동하려는 Android 앱의 기능을 식별하고 내장 인텐트 참조를 검토하여 사용 사례에 적합한 BII를 찾습니다. BII는 사용자가 실행하려는 작업에 관한 사용자 쿼리를 모델링하므로 앱의 주요 기능 및 사용자 플로우와 일치하는 BII를 찾습니다.
거의 모든 Android 앱에서 사용할 수 있는 일반 BII가 있습니다. actions.intent.GET_THING
BII를 사용하여 인앱 검색을 어시스턴트로 확장하거나 actions.intent.OPEN_APP_FEATURE
BII를 구현하여 사용자가 특정 앱 기능을 음성으로 실행할 수 있도록 하는 것을 예로 들 수 있습니다.
actions.intent.GET_THING
BII를 구현해야 합니다.
카테고리별 사용 사례를 지원하는 BII도 있습니다. 예를 들어 운동 앱은 actions.intent.START_EXERCISE
BII를 사용할 수 있습니다.
우수한 사용자 환경을 보장하고 발생할 수 있는 승인 지연을 방지하려면 개발자가 구현하는 각 BII가 인앱 기능과 관련이 있어야 합니다.
앱 작업은 어시스턴트 앱에서 Android 인텐트를 시작하여 사용자를 앱의 특정 콘텐츠로 바로 안내하는 방식으로 작동합니다. 이러한 인텐트는 targetClass
및 targetPackage
필드를 지정하여 활동을 명시적으로 실행하도록 정의할 수 있습니다. 앱에서 이미 Android 딥 링크 URL을 구현한 경우 처리를 위해 딥 링크를 사용하도록 인텐트를 구성할 수 있습니다. 자세한 내용은 활동 딥 링크 테스트 섹션을 참고하세요.
내장 인텐트의 처리 세부정보 제공
앱 작업 빌드의 대부분은 선택한 BII와 이에 상응하는 처리를 지정하는 Android 앱의 shortcuts.xml
리소스 파일에서 기능을 선언하는 것입니다. BII는 작업에 관한 사용자 쿼리를 모델링하며 처리 인텐트는 어시스턴트에 작업 실행 방법에 관한 정보를 제공합니다.
shortcuts.xml
파일에서 BII는 <capability>
요소로 표시되고 각 처리는 <intent>
요소로 표시됩니다.
<shortcuts>
<capability android:name="actions.intent.START_EXERCISE">
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.example.app"
android:targetClass="com.example.app.browse">
<parameter
android:name="exercise.name"
android:key="exercise_name">
</parameter>
</intent>
</capability>
대부분의 BII의 경우 schema.org 항목을 기반으로 사용자 쿼리에서 인텐트 매개변수를 추출하게 됩니다. 그러면 앱에서 이러한 BII 매개변수를 사용하여 사용자를 선택한 기능으로 안내합니다. 예를 들어 위의 코드는 exercise.name
BII 매개변수를 exercise_name
Android intent
매개변수에 매핑합니다.
딥 링크를 사용하여 작업을 처리하는 경우 urlTemplate
필드를 사용하여 어시스턴트가 생성하는 딥 링크 URL을 정의합니다.
<shortcuts>
<capability android:name="actions.intent.START_EXERCISE">
<intent android:action="android.intent.action.VIEW">
<url-template android:value="myexerciseapp://start{?exercise_name}" />
<parameter android:name="exercise.name"
android:key="exercise_name"
android:mimeType="text/*">
</parameter>
</intent>
</capability>
</shortcuts>
앱 작업을 shortcuts.xml
파일에 추가하는 방법에 관한 자세한 내용은 shortcuts.xml
만들기를 참고하세요. 이 페이지에서는 앱에서 예상하는 매개변수 값을 지정하는 방법도 설명합니다.
GET_THING 내장 인텐트 구현
앱에 검색 기능이 있다면 이 기능에 actions.intent.GET_THING
BII를 구현해야 합니다. 그러면 어시스턴트는 사용자가 "Hey Google, Example App에서 Example Thing 검색해 줘"와 같은 쿼리를 실행할 때 앱의 인앱 결과 검색 기능으로 사용자를 안내할 수 있습니다.
shortcuts.xml
파일에서 다른 BII를 구현할 때와 마찬가지로 actions.intent.GET_THING
BII의 <capability>
를 구현합니다. 사용자 쿼리를 앱의 검색 함수로 전달하는 처리를 하나 이상 제공하는 한 GET_THING
에 여러 처리를 사용할 수 있습니다.
다음은 shortcuts.xml
에 actions.intent.GET_THING
BII를 추가하는 예입니다.
<capability android:name="actions.intent.GET_THING">
<intent
android:targetPackage="com.example.myapp"
android:targetClass="com.example.myapp.MySearchActivity">
<parameter android:name="thing.name" android:key="query" />
</intent>
</capability>
검색 Activity
에서 intent
의 추가 데이터에서 검색어를 추출하여 앱의 검색 기능에 전달합니다. 위 코드에서 query
키로 전달된 검색어는 "thing.name"
BII 매개변수에 매핑됩니다. 그런 다음 쿼리를 사용하여 검색을 실행하고 사용자 인터페이스에 결과를 표시합니다.
선택사항: 어시스턴트에 앱 작업 바로가기 푸시
개발자가 작업의 기능을 정의하고 나면 사용자는 "Hey Google, Example App에서 피자 주문해 줘"와 같이 말하여 작업을 실행할 수 있습니다. 어시스턴트는 적절한 때에 작업에 관한 Android 바로가기를 사용자에게 추천할 수 있으므로 사용자가 작업을 쉽게 찾아 재생할 수 있습니다. 어시스턴트는 동적 바로가기와 정적 바로가기를 모두 추천할 수 있습니다.
어시스턴트에 동적 바로가기를 푸시하려면 Google 바로가기 통합 라이브러리를 사용하세요. 이 Jetpack 라이브러리를 사용하면 어시스턴트가 바로가기를 수집하고 적절한 시점에 사용자에게 추천할 수 있습니다.
자세한 내용은 어시스턴트에 동적 바로가기 푸시를 참고하세요.
앱 작업 미리보기
개발 및 테스트 중에 Android 스튜디오용 Google 어시스턴트 플러그인을 사용하여 앱 작업이 앱에서 작동하는지 테스트합니다. 플러그인은 Google 계정용 어시스턴트의 앱 작업 미리보기를 만듭니다. 테스트 도구를 사용하면 사용자에게서 받을 것으로 예상되는 입력 매개변수를 BII에 제공하여 실제 테스트 기기나 에뮬레이터에서 처리를 테스트할 수 있습니다.
앱 작업을 미리 보는 동안 기기에서 음성으로 쿼리를 트리거할 수 있습니다. 이 기능은 앱 작업과 관련된 BII 참조에 나열된 쿼리에만 사용할 수 있습니다. 음성 트리거는 일반 테스트가 아닌 데모 목적으로만 사용하세요.
앱을 제출하여 검토받기 전에 Google Play Console용 개발자 도구를 사용하여 초안 모드로 앱을 테스트하세요. Google Play Console을 사용하여 앱 초안을 배포하는 방법에 관한 자세한 내용은 버전 준비 및 출시를 참고하세요.
테스트 버전 만들기
추가 테스터로 앱 작업을 테스트할 준비가 되면 앱의 내부 또는 비공개 테스트 버전을 만듭니다. 기본적으로 내부 및 비공개 버전 테스터는 이미 검토 및 승인을 받은 앱 작업에 액세스할 수 있습니다.
승인받지 않은 작업을 비롯하여 모든 앱 작업에 테스트 액세스 권한을 부여하려면 테스터에게 앱 작업 개발 프로그램 Google 그룹에 참여하도록 안내합니다. 이 그룹의 구성원은 앱 작업 테스트 도구를 사용하여 미리보기를 만들지 않고도 비공개 및 내부 테스트 버전의 모든 앱 작업에 액세스할 수 있습니다. 그룹에 참여한 후 액세스 권한을 얻기까지는 최대 3시간이 걸릴 수 있습니다.
앱 작업 검토 및 배포 요청
앱 작업은 검토 및 승인이 완료될 때까지 게시된 앱 또는 공개 테스트 버전의 사용자에게 제공되지 않습니다. 앱 작업 검토는 Google Play의 Android 앱 검토 및 배포 상태에 영향을 주지 않습니다. 앱 제출이 승인되어 Play 스토어에 게시되더라도 shortcuts.xml
은 여전히 Google에서 검토 중일 수 있습니다. 이 검토도 승인되어야 앱 작업이 최종 사용자에게 작동합니다.
앱을 배포하면 앱 작업이 활성 상태로 유지됩니다. 하지만 재배포 버전은 Google의 검토 대상입니다. 새 버전이 제대로 작동하지 않거나 정책을 위반하는 경우 Google은 앱과 관련해 앱 작업을 비활성화할 권리를 보유합니다.
앱 작업을 제출하여 검토받으려면 다음 단계를 따릅니다.
다음과 같이 Google Play Console에서 앱 작업 서비스 약관에 동의합니다(고급 설정 > 앱 작업).
평소와 같이 게시를 위해 Google Play Console에
shortcuts.xml
가 포함된 앱을 업로드합니다.Play Console에 앱을 업로드하면 앱 작업 검토 상태에 관한 자세한 정보가 담긴 이메일이 Play Console 계정의 이메일로 전송됩니다. 앱 작업 검토 상태에 관해 궁금한 점이 있으면 어시스턴트 개발자 지원팀에 문의할 수도 있습니다. 문의 양식에서 앱 패키지 ID를 입력하고 무엇을 도와드릴까요? 선택 상자에서 앱 작업 검토를 선택합니다.
선택사항: 활동 딥 링크 테스트
딥 링크를 사용하여 앱 작업으로 Activity
를 실행하려면 Activity
가 딥 링크 URL로 설정되어 있고 Android 앱 매니페스트에 상응하는 인텐트 필터가 있어야 합니다.
활동에 액세스할 수 있고 딥 링크를 사용하는 앱 작업을 통해 활동을 트리거할 수 있는지 테스트하려면 다음 adb
명령어를 실행합니다.
$ adb shell am start -a android.intent.action.VIEW -d "AppLinksURL"
예를 들면 다음과 같습니다.
$ adb shell am start -a android.intent.action.VIEW -d "https://www.example.com/deeplink"
활동이 adb
명령어로 올바르게 실행되지 않으면 다음을 확인합니다.
- Google 어시스턴트에서 인텐트를 사용하여 활동을 실행할 수 있도록 앱 매니페스트 파일에서 활동이
android:exported=true
로 되어 있는지 확인합니다. - 앱 링크 URL을 사용하는 경우 Android App Links 처리의 모든 단계를 따릅니다.
앱 작업 정책
앱 작업은 이를 트리거하는 사용자가 의도한 환경을 이용할 수 있도록 특정 정책을 준수해야 합니다. 최고의 사용자 환경을 제공하고 Play 스토어 검토 지연 또는 거부를 방지하려면 앱을 제출하기 전에 이 정책을 검토하세요.
사용자가 의도한 콘텐츠로 사용자 안내하기
앱 작업 내장 인텐트 (BII) 또는 매개변수는 사용자가 의도한 관련 작업으로만 사용자를 안내해야 합니다. 여기에는 인앱 콘텐츠, 웹사이트 콘텐츠, 슬라이스 또는 위젯에 표시된 정보가 포함될 수 있습니다(단, 환경이 사용자가 의도한 환경인 경우).
예를 들어
START_EXERCISE
BII를 구현하면 사용자가 달리기나 수영과 같은 특정 유형의 운동을 시작할 수 있습니다. 이 정책의 유일한 예외는OPEN_APP_FEATURE
BII가 사용자를 앱의 홈 화면으로 안내하는 경우입니다.관련 앱 작업 BII 구현하기
구현된 BII는 앱의 콘텐츠 및 기능과 직접 관련이 있어야 합니다.
예를 들어 앱이 커뮤니케이션 Play 스토어 카테고리에 있는 경우 건강 및 피트니스 카테고리의 앱에 권장되는
START_EXERCISE
BII를 구현하지 마세요.관련 맞춤 인텐트 구현
맞춤 인텐트에 대해 정의된 쿼리는 앱의 콘텐츠 및 기능과 관련이 있습니다. 이 정책을 위반할 수 있는 예로는 대중교통 Play 스토어 카테고리의 앱에 연결된 검색어 패턴 'Show me burrito recipes'를 사용하여 인텐트
custom.action.intent.GET_RECIPE
를 만드는 것이 있습니다.