🍋

Deep Link/Deep Linkingまわりのあれこれ

2021/03/16に公開

👉Goal

色々なところ(Google検索結果,Twitter,Facebook,note,Gmail,自社Webサービス,他アプリ)から、
スマホにアプリインストールされている場合は、アプリ起動したい。を実現する技術群を調べる。

👉Summary

Deep linkという技術カテゴリに色々な実現方法がある。ややこしや。

  • 各モバイルプラットフォーム(iOS,Android)が提供している
    • Universal Links
    • Android App Links
  • MBaaS(Firebase)が各モバイルプラットフォーム提供技術をより使いやすくして提供している
    • Firebase Dynamic Links
  • 各3rd Partyサービスが独自に提供している
    • Twitter Cards
    • Facebook App Links
  • 昔の方法...
    • Custom URL Scheme

👉Deep Link/Deep Linking

ディープリンク(Deep link)、ディープリンキング(Deep linking)は、あるウェブページから他のウェブサイトのトップページ以外の各コンテンツ(ウェブページ・画像等)に直接ハイパーリンクを張ること。
他サイトの画像などを自サイト内に直接参照(「表示」など)させること(→直リンク)とは異なり、単にリンクアンカーによりポインタを示すのみの行為を指す。

wikipedia - ディープリンク

👉Deep Linkの(関連)技術

末尾がにsがつくのか、つかないのかとか正式名称覚えるの大変。

# 技術 提供元 概要
1 Universal Links iOS httpのリンク経由でiOSアプリを起動できる
2 Android App Links Android httpのリンク経由でAndroidアプリを起動できる
3 Firebase Dynamic Links Firebase デフォhttps://{your_subdomain}.page.link?.. を作成。 カスタムドメイン設定可能
4 Firebase App Indexing Firebase Googleの検索結果からアプリを起動したい!ときに使える。
5 Smart App Banners iOS iOS SafariでのみAppleストア導線を表示できる。Android対応したい!Chrome対応したい!ときに不便😢
6 Custom URL Scheme iOS, Android myapp://{PATH} のように独自スキーム。重複可能やアプリインストール前提なので不便😢"古い"方法っぽい。LINEは非推奨
7 Cards Twitter ツイートから直でアプリに遷移できる。Twitter以外のリンクも飛ばしたいときに不便😢
8 App Links Facebook Facebookの投稿から直でアプリに遷移できる。Facebook以外のリンクも飛ばしたいときに不便😢

👉 Webサーバーでの対応

Supporting Associated Domains | Apple Developer Documentation

https://<fully qualified domain>/apple-app-site-association
https://<fully qualified domain>/.well-known/apple-app-site-association

のように、JSONファイルをサーブすると、インストール時やアップデート時にHTTP Requestがあり、Responseを端末内で保持する模様。

Ref: iOSアプリのユニバーサルリンクの仕組み - lasciva blog

Android アプリリンクを検証する  |  Android デベロッパー  |  Android Developers

https://domain.name/.well-known/assetlinks.json

のようにJSONファイルをおくことで、アプリとウェブサイト URL の両方のオーナーであることを証明する必要がある模様。

参考サービス

具体的なJSONの中身の参考。

iOS: Universal Links Android: App Links
Facebook https://www.facebook.com/.well-known/apple-app-site-association https://www.facebook.com/.well-known/apple-app-site-association
Cookpad https://cookpad.com/.well-known/apple-app-site-association https://cookpad.com/.well-known/assetlinks.json
mercari https://www.mercari.com/apple-app-site-association https://www.mercari.com//.well-known/assetlinks.json

Discussion