アプリがインストールされているユーザーがAdjustリンクをクリックすると、ダイレクトディープリンク機能により、アプリ内の特定のコンテンツへ直接遷移させることができます。
設定
iOSでは、アプリの実装方法に応じて、ダイレクトディープリンクを受け取るための複数のメソッドが用意されています。これらのメソッド内で、次のいずれかの方法を使ってディープリンクをAdjust SDKに渡してください。
ディープリンクの処理と解析(推奨)
processAndResolve(_:withCompletionHandler:)
メソッドを使用すると、以下の処理が実行されます。
- ディープリンククリックによるアトリビューションを記録する
- ショートブランドリンクを長いブランドリンクに解決する
- その他のリンクをそのまま渡す
その後、アプリは解決済みのリンクを解析し、適切な画面へ遷移させることができます。このメソッドは、Adjustの長いブランドリンクを含む全てのディープリンク(ユニバーサルリンク、アプリスキームディープリンクなど)に使用できます。
+ (void)processAndResolveDeeplink:(nonnull ADJDeeplink *)deeplink withCompletionHandler:(nonnull ADJResolvedDeeplinkBlock)completion;
ディープリンクの処理(レガシー版)
Adjust SDKにはprocessDeeplink(_:)
メソッドがあり、ショートブランドリンクを使用していない場合でも、ディープリンククリックからのアトリビューションを記録することができます。
+ (void)processDeeplink:(ADJDeeplink *)deeplink;
ただし、processAndResolve(_:withCompletionHandler:)
メソッドはこのレガシー版メソッドの機能を置き換えるものであるため、新しいこちらのメソッドを使用することを推奨します。
実装に関する重要な注意事項
ディープリンクの効果的な活用方法は、以下の通りです。
-
リンク処理の要件
-
アプリは、Adjustのブランドリンク (
brandname.go.link
) とユニバーサルリンク (example.com
) を同じように処理する必要があります。アプリでドメインの許可リストを使用している場合は、Adjustブランドドメインが含まれていることを確認してください。たとえば、以下の2つのリンクは、どちらも同じ画面に遷移する必要があります。- Adjustブランドリンク:
https://brandname.go.link/summer-clothes?promo=beach
- ユニバーサルリンク:
https://example.com/summer-clothes?promo=beach
- Adjustブランドリンク:
-
アプリは、Adjustのブランドリンクとアプリスキームのディープリンクを同じように処理する必要があります。iOSでユニバーサルリンクがサポートされていない場合、Adjustはそれらを同等のアプリスキーム形式に変換します。たとえば、以下の2つのリンクは、どちらも同じ画面に遷移する必要があります。
- Adjustブランドリンク:
https://brandname.go.link/summer-clothes?promo=beach
- アプリスキームのディープリンク:
example://summer-clothes?promo=beach
- Adjustブランドリンク:
-
-
アプリステータスに関する考慮事項
- アプリが「未起動」、「バックグラウンド」、または必要に応じて「フォアグラウンド」)のいずれの状態から起動された場合でも、リンクを正しく処理できるよう確認してください。
- ユーザーがまだ認証されていない場合など、ディープリンクをすぐに処理できない状況では、一時的に保存しておき、アプリがナビゲーション可能な状態になった時点で処理するように検討してください。
-
アプリ内ナビゲーション
- アプリが
UIApplication.open(_:options:completionHandler:)
またはSwiftUIのopenURL
を呼び出してユニバーサルリンクを開こうとすると、iOSはそれらのリンクをアプリ内ではなくSafariで開いてしまいます。これらのメソッドをアプリ内ナビゲーションに使用する場合は、アプリスキームのディープリンクのみを渡す必要があります。または、アプリ内にユニバーサルリンクを配置し、独自のディープリンク処理ロジックでリンクを解析し、適切な画面へ遷移させることも可能です。
- アプリが
実装
アプリの構造と一致する実装方法を使用してください。
- AppDelegateライフサイクルを使用するUIKitアプリ
- SceneDelegateライフサイクルを使用するUIKitアプリ
- AppDelegateライフサイクルを使用するSwiftUIアプリ
- SceneDelegateライフサイクルを使用するSwiftUIアプリ
AppDelegateライフサイクルを使用するUIKitアプリ
AppDelegateを更新して、iOSダイレクトディープリンクメソッドを実装します。
SceneDelegateライフサイクルを使用するUIKitアプリ
SceneDelegateを更新して、iOSダイレクトディープリンクメソッドを実装します。
AppDelegateライフサイクルを使用するSwiftUIアプリ
まだ作成していない場合は、プロジェクトのメインディレクトリに AppDelegate.swift
ファイルを作成し、以下の App.swift
ファイルの例のように、アプリケーションのメインファイルで参照してください。これは、アプリのライフサイクルイベントとAdjust SDKの実装を処理するために必要です。また、アプリがインストールされている状態でユニバーサルリンクやアプリスキームディープリンクを受け取れるように、onOpenURL
SwiftUIモディファイアも実装してください。
SceneDelegateライフサイクルを使用するSwiftUIアプリ
AppDelegateライフサイクルを使用するSwiftUIアプリの手順に従ってください。onOpenURL
SwiftUIモデリングは、アプリがインストールされ、リンクがバックグラウンドまたはフォアグラウンドの状態からアプリを開くと、ユニバーサルリンクとアプリスキームのディープリンクを受信します。
さらに、SceneDelegateライフサイクルの手順に従って、UIKitアプリからscene(_:willConnectTo:options:)
メソッドを実装してください。このメソッドは、アプリがインストールされ、アプリが「未起動」の状態でリンクが開かれると、ユニバーサルリンクとアプリスキームのディープリンクを受け取ります。