Deferred Deep Link:概要、仕組み、開発での使用方法

著者: IT Sectr 公開日: 2026-05-15 読了時間: 8 分

Deferred Deep Linkとは、ユーザーのデバイスにアプリがまだインストールされていない場合でも、遷移先のコンテキストを保持するメカニズムです。Branch Resourcesによると、アプリインストール後、システムは自動的に保存されたコンテキストを処理し、ユーザーをターゲット画面にリダイレクトします。Deferred Deep Linkは通常のディープリンクの主な問題——インストールされていないアプリでは機能しないこと——を解決します。

重要なポイント

  • Deferred Deep Link — 遷移コンテキストを保持し、アプリインストール後にそれを復元するディープリンク。
  • 仕組み — ブラウザがリンクパラメータをlocalStorageまたはクリップボードに保存し、アプリSDKがインストール後の初回起動時にそれらを読み取る。
  • Firebase Dynamic Links — SDKによる最小限の統合でdeferred deep linkを実装する無料サービス。
  • Branch.io — 高度なdeferred deep linkサポートとインストールアトリビューションを備えた商用プラットフォーム。
  • 制限 — deferred deep linkはすべてのブラウザで動作するわけではなく、プラットフォームルールの変更時にSDKの更新が必要。

Deferred Deep Linkは2段階で動作するディープリンクの一種です。まずユーザーがアプリインストール前にリンクをクリックし、インストール完了後にシステムがコンテキストを復元します。通常のディープリンクはアプリが既にインストールされている場合のみアプリを開きますが、deferredはすべての遷移パラメータを保存し、初回起動時にそれらを渡します。

このテクノロジーは、モバイルマーケティングの成長に伴い特に需要が高まりました。広告キャンペーンは多くの場合、まだアプリをインストールしていないユーザーをターゲットにします。deferred deep linkがない場合、そのような遷移はコンテキストなしで単にアプリをダウンロードするだけで終わり、ユーザーはターゲット画面ではなくメイン画面に到達することになります。

通常のディープリンクとの違い

通常のディープリンクは、既にインストールされているアプリ内でターゲットコンテンツを開きます。アプリがインストールされていない場合、ブラウザはエラーを表示します。Deferred Deep Linkは中間サーバーを介して動作し、ユーザーをストアにリダイレクトし、インストール後に保存されたパラメータをアプリに通知します。これにより、deferredリンクはアプリの事前インストールを必要とせず、広告からコンテンツまでのエンドツーエンドのユーザージャーニーを提供します。

Deferred Deep Linkの仕組み

deferred deep linkの処理は3つの段階で構成されます。最初の段階では、ユーザーがリンクをクリックします——サーバーはアプリがインストールされているかどうかを判断します。インストールされていない場合、一意のセッション識別子を生成し、遷移パラメータを保存して、この識別子とともにユーザーをApp StoreまたはGoogle Playにリダイレクトします。

2番目の段階では、ユーザーがストアからアプリをインストールします。インストールと初回起動後、プラットフォームSDKがサーバーに接続し、デバイス識別子を送信して、保存された遷移パラメータを受け取ります。3番目の段階では、アプリが受信したデータを処理し、自動的にユーザーをターゲット画面にリダイレクトします。

deferredリンクのライフサイクル

リンククリックとインストールの間でパラメータを保存するために、さまざまなメカニズムが使用されます。iOSではiCloud Keychainまたはクリップボード、AndroidではInstall Referrer APIです。Firebase Dynamic LinksはブラウザのlocalStorageとストアのリファラルリンクの組み合わせを使用してセッション識別子を渡します。Branch.ioは複数のストレージにデータをバックアップする独自のプロトコルを採用しています。

iOSでのDeferred Deep Link

iOSでは、deferred deep linkはUniversal LinksとShared Web Credentialsの組み合わせで実装されます。ユーザーがアプリのウェブサイトのUniversal Linkをクリックすると、Safariはアプリのドメインに関連付けられたiCloud Keychainに遷移パラメータを保存します。App Storeからアプリをインストールした後、iOSは保存されたデータの有無を確認し、初回起動時にアプリに渡します。

Appleはdeferred deep linkの組み込みAPIを提供していません——実装は完全にサードパーティのSDKに委ねられています。Firebase Dynamic Linksはpassive deferredメカニズムを使用しており、データはブラウザのクッキーに保存され、アプリの初回起動時に特別なURLへのリダイレクトを介して復元されます。

iOSの制限事項

iOS 14以降、Appleはプライバシールールを厳格化し、deferred deep linkのメカニズムに影響を与えました。クリップボードはユーザーの明示的な許可なしにデータを読み取るために使用できなくなりました。iCloud Keychainにもデータサイズの制限があり、1回の書き込みで4 KBまでです。そのため、一意のセッション識別子を使用したサーバーサイドソリューションが、コンテキストを渡すための好ましい方法となっています。

AndroidでのDeferred Deep Link

AndroidはInstall Referrer APIを通じて、deferred deep linkのより柔軟なオプションを提供します。ユーザーがGoogle Playへのリンクをクリックすると、ストアはリファラー(遷移パラメータを含む文字列)をキャプチャします。インストール後、アプリはInstall Referrer APIを介してこの文字列を受け取り、そこからターゲットコンテキストを抽出します。これはAndroidで最も信頼性の高いdeferred deep linkメカニズムです。

Google Play以外で配布されるアプリの場合、AndroidはリファラルBroadcastReceiverをサポートしています。開発者はインストール後にパラメータを含むカスタムIntentを送信でき、アプリはマニフェストに登録されたBroadcastReceiverを介してそれを受け取ります。ただし、このメカニズムはインストーラーの実装に依存するため、信頼性が低くなります。

Install Referrer API

Install Referrer APIは、リファラーURL、クリック時間、インストール時間を含むインストールソースに関する情報を提供します。リファラー文字列の最大長は8 KBで、必要なすべてのディープリンクパラメータを渡すのに十分です。このAPIはGoogle Play Storeバージョン8.3.73以降のデバイスで利用可能で、Android 5.0(API 21)でサポートされています。

Firebase Dynamic Linksによる実装

Firebase Dynamic Linksは、両方のプラットフォームでdeferred deep linkを実装する最も人気のある無料ツールです。Firebaseはdeferred遷移のすべての段階を自動的に処理します:アプリがない場合のストアへのリダイレクト、Firebaseサーバーへのパラメータ保存、アプリの初回起動時のSDKへの受け渡しです。

実装するには、プロジェクトにFirebase SDKを統合し、Firebase Consoleでディープリンクとキャンペーンパラメータを指定してDynamic Linkを作成するだけです。Firebase SDKはアプリ起動時に自動的に呼び出され、getDynamicLink()メソッドを介して受信したDynamic Linkを確認します。

処理設定の例

KotlinのActivityでのdeferred Firebase Dynamic Link処理の例。コードはアプリ起動時のコールドスタートとウォームスタートの両方で同じように機能します。

kotlin
class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        checkDeferredLink()
    }

    private fun checkDeferredLink() {
        FirebaseDynamicLinks.getInstance()
            .getDynamicLink(intent)
            .addOnSuccessListener link ->
                val deferredLink = link?.link.toString()
                if (deferredLink.isNotEmpty()) {
                    navigateToContent(deferredLink)
                }
            }
    }
}

getDynamicLink()メソッドはDynamicLinkオブジェクトを含むPendingTaskを返します。リンククリック後にアプリがインストールされた場合、リスナーはパラメータ付きのデータを受け取ります。遷移前にアプリが既にインストールされていた場合、メソッドは通常のディープリンクと同じデータを返します。リンクパラメータのminimumAppVersionフラグは、処理のための最小アプリバージョンを設定できます。

Deferred Deep Linkの利点と制限

Deferred Deep Linkはマーケティングキャンペーンに大きな利点をもたらします:ユーザーは追加アクションなしでインストール後にターゲットコンテンツを受け取るため、コンバージョンとリテンションが向上します。リファラルプログラムでは、deferredリンクにより招待をインストールと新しいユーザーのアクションに明確に関連付けることができます。

ただし、このテクノロジーには制限もあります。deferred deep linkはサードパーティクッキーをブロックするブラウザでは機能せず、iOSバージョン14以降ではiCloud Keychainの追加設定が必要です。さらに、リンククリックからインストールまでに数日かかる場合があり、すべてのSDKがその期間のデータ保存を保証するわけではありません。

deferred deep linkを使用すべき場合

deferred deep linkは、新規ユーザーをターゲットにした広告キャンペーン、招待状付きのメールニュースレター、リファラルプログラムに必須です。既にインストールしているユーザーには、通常のディープリンクで十分です。アプリがマーケティングキャンペーンやリファラルメカニズムを使用しない場合、deferred deep linkは不要です——Universal LinksとApp Linksで十分です。

実装を選択する際は、コストを考慮してください:Firebase Dynamic Linksは無料ですが分析機能は限定的です。Branch.ioとAppsFlyerは高度なアトリビューションを提供しますが、サブスクリプションが必要です。小規模プロジェクトにはFirebaseが最適なソリューションであり、数十の広告チャネルを持つエンタープライズには商用MMPが選択肢となります。

よくある質問

deferred deep linkと通常のディープリンクの違いは?

通常のディープリンクはアプリがインストールされている必要があり、直接アプリを開きます。Deferred Deep Linkはアプリがインストールされていなくても機能します——ストアにリダイレクトし、インストール後に遷移コンテキストを復元してターゲット画面を開きます。

deferred deep linkのパラメータはどのくらい保存されますか?

保存期間はプラットフォームによって異なります。Firebase Dynamic Linksはパラメータを最長30日間保存します。Branch.ioは最長90日間データを保持します。Androidでは、Install Referrer APIはアプリが最初に読み取るまでリファラー文字列を保存しますが、90日を超えることはありません。

デスクトップのウェブブラウザでdeferred deep linkは動作しますか?

デスクトップでは、コンピュータのストアからアプリをインストールできないため、deferred deep linkは意味がありません。デスクトップからリンクをクリックすると、ユーザーにはフォールバックURL——コンテンツのウェブバージョンまたはモバイルデバイスにインストールするためのQRコード付きページ——が表示されます。

どのブラウザがdeferred deep linkをサポートしていますか?

Chrome、Safari、Samsung InternetはクッキーとlocalStorageのメカニズムを通じてdeferred deep linkをサポートしています。Firefoxは厳格なサードパーティクッキーブロックポリシーのため、サポートが制限されています。最大限のカバレッジを得るには、FirebaseまたはBranch.ioのSDKを使用することをお勧めします。

サードパーティSDKなしでdeferred deep linkを実装できますか?

技術的には、中間サーバーとリファラルメカニズムを介して独自のソリューションを実装できます。ただし、サーバーインフラの開発と保守、クッキーの処理、各ストアとの統合、さまざまなプラットフォームでの問題解決が必要です。既製のFirebaseおよびBranch.io SDKは、開発を数十倍加速します。

まとめ

  • Deferred Deep Link — アプリインストール後に遅延してコンテキストを復元するディープリンクで、通常のディープリンクの問題を解決します。
  • 仕組み — リンククリックでサーバーにパラメータを保存し、インストール後にSDKがサーバーに接続してコンテキストを復元します。
  • iOS — iOS 14以降の制限付きでiCloud KeychainとShared Web Credentialsを介して実装されます。
  • Android — Google Play Install Referrer APIを使用。モバイルプラットフォームで最も信頼性の高いdeferred deep linkメカニズムです。
  • Firebase Dynamic Links — 最小限の統合で無料のソリューション。ほとんどのプロジェクトに適しています。
  • Branch.io — 高度なアトリビューション、deepview、広告ネットワーク統合を備えた商用プラットフォーム。
  • 用途 — deferred deep linkは、新規ユーザーをターゲットにした広告キャンペーン、リファラルプログラム、Eメールマーケティングに必要です。

ターンキー方式のモバイルアプリケーションを開発します

IT Sectrは2017年からスタートアップや企業向けにiOS・Androidアプリケーションを開発しています。私たちがご相談に乗り、最適なソリューションをご提案します。

プロジェクトについて相談

こちらもお読みください