App Actions を使用すると、アプリユーザーは Google アシスタントへのクエリで、Android アプリの既存の機能をトリガーできます。App Actions を使用して Android アプリを拡張する手順には、主に次の 5 つのステップがあります。
- トリガーするアプリ内機能を特定します。
- アプリ内機能と一致する組み込みインテント(BII)を見つけます。
- 組み込みインテントのフルフィルメントの詳細を指定します。
- テストデバイスで App Actions をプレビューします。
- App Actions の審査とデプロイをリクエストします。
サンプルアプリを使用して App Action を作成する場合は、App Actions を使用して Android アプリを Google アシスタントに拡張するの Codelab のとおりに行ってください。
要件
App Actions の開発を開始する前に、次の要件を満たす必要があります。
- Google Play Console にアクセスできる Google アカウントを用意します。
- App Actions は Google Play ストアに公開されているアプリでのみ使用できます。さらに、仕事用プロファイルでの使用を想定していないアプリであることを確認します(App Actions は managed Google Play でサポートされていないため)。
- App Actions をテストするための Android デバイスを用意します。推奨される OS バージョンは Android 8(API レベル 26)以上ですが、アクションは Android 5(API レベル 21)以上のデバイスでも動作します。
- 最新バージョンの Android Studio をインストールします。
- 同じ Google アカウントを使用して、Android Studio、テストデバイス上の Google アプリ、Google Play Console にログインします。
- アシスタントを設定したら、ホームボタンを長押しして、テストデバイスでアシスタントが機能しているかどうかをテストします。
アプリの機能を特定する
まず、Android アプリのアクティビティのうち、App Actions を介してアクセスするのに適したものを選択します。これらのアクティビティには、Android ディープリンクの URL を設定し、対応するインテント フィルタを Android アプリ マニフェストに記述する必要があります。App Actions は、アシスタントによって生成されたディープリンク URL を使用して、アプリ内の特定のコンテンツに直接ユーザーを誘導します。
アクティビティがアクセス可能かどうかや、App Actions を利用してトリガーできるかどうかをテストするには、次の 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
が指定されている。 - App Links URL を使用している場合は、Android App Links の処理のすべての手順に従います。
アプリの機能と一致する組み込みインテントを見つける
組み込みインテントのリファレンスを確認して、ユースケースに適した BII を見つけます。組み込みインテントは、ユーザーがアプリで実行したいタスクのユーザークエリをモデル化しているため、アプリの主要機能とユーザーフローに一致する BII を見つけます。たとえば、actions.intent.ORDER_MENU_ITEM
組み込みインテントは、財務管理アプリよりも料理注文アプリで使用される可能性が高くなります。アプリの機能に関連しない BII を実装しているアプリは、混乱を招くため、App Actions の審査で不合格になることがあります。
組み込みインテントのフルフィルメントの詳細を指定する
App Actions の作成作業の大部分は、アプリ用の actions.xml
ファイルを作成し、そこで選択した組み込みインテントとそれに対応するフルフィルメントを指定するという作業になります。BII がタスクのユーザークエリをモデル化していると、フルフィルメントがタスクの実行方法に関する情報をアシスタントに提供します。
actions.xml
ファイルでは、組み込みインテントは <action>
要素で、各フルフィルメントは <fulfillment>
要素で表されます。
<actions>
<action intentName="actions.intent.ORDER_MENU_ITEM">
<fulfillment urlTemplate="exampleapp://browse{?food}">
<parameter-mapping intentParameter="menuItem.name" urlParameter="food" />
</fulfillment>
</action>
<action intentName="actions.intent.GET_THING">
<fulfillment urlTemplate="exampleapp://search{?query}">
<parameter-mapping intentParameter="thing.name" urlParameter="query"/>
</fulfillment>
</action>
</actions>
ほとんどの組み込みインテントでは、schema.org エンティティに基づいてユーザークエリからインテント パラメータを抽出します。アプリは、そのインテント パラメータを使用して、目的の機能にユーザーを誘導します。たとえば、上記のコードは、「thing.name」インテント パラメータをディープリンク URL テンプレートの「query」URL パラメータにマッピングしています。
actions.xml
ファイルの作成に関する重要事項については、Actions.xml
を作成するをご覧ください。スキーマページでは、アプリが想定するパラメータ値(インベントリ)を指定する方法と、AndroidManifest.xml
ファイルを更新して actions.xml
リソースを参照する方法についても説明します。
App Actions をプレビューする
アプリのドラフト版をテストに使用できます。詳細については、公開の準備とリリースをご覧ください。審査のためにアプリを提出する前に、ドラフトモードでテストすることを強くおすすめします。
開発中とテスト時は、App Actions テストツールを使用して、App Actions がアプリで機能することを確認します。App Actions テストツールは、アシスタントの自分の Google アカウントに App Actions のプレビューを作成する Android Studio プラグインです。このテストツールを使用すると、ユーザーから受け取ることが想定される入力パラメータを BII に提供して、テストデバイスでフルフィルメントをテストできます。
App Actions をプレビューする際、デバイス自体から音声によるクエリをトリガーすることもできます。この機能は、App Actions の組み込みインテント リファレンスに記載されているクエリでのみ利用できます。音声トリガーは、通常のテストでは使用せず、デモ目的でのみ使用することをおすすめします。
。App Actions の審査とデプロイをリクエストする
App Actions は、アプリが審査を受け、承認されてから、ユーザーが使用できるようになります。App Actions の審査は、Android アプリの審査と Google Play でのデプロイ ステータスには影響しません。アプリの提出が承認されても、actions.xml
はまだ Google による審査中の可能性があります。
その後アプリをデプロイするとき、App Actions は有効なままになります。ただし、再デプロイしたバージョンは Google による審査の対象となります。新しいバージョンが正常に機能しない場合、またはポリシー違反が含まれている場合、Google は、アプリの App Actions を無効にする権限を有します。
審査のために App Actions を提出する手順は次のとおりです。
- App Actions のデプロイ要件を満たします。これらの要件は、アシスタント用にアプリを最適化し、ユーザーが App Actions をシームレスに使用できるようにするためのものです。
Google Play Console で Actions on Google 利用規約に同意します([価格設定と配布] > [同意])。
通常どおり、Google Play Console にアプリをアップロードします(
actions.xml
を含む)。アプリを Google Play Console にアップロードすると、Google が Google Play Console のメールで、App Actions の審査状況についての詳細を連絡します。