結論:App Linksはアプリmanifestのintent filterだけでは完成しません。Webサイト側の /.well-known/assetlinks.json とアプリ署名情報を使って、ドメイン所有の関連付けを検証します。

普通のWeb URLをアプリへつなぐ

Android Developersは、App LinksをWebサイトとアプリで同じURLを共有する仕組みとして説明しています。アプリがインストールされていない場合は、通常そのURLがWebサイトで開くため、custom schemeより自然なfallbackを作りやすい方式です。

assetlinks.jsonで所有関係を確認する

アプリ側のintent filterに android:autoVerify="true" を指定し、対象ドメインの /.well-known/assetlinks.json へDigital Asset Linksの情報を公開します。Androidはアプリの署名証明書とWeb側の宣言が一致するか確認します。

Android 12以降では検証の意味がさらに重要

Android公式資料では、Android 12以降で一般的なWeb Intentがアプリへ直接解決されるには、そのドメインについてアプリが承認・検証されていることが重要です。検証されていない場合はデフォルトブラウザへ解決されることがあります。

「以前は開いたのに最近ブラウザへ行く」というケースでは、OS更新だけでなくApp Linksの検証状態も確認します。

Dynamic App Links

Android 15以降では、Digital Asset Links側の設定を利用したDynamic App Linksも公式に案内されています。初期SEOサイトでは実装チュートリアルへ広げず、「Androidのリンク処理は今後も固定ではない」ことを示す更新ポイントとして扱います。

Deep Link / Intent URLとの違い

方式URL形式ドメイン検証
通常Deep Linkcustom schemeまたはWeb URL必須ではない
Android App LinksHTTP/HTTPSあり
Intent URLintent://...App Linksとは別

第三者サービスURLを変換するだけではApp Linksにならない

自分が管理していない x.comyoutube.com などのURLを intent:// へ書き換えても、それは自分のAndroid App Linksを設定したことにはなりません。App LinksはWebドメインと対象アプリを管理する側の設定です。

確認項目

  • manifestの対象host/pathが正しいか。
  • android:autoVerify が意図どおりか。
  • assetlinks.json が正しい場所からHTTPSで取得できるか。
  • 署名証明書のfingerprintが一致するか。
  • Android 12+で検証結果を確認したか。
  • アプリ未導入時のWebページが有効か。

確認した一次情報