Android SDK - ディープリンクのサポート

ドキュメント

ディープリンクサポートの追加

ディープリンクは、ユーザーをアプリ内の特定のコンテンツに誘導します。アプリがインストールされたデバイスでユーザーがディープリンクをタップすると、アプリは製品ページや特定の体験など、目的のコンテンツに直接開きます。

Singularトラッキングリンクは、標準ディープリンク(インストール済みアプリ用)とディファードディープリンク(新規インストール用)の両方をサポートしています。包括的な情報については、ディープリンクFAQと シンギュラーリンクFAQをご覧ください。


必要条件

前提条件

アプリのディープリンクを有効にするには、Singular Links Prerequisitesを完了してください。


シンギュラーリンクハンドラの実装

SingularLinkHandler は、アプリが開いたときに Singular トラッキングリンクからディープリンク、ディファードディープリンク、パススルーパラメータを取得するコールバックメカニズムを提供します。

利用可能なパラメータ

  • ディープリンク (_dl):リンクをクリックしたユーザーのアプリ内のリンク先URL
  • ディファードディープリンク(_ddl):リンクをクリックした後にアプリをインストールしたユーザーのリンク先URL
  • パススルー (_p):追加コンテキストのためにトラッキングリンクを通して渡されるカスタムデータ

SDKコンフィギュレーション

コンフィグにSingularLinkHandlerを追加

SDKの初期化中にSingularLinkHandlerを設定し、入力されるディープリンクと遅延ディープリンクデータを処理します。

KotlinJava
private fun initSingularSDK() {
    val config = SingularConfig("SDK_KEY", "SDK_SECRET")
        .withSingularLink(intent) { params ->
            val deeplink = params.deeplink
            val passthrough = params.passthrough
            val isDeferred = params.isDeferred

            Log.d("SingularLink", "Deeplink: ${deeplink ?: "null"}")
            Log.d("SingularLink", "Passthrough: ${passthrough ?: "null"}")
            Log.d("SingularLink", "Is Deferred: $isDeferred")
            
            // Handle deep link routing
            deeplink?.let { url ->
                handleDeepLink(url, isDeferred)
            }
        }

    try {
        Singular.init(applicationContext, config)
        Log.d("Singular", "SDK initialized successfully")
    } catch (e: Exception) {
        Log.e("Singular", "SDK initialization failed: ${e.message}")
    }
}

override fun onNewIntent(intent: Intent?) {
  super.onNewIntent(intent)
  // Configure onNewIntent to handle Warm start deeplinks
  intent?.let {
    setIntent(intent)
    initSingularSDK()
  }
}

注意:SingularLinkHandlerは、アプリがSingular Linkを介して開いた場合にのみトリガーされます。詳細については、Singular Links FAQを参照してください。


ハンドラの動作

SingularLinkHandler は、アプリがインストールされたばかりか、既にインストールされているかによって動作が異なります。

新規インストール (ディープリンクの遅延)

新規インストールでは、アプリの起動時に Open URL は存在しません。トラッキングリンクにディープリンクまたはディファードディープリンクの値が含まれているかどうかを判断するために、Singular はアトリビューションを完了します。

ディファードディープリンクのフロー

  1. ユーザーがディープリンク値で設定されたSingularトラッキングリンクをクリックする。
  2. ユーザーがアプリをインストールして初めて開く
  3. Singular SDKが最初のセッションをSingularサーバーに送信します。
  4. アトリビューションが完了し、トラッキングリンクからディープリンクが特定される
  5. ディープリンクの値が、isDeferred = truedeeplink パラメータで SingularLinkHandler に返されます。

ディファードディープリンクのテスト

  1. テストデバイスからアプリをアンインストールする(現在インストールされている場合)
  2. テスト端末のGoogle Advertising ID (GAID)をリセットします。
  3. デバイスからSingularトラッキングリンクをクリックします(ディープリンク値が設定されていることを確認します)。
  4. アプリをインストールして開く

アトリビューションが正常に完了し、延期されたディープリンクの値がSingularLinkHandlerに渡されます。

プロのヒント異なるパッケージ名(例えば、com.example.prod の代わりにcom.example.dev)を使用する開発ビルドでディープリンクをテストする場合、開発アプリのパッケージ名専用にトラッキングリンクを設定してください。テストリンクをクリックした後、アプリストアから本番アプリをダウンロードするのではなく、Android Studio または APK を使用して開発ビルドをデバイスに直接インストールします。


インストール済み(即時ディープリンク)

アプリが既にインストールされている場合、Singular Linkをクリックすると、Android App Linksテクノロジーを使用してアプリが即座に開きます。

即時ディープリンクフロー

  1. ユーザーがSingularトラッキングリンクをクリック
  2. Android OSはSingularトラッキングリンク全体を含むOpen URLを提供します。
  3. SDKの初期化中に、SingularがAndroid Intentを解析します。
  4. Singular はdeeplinkpassthroughの値を抽出します。
  5. 値はSingularLinkHandlerを通してisDeferred = false

パススルーパラメータ

パススルーパラメータを使用して、トラッキングリンククリックから追加データを取得します。

トラッキングリンクにpassthrough (_p) パラメータが含まれている場合、SingularLinkHandler のpassthrough パラメータに対応するデータが含まれます。キャンペーンメタデータ、ユーザーセグメンテーションデータ、またはアプリで必要なカスタム情報を取得するために使用します。

KotlinJava
val config = SingularConfig("SDK_KEY", "SDK_SECRET")
    .withSingularLink(intent) { params ->
        // Extract passthrough data
        params.passthrough?.let { passthroughData ->
            // Parse and use custom data
            val jsonData = JSONObject(passthroughData)
            val campaignId = jsonData.optString("campaign_id")
            val userSegment = jsonData.optString("segment")
            
            Log.d("SingularLink", "Campaign ID: $campaignId")
            Log.d("SingularLink", "User Segment: $userSegment")
        }
    }

すべてのクエリパラメータを転送

_forward_params=2 パラメータを追加することで、トラッキングリンクURLからすべてのクエリパラメータをキャプチャします。

_forward_params=2 がトラッキングリンクに追加されると、すべてのクエリパラメータが SingularLinkHandler のdeeplink パラメータに含まれ、すべてのパラメータを含む完全な URL にアクセスできるようになります。

トラッキングリンクの例
https://yourapp.sng.link/A1b2c/abc123?_dl=myapp://product/123&_forward_params=2&utm_source=facebook&promo=SALE2024

SingularLinkHandler は以下を受け取ります:
deeplink = "myapp://product/123?utm_source=facebook&promo=SALE2024"