アプリがインストールされているユーザーがAdjustリンクをクリックすると、ダイレクトディープリンク機能により、アプリ内の特定のコンテンツへ直接遷移させることができます。
仕組み
- ユーザーがAdjustリンクをクリックします。
- OSがアプリを開き、ディープリンクをネイティブコード(iOS または Android)に渡します。
- Adjust SDKはネイティブコードでOSからのディープリンクをリッスンし、それを
directDeeplinkCallbackに転送します。 - コードがリンクをAdjust SDKに渡し、アトリビューションを行います。SDKはショートブランドリンクを解析します。
- コードは解析されたリンクに基づいてユーザーをナビゲートします。
Adjust SDKメソッド
ダイレクトディープリンクのコールバック
ネイティブコードでAdjust SDKがインターセプトしたディープリンクを受け取るには、Adjust.initSdkを呼び出す前にAdjustConfigオブジェクトにdirectDeeplinkCallbackを設定します。
DirectDeeplinkCallback? directDeeplinkCallback;ディープリンクの処理と解析(推奨)
Adjust.processAndResolveDeeplinkメソッドを使用すると、以下の処理が実行されます。
- ディープリンククリックによるアトリビューションを記録する
- ショートブランドリンクを長いブランドリンクに解析する
- その他のリンクをそのまま渡す
static Future<String?> processAndResolveDeeplink(AdjustDeeplink deeplink)ディープリンクの処理(レガシー版)
Adjust.processDeeplink メソッドは、ショートブランドリンクを使用していない場合でも、ディープリンククリックからのアトリビューションを記録します。
static void processDeeplink(AdjustDeeplink deeplink)processAndResolveDeeplinkメソッドは、このレガシーメソッドより優先されます。
実装
Adjust.initSdkを呼び出す前に、 AdjustConfigオブジェクトにdirectDeeplinkCallbackを設定します。このコールバックは、Adjust SDKがネイティブコードでOSからディープリンクを受信する度に発生します。
AdjustConfig adjustConfig = new AdjustConfig('{YourAppToken}', AdjustEnvironment.sandbox);
// Set direct deep link callback before initializing SDKadjustConfig.directDeeplinkCallback = (String? incomingLink) async { if (incomingLink == null) return;
// Create deep link object final deeplink = AdjustDeeplink(incomingLink);
// Send deep link to Adjust's servers for attribution. // If short branded link, receive long link. // Otherwise, receive original link. final resolvedLink = await Adjust.processAndResolveDeeplink(deeplink);
// Handle failure if resolvedLink is null if (resolvedLink == null) return;
/* * TODO: Handle the deep link and navigate to the appropriate screen. * * Possible resolvedLink formats: * * 1. https://brandname.go.link/?adj_t=def456& * adj_link=https%3A%2F%2Fexample.com%2Fsummer-clothes%3Fpromo%3Dbeach * -> extract and decode the deep link from adj_link * * 2. https://brandname.go.link/summer-clothes?promo=beach&adj_t=def456 * -> extract path from the URL * * 3. example://summer-clothes?promo=beach&adj_t=def456 * -> extract path from the URL * * Note (Android only): If your Android app scheme path differs from iOS, * you may receive: * https://brandname.go.link/?adj_t=def456& * adj_deep_link=example%3A%2F%2Fandroid-specific-path%3Fparam%3Dvalue * -> extract and decode the deep link from adj_deep_link */};
Adjust.initSdk(adjustConfig);Android:専用ディープリンクアクティビティ
メインアクティビティがsingleTop、standardの場合、または起動モードに指定されていない場合は、アプリの実行中にディープリンクが正しく開くように、専用のディープリンクアクティビティを作成する必要があります。
これは、適切に設定しないと、ディープリンクによってアプリが新しいタスク内で起動したり、ブラウザーなど別のアプリのタスク内で起動したりする可能性があり、アプリの2つのインスタンスが同時に実行されてることがあるためです。
ネイティブAndroid設定
- 専用ディープリンクアクティビティ アプローチを使用してマニフェストを設定する
- メインのFlutterActivityにディープリンクを転送するDedicatedDeepLinkActivityを作成する
ディープリンクがFlutterコードに到達する仕組み
- ユーザーがAdjustリンクをクリックします。
- OSがディープリンクインテントで
DedicatedDeepLinkActivityを開きます。 DedicatedDeepLinkActivityが既存のインスタンスを前面に押し出すフラグを使用して、メインのFlutterActivityにインテントを転送します。- Adjust SDKはメインの
FlutterActivityからディープリンクを受け取り、directDeeplinkCallbackに転送します。