アプリリンクについて

Android アプリリンクは、Android 6 以降の特別なディープリンク機能です。これにより、確認済みのウェブサイト URL から直接 Android アプリ内の対応コンテンツを開けるようになります。ユーザーがアプリの選択ダイアログからアプリを選択する必要はありません。これを実現するために、Android はウェブサイトでホストされている Digital Asset Links ステートメントを使用して、ウェブサイトとアプリ間の安全で検証済みの関連付けを確立します。関連付けが検証されると、Android はウェブサイトへのディープリンクをアプリに直接自動的にルーティングして処理できるようになります。

Android 15 以降では、動的アプリリンクが導入され、アプリリンクがさらに強力になります。新しい動的機能を使用すると、アプリの新しいバージョンをリリースすることなく、アプリのディープリンクの動作をより細かく管理しながら、その場で調整できます。

アプリリンクを使用する理由:

  • シームレスなユーザー エクスペリエンス - 検索結果、ウェブサイト、メッセージ、他のアプリから、アプリ内の特定のコンテンツにユーザーを直接誘導します。アプリリンクでは、ウェブサイトとアプリの同じコンテンツに単一の URL を使用するため、アプリをインストールしていないユーザーは、アプリではなくウェブサイトに移動します。404 などのエラーはありません。
  • セキュリティの強化 - アプリリンクではドメインの所有権の確認が必要なため、他のアプリがリンクを傍受することを防ぐことができます。
  • 動的構成(Android 15 以降) - アプリのディープリンクの動作をその場で更新し、バニティ URL、季節限定キャンペーン、ユーザー固有のリンクなどの柔軟性を高め、更新を迅速化します。
  • エンゲージメント - 検索結果、広告、ウェブページ、メッセージなどのリンクを通じてユーザーのエンゲージメントを高めることができます。

アプリリンクをサポートする方法

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

別の方法として、Android Studio の Android アプリリンク アシスタントを使用して、Android アプリリンクの作成と検証に必要な各ステップをガイドすることもできます。詳しくは、アプリリンク デベロッパー ツールをご覧ください。

  • Dynamic App Links - Google サービスがインストールされているデバイスで、Android 15(API レベル 35)以降。
  • アプリリンク - Android 6(API レベル 23)以降、Google サービスがインストールされているデバイス。
  • 通常の(ユーザー管理の)ディープリンク - すべてのデバイスのすべての Android バージョン。

アプリリンクの仕組み

アプリリンクは、独自のウェブサイトへのリンクの処理を完全に制御できる特別なディープリンクの方法です。他のディープリンク タイプで使用されているインテント ベースのシステムを基盤としていますが、ウェブサイトの Digital Asset Links ファイルを使用してリンクの確認手順を追加しています。

アプリリンクは、アプリデータと、ウェブサイトまたはドメインでホストする特別な assetlinks.json ファイルを使用して、アプリとウェブサイトの間に安全で信頼できる関連付けを作成します。assetlinks.json ファイルは、アプリの関連付けを確認するための Digital Asset Link ステートメントを宣言します。

概念フローは次のとおりです。

  1. アプリのマニフェストで、android:autoVerify="true を使用してインテント フィルタ内の URL を宣言し、ウェブサイトのホストを指定します。
  2. アプリがインストールされると、Android システムはウェブサーバー上の既知の場所から assetlinks.json ファイルを取得します。
  3. システムは、assetlinks.json ファイルが有効で、sha256_cert_fingerprints がアプリの署名証明書と一致することを確認します。
  4. ユーザーが一致するリンクをクリックすると、曖昧さ回避ダイアログが表示されることなく、システムによってユーザーがアプリに直接誘導されます。

アプリリンクは HTTP URL とウェブサイトの関連付けを利用するため、アプリをインストールしていないユーザーは、サイトのコンテンツに直接アクセスします。このように、アプリリンクは、ウェブ プロパティへのディープリンクをタップしたユーザーに、信頼性の高いシームレスなエクスペリエンスを提供します。

Android 15 以降では、動的アプリリンクが導入され、アプリリンクがさらに強力になります。動的アプリリンクを使用すると、アプリの新しいバージョンを公開することなく、サーバーサイドの assetlinks.json ファイルでディープリンク ルールを更新できます。動的アプリリンクは、ディープリンク ルールを絞り込むためのデジタル アセットリンク フィールドをサポートしています。Google サービスがインストールされている Android デバイスでは、ファイルが定期的に更新され、新しいディープリンク ルールが動的に適用されます。アプリの更新は不要です。

以前は、このファイルは主に基本的な検証に使用されていました。現在では、パス、クエリ パラメータ、フラグメント、除外を指定できる強力な構成ツールとなり、動的で堅牢なディープリンク ソリューションを提供しています。

  • 除外のサポート: アプリリンクの構成に一致する場合でも、アプリを開かないようにする URL の特定のパスまたはセクションを指定できます。
  • クエリ パラメータのサポート: 新しいクエリ パラメータ機能を使用すると、URL に存在する場合にアプリが開かないようにする特定のパラメータを定義できます。これにより、動的除外、A/B テスト、特定のユーザー セグメントに対するアプリリンクの段階的な有効化など、さまざまな可能性が広がります。
  • 動的更新: サーバーでホストされている assetlinks.json ファイル内でアプリが直接処理する URL パスを指定することで、アプリを更新することなくアプリリンクの構成を更新できます。

また、URL パス、フラグメント、クエリ パラメータのマッチングなど、アプリを開く URL をきめ細かく制御することもできます。また、一致したものを除外して、アプリを開けないようにすることもできます。詳しくは、動的ルールを設定するをご覧ください。

動的アプリリンクの概念フローは次のとおりです。

  1. アプリのマニフェストで、android:autoVerify="true を使用してインテント フィルタ内の URL を宣言し、ウェブサイトのホストを指定します。
  2. アプリがインストールされると、Android システムはウェブサーバー上の既知の場所から assetlinks.json ファイルを取得します。
  3. システムは、ファイルが有効で、sha256_cert_fingerprints がアプリの署名証明書と一致していることを検証します
  4. システムは、Digital Asset Links ステートメントの dynamic_app_deep_link_components フィールド内で定義したディープリンク ルールを解析し、マニフェストで宣言されたルールと統合します。
    1. ユーザーが一致するリンクをクリックすると、曖昧さ回避ダイアログが表示されることなく、システムによってユーザーがアプリに直接誘導されます。
  5. システムは assetlinks.json ファイルを定期的に再取得して最新のルールを取得するため、アプリをアップデートしなくてもリンクを更新できます。定期的な再取得は、Google サービスがインストールされている Android 15(API レベル 35)以降を搭載したデバイスでサポートされています。

サンプル ユースケース

  • 季節限定のマーケティング キャンペーン: 小売アプリで assetlinks.json ファイルに「/promo/summer-sale」のルールを追加して、ユーザーを特定のセール画面に誘導できます。セールが終了したら、ユーザーがアプリを更新しなくてもルールを削除できます。
  • パートナーのバニティ URL: インフルエンサーとパートナーシップを結んでいる場合は、「/partner/influencer-name」のようなカスタム URL を作成して、そのルールを追加できます。その後、パートナーシップの変更に応じて、この URL を動的に追跡、更新、削除できます。
  • URL パスの A/B テスト: デベロッパーは、特定の URL パスで新機能を公開し、assetlinks.json ファイルにそのルールを追加できます。これにより、ユーザーのサブセットで機能をテストし、アプリを完全にデプロイすることなくルーティングを変更できます。
  • 短期間のイベント: チケット販売アプリやイベントアプリで、特定のイベントの URL ルールを追加できます。イベントが終了したら、これらのルールをサーバーから削除できます。

アプリリンクの実装との互換性

Android 15 の動的アプリリンク拡張機能は、以前のバージョンの Android を搭載したデバイスのアプリリンクの既存の実装との完全な互換性を実現するように設計されています。アプリのバージョンが低い場合、動的構成や構成機能を使用できず、マニフェストで宣言されたルールにフォールバックします。以前のバージョンの Android を使用しているユーザーに対しては、アプリリンクは引き続きアプリを正しく開くか、ウェブに適切にフォールバックできます。ほとんどの場合、ユーザーベースの残りの部分のエクスペリエンスに影響を与えることなく、動的ルールを安全にデプロイできます。

動的アプリリンクのフィルタリング ルールを設定する際の考慮事項

Android 15 以降で動的アプリリンクで使用するインテント フィルタを設定する場合は、サーバーサイドの assetlinks.json ファイルで定義されたパスレベルのルーティング ルールで、マニフェスト ファイルのインテント フィルタ ルールで静的に設定したスコープを拡張することはできないことに注意してください。

そのため、マニフェストのインテント フィルタで可能な限り広範なスコープを設定し、サーバーサイドの assetlinks.json ルールでさらに絞り込むことをおすすめします。この理想的な構成により、マニフェストで設定された広範なスコープ内に収まる新しい App Link を動的に追加できるようになります。

アプリリンクの実装を計画する

アプリリンクをサポートするには、アプリでの実装と、assetlinks.json ファイルを設定するためのサーバーサイドの作業が必要です。一般的な準備と実装のタスクを以下に示します。詳細については、他のリソースへのリンクをご覧ください。

  • ディープリンクの計画 - 必要なディープリンク、使用する URL パターン、更新方法と更新のタイミング、アプリ内で各 URL が解決されるアクティビティまたはアクションの評価から始めます。
  • ダイナミック アプリリンクをサポート - 最新の Android デバイスのユーザーに可能な限り最高のユーザー エクスペリエンスを提供します。Android 15 以降のユーザー向けにダイナミック アプリリンクを活用しましょう。
  • 動的フィルタ ルールを計画する - ダイナミック アプリリンクを使用する場合は、アプリ マニフェストで静的に定義されたルールとサーバーサイドのルールがどのように連携するかを計画します。assetlinks.json ファイルのフィルタルールで、アプリ マニフェスト フィルタのスコープを拡大することはできません。マニフェスト フィルタで可能な限り広範なスコープを宣言し、必要に応じてサーバーサイド ルールでそれらのルールを絞り込むように計画する必要があります。詳細については、動的ルールを構成するをご覧ください。
  • リンクのインテント フィルタを作成してテストする - インテント フィルタでディープリンクを宣言し、URL パターン マッチングと受信インテント処理をテストします。動的アプリリンクをサポートするには、一部のきめ細かいパスをサーバーサイドの JSON ファイルに移動する必要がある場合があります。
  • 受信したアプリリンク インテントからデータを読み取る - 受信したディープリンク インテントを適切に処理し、適切なアクティビティに解決します。アプリリンクの実装は、通常のディープリンクと同じです。受信インテントからデータを読み取るをご覧ください。
  • ウェブサイトの関連付けと動的ルールを構成する - アプリリンクをサポートするには、ウェブサイトまたはドメインでホストされているサーバーサイド ファイルを構成する必要があります。Android デバイスはこのファイルを取得して、アプリのアプリリンクの実装を検証します。詳細
  • アプリリンクの検証をテストする - Android システムがディープリンクを自動的に検証できることを確認します。デバッグとエンドツーエンド テストを使用して、構成が安全であり、検証済みのすべてのアプリリンク パスで正しく機能していることを確認します。
  • Android Studio や Google Play Console など、アプリリンクの設定に使用できるツールについて説明します。詳細はこちらをご覧ください。