Android アプリリンクの処理

ディープリンクはコンテンツ URI を処理します。ウェブリンクは HTTP スキームと HTTPS スキームを処理します。Android アプリリンクは autoVerify 属性を処理します。
図 1. ディープリンク、ウェブリンク、Android アプリリンクの機能

ユーザーがデバイスでリンクをたどる目的は、見たいコンテンツにたどり着くこと。デベロッパーは Android アプリリンクを設定して、アプリ選択ダイアログ(確認ダイアログとも呼ばれます)をバイパスして、アプリ内でリンクの特定のコンテンツに直接ユーザーを誘導できます。Android アプリリンクは HTTP URL とウェブサイトとの関連付けを利用するため、アプリをインストールしていないユーザーは、サイトのコンテンツに直接移動します。

Android アプリリンクを実装する前に、Android アプリで作成できるさまざまな種類のリンク(ディープリンク、ウェブリンク、Android アプリリンク)を理解することが重要です。図 1 に、これらの種類のリンクの関係を示します。以降のセクションでは、各種類のリンクについて詳しく説明します。

ディープリンクは、ユーザーをアプリの特定の部分に直接誘導する、あらゆるスキームの URI です。ディープリンクを作成するには、アプリ内の適切なアクティビティにユーザーを誘導するインテント フィルタを追加します。次のコード スニペットをご覧ください。

<activity
    android:name=".MyMapActivity"
    android:exported="true"
    ...>
    <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="geo" />
    </intent-filter>
</activity>

ユーザーがディープリンクをクリックすると、確認ダイアログが表示されることがあります。このダイアログでは、指定されたディープリンクを処理できる複数のアプリ(自分のアプリを含む)の中から 1 つをユーザーが選択できます。図 2 は、ユーザーが地図のリンクをクリックすると、マップと Chrome のどちらでリンクを開くかを確認するダイアログを示しています。

図 2. 確認ダイアログ

ウェブリンクは、HTTP または HTTPS スキームを使用するディープリンクです。Android 12 以降では、ウェブリンク(Android アプリリンクではない)をクリックすると、常にウェブブラウザにコンテンツが表示されます。以前のバージョンの Android を搭載したデバイスでは、自分のアプリ、またはユーザーのデバイスにインストールされている他のアプリもウェブリンクを処理できる場合、ユーザーはブラウザに直接移動しない可能性があります。代わりに、図 2 のような確認ダイアログが表示されます。

次のコード スニペットは、ウェブリンク フィルタの例を示しています。

<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" />
    <data android:host="myownpersonaldomain.com" />
</intent-filter>

Android 6.0(API レベル 23)以降で利用可能な Android アプリリンクは、HTTP および HTTPS スキームを使用し、autoVerify 属性を含むウェブリンクです。この属性を使用すると、アプリは特定のタイプのリンクのデフォルト ハンドラとしてアプリ自体を指定できます。アプリがインストールされていれば、ユーザーが Android アプリリンクをクリックするとすぐに起動し、確認ダイアログは表示されません。

ユーザーがアプリをデフォルト ハンドラにしたくない場合、ユーザーはアプリの設定からこの動作をオーバーライドできます。

次のコード スニペットは、Android アプリリンクのフィルタの例を示しています。

<intent-filter android:autoVerify="true">
    <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" />
    <data android:scheme="https" />

    <data android:host="myownpersonaldomain.com" />
</intent-filter>

Android アプリリンクには、次のようなメリットがあります。

  • 安全で具体的: Android アプリリンクは、所有するウェブサイト ドメインにリンクする HTTP URL を使用するため、他のアプリはそのリンクを使用できません。Android アプリリンクの要件の一つは、Google のウェブサイトの関連付け方法のいずれかを通じてドメインの所有権を証明することです。
  • シームレスなユーザー エクスペリエンス: Android アプリリンクでは、ウェブサイトとアプリの同じコンテンツに対して 1 つの HTTP URL を使用するため、アプリをインストールしていないユーザーは、アプリではなくウェブサイトにアクセスするだけで、404 やエラーは発生しません。
  • Android Instant Apps のサポート: Android Instant Apps を使用すると、ユーザーは Android アプリをインストールせずに実行できます。Instant App のサポートを Android アプリに追加するには、Android アプリリンクをセットアップし、g.co/InstantApps にアクセスします。
  • Google 検索からユーザーにアプローチする: ユーザーは、モバイル ブラウザ、Google 検索アプリ、Android の画面検索、または Google アシスタントで Google の URL をクリックすることで、アプリ内の特定のコンテンツを直接開きます。

Android アプリリンクを作成する一般的な手順は次のとおりです。

  1. アプリの特定のコンテンツへのディープリンクを作成する: アプリ マニフェストで、ウェブサイト URI のインテント フィルタを作成し、インテントのデータを使用してアプリ内の適切なコンテンツにユーザーを誘導するようにアプリを構成します。詳しくは、アプリ コンテンツへのディープリンクを作成するをご覧ください。
  2. ディープリンクの検証を追加する: アプリリンクの検証をリクエストするようにアプリを構成します。次に、ウェブサイトでデジタル アセット リンクの JSON ファイルを公開し、Google Search Console で所有権を確認します。詳しくは、アプリリンクの検証をご覧ください。

上記のリンク先のドキュメントの代わりに、Android アプリリンクの作成に必要な各手順を説明する Android Studio のツールである Android アプリリンク アシスタントを使用できます。

詳しくは、次のリソースをご覧ください。

Android アプリリンクを管理、確認する

ディープリンクの管理と検証は Google Play Console で行えます。アプリが正常にアップロードされると、ダッシュボード([成長] > [ディープリンク] の下)にディープリンクと構成エラーの概要が表示されます。

図 3. ディープリンクの Google Play Console ダッシュボード

ダッシュボードには次のセクションがあります。

  • ディープリンク設定の全体的なハイライト
  • マニフェスト ファイルで宣言されているすべてのドメイン
  • パスでグループ化されたウェブリンク
  • カスタム スキームを含むリンク
各セクションには、ディープリンクのステータスと、エラーが発生した場合の修正方法が表示されます。

ダッシュボードの詳細については、こちらのガイドをご覧ください。