AndroidAndroid Deep linkingApp Linksディープリンキングユニバーサルリンク業界洞察繰延深いつなぐ

ユニバーサルリンク、URIスキーム、アプリリンク、ディープリンク:何が違う?

By 10月 30, 2017 No Comments

この数年間で、ディープリンク、ユニバーサルリンク、URI/URLスキーム、アプリリンクはどれも、モバイルアプリ内部のコンテンツにリンクする世界を一変させました。これによって多くのアプリ開発者が、どの用語を採用すべきか、各用語に関する業界のベストプラクティスについて混乱してしまう結果となったのです。

また、モバイルのディープリンキングに関する状況は今も急激に進化しています。1年前はうまくいったことが現在も可能だとしても、最高のアプローチであるとは限りません。古くなった記事や間違った情報による年月を経た今、誤解を解き、モバイルのディープリンキングの世界に新たな解釈を行う時がやってきました。

ディープリンキングとは?

まず、中心的な用語であるディープリンキングですが、これはは単に概念です。事実、私たちはディープリンクを毎日使っています。あなたもその1つをクリックしてこのブログ投稿に辿り着いたのではないでしょうか。この用語は単に、1つのコンテンツに直接進むリンクという意味です。http://example.com/my-awesome-content-pageといったURLリンクをクリックしても、 http://example.com/をまた見つけ出さなければならないということはありません。言い換えれば、ウェブ上の大半のリンクは実際はディープリンクでありながらそうは呼ばれていないということになります。私たちにとってこれらは単なるリンクです。

モバイルアプリでのディープリンキングははるかに複雑ですが、モバイルのディープリンクはアプリユーザーにスムーズなコンテンツ体験を届けるうえでベストな方法であることには変わりありません。ユニバーサルリンク、URIスキーム、アプリリンクはそれぞれモバイルのディープリンクを動作させる技術標準で、ユーザーをアプリ内のコンテンツに直接移動させることができます。モバイルアプリ内のページを友達と共有したい場合は、ディープリンクがその友達を目的のページに移動させます。ディープリンクがなければ、その友達は自力で目的のページを見つけようとしなければならず、結局(アプリがインストールされている場合でも)アプリストアやモバイルウェブに辿り着くことになります。

モバイルのディープリンクを実装するプロセスは年々進化しており、Android、iOSともに独自のソリューションを提供してきました。このため、アプリ開発コミュニティ内で混乱が起こりました。ベテランのエンジニアでさえ突然の危機的状況で自分たちのリンクを更新しなければならなったり、若いエンジニアの間でも自分たちのアプリにディープリンクを実装するうえでどの方法がベストかについて混乱がありました。

下の表は、現在使用されているさまざまなモバイルのディープリンク基準の詳細です。:

Mobile Deep Link Standards

注:iOSとAndroid によるモバイル市場の占有率は合計で99.3% です。このため、その他のプラットフォームに対するBranchのサポートは非常に限定的なものであり、便宜上ここでも省略しています。

もちろん、これらの基準はどれも、すべてのプラットフォームやOSバージョンでサポートされているわけではありません。

OS Version of Deep Linking

Facebookは、有望なオープンソースのディープリンキング基準を発明しながら後で完全に断念したことで特別な栄誉に値します。

Facebook App Links

各基準についてもう少し詳しく見ていきましょう。

URIスキームとは?URLとの違いは?

エンジニアでいっぱいの部屋でひと騒ぎ起こしたい、というのなら、コードのインデントをめぐってタブとスペースの議論を始めるといいでしょう。またはURIとURLをごちゃ混ぜにするという手もあります。 これについてはエッセイが既に存在しますが、私たちの目的のため、「URLはすべてURIでもある」ということを思い出してみましょう。重要なのは、冒頭部分にあるスキームです。http:// や https:// といったスキームはおなじみだと思います。ftp:// や feed:// も見かけたことがあるかもしれません。これらはすべて要求されるコンテンツのタイプを表しており、あなたのモバイルアプリは独自のカスタムURIスキームを登録できます。たとえば myapp:// です。

ディープリンクを調査している方であれば、URIスキームに関する重要なコンテンツに遭遇したことがあるかもしれません。アプリ開発の歴史のほぼ全体を通じ、iOSでもAndroidでも、URIスキームはアプリにディープリンキングを行う第一手法でした。

カスタムURIスキームの制限事項

カスタムURIスキームの制限事項 残念ながらカスタムURIスキームには著しい欠点がいくつかあり、中でも顕著なのは、次のような2つの状況に容易に対応できない点です。

  1. アプリがインストールされていない場合。
  2. 複数のアプリが myapp:// を要求しようとしている時。

URIスキームには内蔵型のフォールバックオプションがないため、友達が共有しているリンクをクリックしたもののアプリがインストールされていない場合、そのユーザーにはエラーページが表示されるだけです。また、中央登録システムも存在しないため、URIの競合が発生することもあります(Appleの公式見解は、現在プロセスなし)。最初の課題については多くの開発者がJavaScriptを複雑にリダイレクトすることで対応策を構築したものの、iOSの新バージョンが出るたびに動作しなくなる嫌いがありました。2番目の課題に関するソリューションは生まれそうにありません。

このような制限事項があったため、iOSはユニバーサルリンク、Androidはアプリリンクという第2世代のディープリンキング基準を開発したのです。Appleはそれ以降、URIスキームに対するJavaScriptリダイレクトというアプローチを阻止し、ユニバーサルリンクをiOSディープリンキングの要としてきました。アプリリンクの適用率はそれよりもはるかに下回るものでした。

ユニバーサルリンクとアプリリンクの違い

アプリに対して一意のコンテンツタイプであるURIスキームとは異なり、ユニバーサルリンクとアプリリンクは、ウェブページとアプリ内の1コンテンツの両方をポイントする標準のウェブリンク(https://example.com)に過ぎません。ユニバーサルリンクやアプリリンクが開かれると、デバイスはインストール済みのデバイスがそのドメインで登録されているかどうかチェックします。登録されていれば、ウェブページを読み込むことさえなくアプリがすぐに起動します。登録されていなければ、ウェブURL(App StoreやPlay Storeへのシンプルなリダイレクト)がデフォルトのウェブブラウザで読み込まれます。

測定やアナリティクスに携わっている方は、ここである問題に気づくかもしれません。というのも、アプリがすぐに起動しますとは、ウェブおよびメールマーケティングに関する従来の追跡方法は すべてリダイレクトチェーンに基づくものですが もう動作しなくなっていることを意味するからです。これは重大な問題であり、今のところユニバーサルリンク、そしてアプリリンクといういずれの基準でもソリューションが見つかっていません。唯一のオプションは、アプリが開かれた後にクリックを遡及測定することです。

ユニバーサルリンクはiOSで現行基準となっているが、欠点もある

実際のところ、ユニバーサルリンクはユニバーサル(万能)ではありません。FacebookやTwitterといったメジャーなプラットフォームではユニバーサルリンクがまったくサポートされておらず、クリックしそうになる右上隅のボタンも、実は最後の手段であることをまったく感じさせません。それに気がつくことなく、ビジターは非常に簡単にユニバーサルリンクを無効化できるようになります。無効化されれば、通常のユーザーがそのプロセスを反転させる方法を知ることはまずないので、動作しなくなったのはあなたのアプリだと仮定させることになります。

Yelp Screenshot

さらに厄介なのは、ユニバーサルリンクの適用が非常に稚拙なうえ、Appleからは検証ツールさえ提供されていないためそのテストが困難を極めることです。

URL/URIスキームは使われなくなったのか?

Appleによれば答えはイエスです。AppleはiOS 9.2からディープリンキング用のURIスキームを公式にサポートしなくなり、開発者はiOSで同等の機能を実現するうえでユニバーサルリンクの実装を余儀なくされました。

実際にはまだです。ユニバーサルリンクは動作すれば素晴らしいものの、URIスキームをバックアップとして使用しなければならない場所がまだ数多く存在します。また、ユニバーサルリンクに依存してしまうと、膨大な量のトラフィックを棚上げしてしまうことにもなります。Androidエコシステムは断片化があまりにも激しいため、近い将来のどの時点であれURIスキームを断念することさえ考えられます。

据え置きディープリンク

まだお話していない重要な概念がもう1つあります。それは、据え置きディープリンクです。URIスキーム、ユニバーサルリンク、アプリリンクのいずれかで実装された場合も、標準のディープリンクデバイスが動作するのはアプリが既にインストールされている場合のみです。アプリがインストールされていない場合は、あなたのユーザーをApp StoreやPlay Storeに移動させるぐらいです。ただし、ユーザーが最初にアプリをインストールしなければならない場合でも、彼らをアプリ内の正しい場所に移動させたい時はどうすればいいでしょうか?据え置きディープリンクは、インストールプロセスを通じてコンテンツにある特定のコンテキストを維持することでこれを可能にし、インストール後にユーザーを正しい場所に移動させます。

その他のディープリンク基準

また、あまり知られていない2つのディープリンク基準であるChromeインテントとFacebook アプリリンクにも出くわすことがあるかもしれません。

Chromeインテント

Chromeチームは、アプリがインストールされていな場合のフォールバック動作を提供するという意図から、URIスキーム向けの独自の拡張機能を自社で構築しました。根本的な問題に対するエレガントなソリューションであるものの、ChromeインテントはChromeブラウザのAndroidバージョンとわずかなサードパーティアプリでしかサポートされていません。これによって標準技術とChrome特有の代替製品の両方をサポートしなければならなくなったことから、あらゆるディープリンキングの実装がさらに複雑になったといえます。

Facebookアプリリンク

Facebookは2014年、URIスキームのディープリンクが持つ制限事項を解決するオープン基準としてアプリリンクを作成しました。アプリリンクにはメインコンポーネントが2つあります。

  1. 標準である http:// リンクのウェブページの目的地に追加するメタタグのセット。このタグによって、ネイティブアプリ内にある該当コンテンツのカスタムURIスキーム、およびアプリがインストールされていない場合に発生させる動作が指定されます。
  2. リンクを開く動作をサポートするアプリ内部で使用するルーティングエンジン。このエンジンは、リンクを開く前にアプリリンクタグの最終URLをチェックし、該当するアプリを起動したり指定されたフォールバック動作を実行します。
Facebook App Links

http://applinks.org/documentation/

アプリリンク基準には、元のアプリと最終アプリの両方による作業が必要になるという重大な制限事項があります。メタタグコンポーネントの適用は広範囲にわたったものの、ルーティングエンジンの適用は、コアとなるFacebookアプリとMessengerアプリのみに留まりました。Facebookはユーザーを自社のプラットフォームに維持することを好むようになり、メインのAndroidアプリを除くすべての場所からアプリリンクルーティングエンジンを削除しました。FacebookはiOS ユニバーサルリンクもブロックするため、iOSのFacebookやMessangerからサードパーティアプリを開くうえで信頼できる方法がなくなってしまいます。Branchは、これらの制限事項の対策となるソリューションを実装しました。

2017年のユニバーサルリンク、URIスキーム

ディープリンク モバイルアプリのディープリンキングに関する状況は、今なお断片化を極めています。当社は今も業界 標準には程遠い存在です。ですが、そのことが乏しいユーザー体験をあなたのカスタマーに押し付けることの言い訳にはなりません。

Major Non-Browser Mobile Channels

カスタマー獲得のため、あなたはディープリンクを必要とし、あらゆる標準を必要としています。Branchの据え置きディープリンクは、URIスキーム、ユニバーサルリンク、アプリリンク、Chromeインテント、Facebookアプリリンクを装備。すべて揃えていますので、新たな準備は必要ありません。

ディープリンクは、このようにさまざまな基準に対応し、追加作業なしで統一感あるアナリティクスと属性データを提供できます。実装してみたいと思われた方は、下のボタンをクリックして始めましょう。

shares