ディープリンクサポートの追加
ディープリンクは、ユーザーをアプリ内の特定のコンテンツに誘導するURLです。アプリがすでにインストールされているデバイスでユーザーがディープリンクをタップすると、アプリは目的の製品ページやエクスペリエンスに直接開きます。Singularトラッキングリンクは、ディープリンクとディファードディープリンクの両方をサポートしています。詳しくは、ディープリンクFAQと シンギュラーリンクFAQをご覧ください。
必要条件
-
アプリでディープリンクを有効にするには、Singular Links Prerequisitesを完了していることを確認してください。
-
シンギュラーリンクハンドラの実装
Singular リンクハンドラは、Singular トラッキングリンクからディープリンク (_dl)、ディファードディープリンク (_ddl)、パススルー (_p)パラメータを取得するコールバックメカニズムを提供します。これらのパラメータは、アプリが開かれた時(既にインストールされている場合)、またはアプリがインストールされた後に渡されます。
SingularConfig オブジェクトを更新する
SDKの初期化中にSingularLinkHandlerコールバックをSingularConfigオブジェクトに追加し、入力されるディープリンクおよび遅延ディープリンクデータを処理します。
private void initSingularSDK() {
SingularConfig config = new SingularConfig("SDK KEY", "SDK SECRET")
.withSingularLink(getIntent(), new SingularLinkHandler() {
@Override
public void onResolved(SingularLinkParams params) {
String deeplink = params.getDeeplink();
String passthrough = params.getPassthrough();
boolean isDeferred = params.isDeferred();
Log.d("SingularLink", "Deeplink: " + (deeplink != null ? deeplink : "null"));
Log.d("SingularLink", "Passthrough: " + (passthrough != null ? passthrough : "null"));
Log.d("SingularLink", "Is Deferred: " + isDeferred);
}
});
try {
Singular.init(getApplicationContext(), config);
Log.d("Singular", "SDK initialized successfully");
} catch (Exception e) {
Log.e("Singular", "SDK initialization failed: " + e.getMessage());
}
}
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")
}
try {
Singular.init(applicationContext, config)
Log.d("Singular", "SDK initialized successfully")
} catch (e: Exception) {
Log.e("Singular", "SDK initialization failed: ${e.message}")
}
}
注意: SingularLinkHandlerは、アプリがSingular Linkを通じて開かれた場合にのみトリガーされます。詳細については、( Singular Links FAQを参照してください)を参照してください。
SingularLinkHandler の動作に関する注意事項:
-
新規インストールでは、アプリの起動時にOpen URLはありません。そのため、Singularは最後のタッチポイントへのアトリビューションを完了し、トラッキングリンクに設定済みのディープリンクまたはディファードディープリンク(DDL)値が含まれているかどうかを判断する必要があります。このプロセスは、Singular SDKが最初のセッションをSingularサーバーに送信するときに発生します。該当する場合、ディープリンク値がSDKのSingularLinkHandlerに返され、「deeplink」パラメータに表示されます。
このシナリオをテストするには
- デバイスからアプリをアンインストールします(現在インストールされている場合)。
- Google Advertising ID (GAID)をリセットします。
- 端末からSingularトラッキングリンクをクリックします。Singularトラッキングリンクにディープリンク値が設定されていることを確認します。
- アプリをインストールして開きます。
プロのヒント異なるパッケージ名(例えば、com.example.prod の代わりにcom.example.dev )を持つアプリの開発バージョンでディープリンクまたは遅延ディープリンクをテストする場合、トラッキングリンクが本番アプリのパッケージ名ではなく、開発アプリのパッケージ名専用に設定されていることを確認してください。さらに、デバイス上でテストリンクをクリックした後、アプリストアから本番アプリをダウンロードするのではなく、開発ビルドをテストデバイスに直接インストールしてください(Android StudioやAPKなど)。
アトリビュートが正常に完了し、DDL値がアプリに渡されるはずです。
- トラッキングリンクにpassthrough (_p) パラメータが含まれている場合、SingularLinkHandler のパススルーパラメータには対応するデータが含まれます。これは、アプリでクリックからの追加データを取得するのに便利です。
- トラッキングリンクのURLからすべてのクエリパラメータを取得するには、_forward_params=2 パラメータをトラッキングリンクに追加します。すべてのクエリパラメータは、SingularLinkHandler のdeeplinkパラメータに含まれます。
- アプリがすでにインストールされている場合、Singularリンクをクリックするとアプリが開きます。SingularはAndroid App Linksテクノロジーを使ってこれを実現します。Android OSはSingularトラッキングリンク全体を含むOpen URLを提供します。SDKの初期化中に、Singular SDKはAndroidIntent を解析し、ディープリンクと パススルーの値を抽出し、SingularLinkHandler を通して返します。