Dynamic Links とは
Dynamic Links は、アプリのインストールの有無にかかわらず、複数のプラットフォームで機能するリンクです。iOS または Android で Dynamic Links を開くと、ネイティブアプリのリンク先のコンテンツに直接移動します。
ユースケース
-
ウェブユーザーをアプリユーザーにする
Dynamic Links を開いたユーザーの iOS デバイスまたは Android デバイスにアプリがインストールされていない場合にインストールを促し、インストール完了後にアプリを起動してリンクを開く。 -
SNS、メール、SMS でのキャンペーン
どのプラットフォームでも機能するリンクを使ってプロモーションの特典を提供する。iOS、Android、ウェブブラウザのいずれであっても、アプリをインストール済みかどうかにかかわらず、既存のユーザーも見込みユーザーも特典を利用できる。
Android アプリでDynamic Links を利用する
こちらのサンプルコードを参考にして、 Dynamic Links を試してみましょう。
FirebaseプロジェクトとAndroidアプリの準備
サンプルコードを入手する
GitHubからソースコードをローカル環境にクローンします。
今回は dynamiclinks
ディレクトリのコードを使用します。
$ git clone https://github.com:firebase/quickstart-android && cd quickstart-android/dynamiclinks
Firebaseプロジェクトを作成する
次にサンプルアプリケーションをデプロイするために Firebase プロジェクトを作成します。
Android プロジェクトに Firebase を追加する
作成したFirebaseプロジェクトにクローンしたAndroidアプリを追加します。
Dynamic Links の設定
※ 以下の画像中で設定している値はグローバルで一意でなければならないので、実際に試す場合は別の値を使用してください。
URL prefix を設定する
Firebase コンソールの [Dynamic Links] から Add URL prefix
を選択し、Domain を設定します。あとはデフォルト値のまま、Verify
と Finish
します。
Dynamic Links を作成する
続いて、New Dynamic Link
を選択します。
- Set up your short URL link
デフォルトで設定されている値を使用できます。

- Set up your Dynamic Link
Deep link URL を設定します。

-
Define link behavior for iOS
今回は iOS アプリは使用しないので、デフォルト値のままにします。 -
Define link behavior for Android
deep link が Android アプリで開かれたときの挙動を設定します。
今回は、別に用意している オブジェクト認識アプリ が起動されるように設定しました。

- Campaign tracking, social tags and advanced options (optional)
デフォルト値のままにします。
ソースコードの編集をする
Android Studio を起動し、app/build.gradle の、dynamic_links_uri_prefix
の値を、Set up your short URL link で設定した Link preview の値に書き換えます。

アプリを起動して Dynamic Links の挙動を確認する
Android Studioでアプリを起動すると、Emulator で下のような画面が開きます。
Java の OPEN を選択します。

Send の下に deep link が生成されました。

生成された deep link をコピーし、同じ Emulator デバイス内のブラウザで開きます。
Define link behavior for Android で設定したとおり、オブジェクト認識アプリが起動されました。
