ユーザーがデバイス上でリンクをたどる目的は、見たいコンテンツにたどり着くことです。 開発者は 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 は、ユーザーが地図リンクをタップしたときに表示される確認ダイアログを示すものです。このダイアログは、リンクを Google マップで開くのか Chrome で開くのかをユーザーに尋ねています。
ウェブリンク
ウェブリンクは、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 アプリリンク
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" /> <!-- Do not include other schemes. --> <data android:scheme="http" /> <data android:scheme="https" /> <data android:host="myownpersonaldomain.com" /> </intent-filter>
Android アプリリンクには、次のようなメリットがあります。
- 安全で具体的: Android アプリリンクでは所有するウェブサイト ドメインにリンクする HTTP URL を使用するため、他のアプリはリンクを使用できません。Android アプリリンクの要件の 1 つは、Google が指定するウェブサイトの関連付け方法のいずれかを使用してドメインの所有権を確認することです。
- シームレスなユーザー エクスペリエンス: Android アプリリンクは、ウェブサイトとアプリ内の同じコンテンツに対して単一の HTTP URL を使用するため、アプリをインストールしていないユーザーは、アプリではなく、ウェブサイトにアクセスするだけです。404 エラーもエラーもありません。
- Android Instant Apps のサポート: Android Instant Apps を使用すると、ユーザーは Android アプリをインストールせずに実行できます。Instant Apps のサポートを Android アプリに追加するには、Android アプリリンクを設定し、g.co/InstantApps にアクセスします。
- Google 検索からユーザーを引き付ける: ユーザーは、モバイル ブラウザ、Google 検索アプリ、Android の画面検索、Google アシスタントで Google の URL をクリックして、アプリの特定のコンテンツを直接開きます。
Android アプリのリンクの追加
Android アプリリンクを作成する一般的な手順は次のとおりです。
- アプリの特定のコンテンツへのディープリンクを作成する: アプリ マニフェストで、ウェブサイト URI に対するインテント フィルタを作成し、インテントからのデータを使用してアプリ内の適切なコンテンツにユーザーを誘導するようにアプリを構成します。詳しくは、アプリ コンテンツへのディープリンクの作成をご覧ください。
- ディープリンクの検証を追加する: アプリリンクの検証をリクエストするようにアプリを構成します。次に、ウェブサイトでデジタル アセットリンク JSON ファイルを公開して、Google Search Console で所有権を確認します。詳しくは、アプリリンクの検証をご覧ください。
上記のリンク先ドキュメントの代わりとして、Android Studio のツールである Android アプリリンク アシスタントは、Android アプリリンクの作成に必要な各ステップをガイドします。
詳しくは、次のリソースをご覧ください。
Android アプリリンクを管理、検証する
Google Play Console でディープリンクを管理、検証できます。アプリが正常にアップロードされると、ダッシュボード([成長] > [ディープリンク] にあります)にディープリンクの概要と構成エラーが表示されます。
ダッシュボードには次のセクションがあります。
- ディープリンク設定全体の主なポイント
- マニフェスト ファイルで宣言されているすべてのドメイン
- パスでグループ化されたウェブリンク
- カスタム スキームを含むリンク
ダッシュボードの詳細については、こちらのガイドをご覧ください。