Instant App 用のアプリリンクを作成する

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 検索でアプリを検索すると、Google 検索には「インスタント」バッジ付きの URL が表示されます。

すでにガイドに従ってアプリ コンテンツへのディープリンクの作成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>
    

    2 番目の <data> 要素には host を含める必要はありません。各 <intent-filter> 要素内では、各 <data> 属性のすべての組み合わせが有効と見なされます(そのため、このインテント フィルタは https://www.example.com を解決します)。

  • ウェブサイト ドメインごとに宣言できる 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 が、キーワードに対する上位の検索結果を反映していることを確認します。