Android Instant App は、インストールなしで動作する小型版アプリです。ユーザーは、APK をインストールする代わりに、URL をタップするだけでアプリを起動できます。そのため、Instant App はすべて、Android アプリリンクを使用して宣言された URL を通じてアクセスできる必要があります。このページでは、Android Instant Apps 向けに Android アプリリンクを使用する方法について説明します。
アプリリンクの概要
まず、アプリリンクについて、あらかじめ理解しておくべきことをまとめます。
- ユーザーが URL リンクをタップしたときにアプリ内の特定の画面に直接ジャンプできるようにアプリ内アクティビティ用のインテント フィルタを作成する場合、これは「ディープリンク」と呼びます。別のアプリが同様の URL インテント フィルタを宣言していた場合、システムはユーザーに「どのアプリを開くのか」を尋ねることがあります。ディープリンクを作成する場合は、アプリ コンテンツ用のディープリンクを作成するをご覧ください。
- アプリの HTTP ディープリンクに対応する
assetlinks.json
ファイルをウェブサイト上に公開すると、アプリがその URL の真のオーナーであることを証明できます。これにより、ディープリンクが Android アプリリンクに変換されます。その結果、ユーザーがこの URL をタップすると、アプリがすぐに開きます。アプリリンクを作成する場合は、Android アプリリンクを検証するをご覧ください。
Android アプリリンクは、ウェブサイトに属していることが証明された HTTP ディープリンクです。これにより、ユーザーは、どのアプリで開くか選択する必要がなくなります。具体的な説明については、ディープリンクとアプリリンクの違いをご覧ください。
どちらの場合も、ユーザーはすでにアプリをインストールしている必要があります。ユーザーがウェブサイト内のいずれかのリンクをタップしたときに、対象アプリがインストールされていなかった場合(かつ、その URL インテントを処理できるアプリがほかになかった場合)、URL はウェブブラウザで開きます。そのため、Instant App を作成しておくと、この部分が解決されます。ユーザーは、アプリをインストールしていなくても、URL をタップするだけでアプリを開くことができます。
エンドユーザーが Google 検索で Instant App を検索した場合、検索結果には、「Instant」バッジの付いた URL が表示されます。
Instant App 用のアプリリンクが通常と異なる点
アプリ コンテンツ用のディープリンクを作成すると Android アプリリンクを検証するのガイドに沿って作業を完了している場合、Instant App 向けのアプリリンクを使用するうえで必要な作業はほとんど完了しています。Instant App 向けのアプリリンクを使用するには、以下のように、いくつかルールが追加されます。
Instant App 向けのアプリリンクとして使用するインテント フィルタはすべて、HTTP と HTTPS の両方をサポートする必要があります。たとえば、次のようになります。
<intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="http" android:host="www.example.com" /> <data android:scheme="https" /> </intent-filter>
各
<intent-filter>
要素内では、各<data>
属性のすべての組み合わせが有効と見なされるため(そのため、このインテント フィルタはhttps://www.example.com
も解決します)、2 番目の<data>
要素内にhost
を含める必要はありません。ウェブサイト ドメインごとに宣言できる Instant App は 1 つだけに限られます(他方、インストール版アプリのアプリリンクを作成する際は、1 つのウェブサイトに対して複数のアプリを関連付けることができます)。
アプリリンク作成時のその他の注意事項
- Instant App 内の HTTP URL インテント フィルタはすべて、インストール版アプリにも組み込まれている必要があります。ユーザーがインストール版アプリをインストールした後で URL をタップしたときには、Instant App ではなく、必ずインストール版アプリが開くようにしてください。
- Instant App とインストール版アプリの両方で、少なくとも 1 つのインテント フィルタ内で
autoVerify="true"
を設定する必要があります(自動検証を有効にする方法をご覧ください)。 - アプリリンクがサポートしているドメイン(およびサブドメイン)ごとに、HTTPS プロトコルを使用して
assetlinks.json
を 1 つ公開する必要があります(複数のホスト用のアプリリンクをサポートする方法をご覧ください)。 assetlinks.json
ファイルは、有効な JSON であること、リダイレクトなしで提供されること、bot がアクセス可能であることが必要です(robots.txt
が/.well-known/assetlinks.json
のクロールを許可している必要があります)。- インテント フィルタの host 属性でワイルドカードを使用することはおすすめしません(複数のサブドメインからのアプリリンクをサポートする方法をご覧ください)。
- カスタムホスト / スキーム URL は、個別のインテント フィルタを使用して宣言する必要があります。
- アプリリンク URL が、主要な用語の検索結果の上位を占めていることを確認します。