ダイレクトディープリンクの設定
ディープリンクは、Adjust管理画面で設定した後にアプリで設定できます。 ダイレクトディープリンク は、ユーザーがアプリをデバイスにインストールしている場合に使用されます。このリンクは、ユーザーをアプリ内の特定のページに誘導します。
ディープリンクを有効化するには、以下を行う必要があります。
Associated Domainsを有効化
最初に、Apple Developer AccountでAssociated Domainsを有効にする必要があります。これにより、アプリでユニバーサルリンクドメインを設定できるようになります。これを行うには、以下の手順に従ってください。
- Apple Developer Accountにログインします。
- 左側のメニューで 証明書、ID、プロフィール(Certificates, IDs & Profiles) を選択します。
- 左側のメニューで ID(Identifiers) を選択します。
- アプリを探して選択し、編集ページを開きます。
- 機能(Capabilities) で、 Associated Domains にチェックマークが付いていることを確認します。
- 保存(Save) を選択して変更内容を保存します。
Xcodeでディープリンクを設定
次の手順に従って、ディープリンク設定をXcodeプロジェクトに追加します。
Adjustユニバーサルリンクドメイン
- Xcodeでアプリプロジェクトを開きます。
- 左側のメニューからプロジェクトを選択します。
- ターゲット(Targets) でアプリを選択します。
- 上部のメニューから 署名と機能(Signing & Capabilities) を選択します。
- 下のサブメニューで 全て(All) が選択されていることを確認します。
- + 記号を選択して機能を追加します。
- Associated Domains を選択します。
- プレフィックス
applinks
を含むAdjustユニバーサルリンクドメインを入力します:example.adj.st
ドメインを使用した例:applinks:example.adj.st
。
カスタムURLスキーム
- Xcodeでアプリプロジェクトを開きます。
- 左側のメニューからプロジェクトを選択します。
- ターゲット(Targets) でアプリを選択します。
- 上部のメニューから 情報(Info) を選択します。
- URLタイプ(URL Types) セクションを展開します。
- 追加(Add) オプション( + )を選択してURLタイプを追加します。
- 次の情報を入力してURLスキームを作成します。
- (ID)Identifier -
$(PRODUCT_BUNDLE_IDENTIFIER)
- URLスキーム(URL Schemes) - カスタムURLスキーム。これはユニークである必要があります。
http
、https
、mailto
などの保護されたスキームは使用しないでください。 - 権限(Role) -
Editor
- (ID)Identifier -
このスキームは、本番用ビルド および デバッグビルドで機能します。
iOSアプリに変更を加える
さまざまなディープリンクシナリオを設定するために、iOSアプリを更新する必要があります。アプリの更新方法は、アプリでシーンを使用するかどうかによって異なります。
アプリでシーンを使用しない
アプリでシーンを使用しない場合、アプリデリゲートのメソッドを更新する必要があります。
ユニバーサルリンク
Adjust SDKの次のメソッドを呼び出すために、アプリデリゲートのapplication(_:continue:restorationHandler:)メソッドを更新します。
ADJLinkResolution.resolveLink
- このメソッドは、マーケティングチームでAdjustのリンク解析ソリューションの使用が必須である場合にのみ呼び出します。resolveUrlSuffixArray
内の要素と一致するドメインをディープリンクで使用する場合、メソッドはディープリンクの解析を試み、解析されたリンクを返します。ディープリンクがこの配列内の要素と一致しない場合、メソッドは元のディープリンクをパススルーするため、全てのディープリンクをこのメソッドにパスすることができます。Adjust.appWillOpen
- このメソッドを呼び出し、Adjustバックエンドにディープリンクを送信し、トラッキングします。AdjustのディープリンクとAdjust以外のディープリンクの両方をこのメソッドにパスすることができます。Adjustバックエンドは、Adjustパラメーターを持たないディープリンクを計測しません。
ユーザーがユニバーサルリンクをクリックすると、iOSでアプリが開き、ディープリンクがapplication(_:continue:restorationHandler:)
に配信されます。これは、ユーザーがアプリを閉じたかどうか、またはバックグラウンドで実行しているのかどうかにかかわらず発生します。
func application(
_ application: UIApplication,
continue userActivity: NSUserActivity,
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void)
-> Bool {
if userActivity.activityType== NSUserActivityTypeBrowsingWeb {
let incomingURL = userActivity.webpageURL
// call the below method to resolve deep link
ADJLinkResolution.resolveLink(
withUrl: incomingURL,
resolveUrlSuffixArray: ["email.example.com","short.example.com"],
callback: { resolvedURL in
// add your code below to handle deep link
// (e.g., open deep link content)
// resolvedURL object contains the deep link
// call the below method to send deep link to Adjust backend
Adjust.appWillOpen(resolvedURL)
})
} else {
return false
}
return true
}
カスタムURLスキーム
カスタムURLスキームのディープリンクを設定することをマーケティングチームから求められた場合、アプリデリゲートのapplication(_:open:options:)
メソッドを更新して、Adjust SDKのAdjust.appWillOpen
メソッドを呼び出します。このメソッドは、ディープリンクをAdjustバックエンドに送信し、トラッキングします。AdjustのディープリンクとAdjust以外のディープリンクの両方をこのメソッドにパスすることができます。Adjustバックエンドは、Adjustパラメーターを持たないディープリンクを計測しません。
ユーザーがカスタムURLスキームのディープリンクをクリックすると、iOSでアプリが開き、ディープリンクがapplication(_:open:options:)
に配信されます。これは、ユーザーがアプリを閉じたかどうか、またはバックグラウンドで実行しているのかどうかにかかわらず発生します。
func application(
_ app: UIApplication,
open incomingURL: URL,
options: [UIApplication.OpenURLOptionsKey: Any] = [:]
) -> Bool {
// add your code below to handle deep link
// (e.g., open deep link content)
// incomingURL object contains the deep link
// call the below method to send deep link to Adjust backend
Adjust.appWillOpen(incomingURL)
return true
}
アプリでシーンを使用
アプリでシーンを使用する場合、シーンデリゲートのメソッドを更新する必要があります。
ユニバーサルリンク
- シーンデリゲートの
scene(_:willConnectTo:options:)
メソッドを更新します。アプリを閉じている状態でユーザーがユニバーサルリンクをクリックすると、iOSでアプリが開き、このメソッドへのディープリンクが配信されます。 - シーンデリゲートの
scene(_:continue:)
メソッドを更新します。バックグラウンドでアプリを実行している状態でユーザーがユニバーサルリンクをクリックすると、iOSでアプリが開き、このメソッドへのディープリンクが配信されます。
上記のメソッドにより、Adjust SDKの次のメソッドが呼び出されます。
ADJLinkResolution.resolveLink
- このメソッドは、マーケティングチームでAdjustのリンク解析ソリューションの使用が必須である場合にのみ呼び出します。resolveUrlSuffixArray
内の要素と一致するドメインをディープリンクで使用する場合、メソッドはディープリンクの解析を試み、解析されたリンクを返します。ディープリンクがこの配列内の要素と一致しない場合、メソッドは元のディープリンクをパススルーするため、全てのディープリンクをこのメソッドにパスすることができます。Adjust.appWillOpen
- このメソッドを呼び出し、Adjustバックエンドにディープリンクを送信し、トラッキングします。AdjustのディープリンクとAdjust以外のディープリンクの両方をこのメソッドにパスすることができます。Adjustバックエンドは、Adjustパラメーターを持たないディープリンクを計測しません。
func scene(
_ scene: UIScene,
willConnectTo session: UISceneSession,
options connectionOptions: UIScene.ConnectionOptions
) {
guard let userActivity = connectionOptions.userActivities.first,
userActivity.activityType== NSUserActivityTypeBrowsingWeb,
let incomingURL = userActivity.webpageURL
else { return }
// call the below method to resolve deep link
ADJLinkResolution.resolveLink(
withUrl: incomingURL,
resolveUrlSuffixArray: ["email.example.com","short.example.com"],
callback: { resolvedURL in
// add your code below to handle deep link
// (e.g., open deep link content)
// resolvedURL object contains the deep link
// call the below method to send deep link to Adjust backend
Adjust.appWillOpen(resolvedURL)
})
}
func scene(
_ scene: UIScene,
continue userActivity: NSUserActivity) {
if userActivity.activityType== NSUserActivityTypeBrowsingWeb {
let incomingURL = userActivity.webpageURL
// call the below method to resolve deep link
ADJLinkResolution.resolveLink(
withUrl: incomingURL,
resolveUrlSuffixArray: ["email.example.com","short.example.com"],
callback: { resolvedURL in
// add your code below to handle deep link
// (e.g., open deep link content)
// resolvedURL object contains the deep link
// call the below method to send deep link to Adjust backend
Adjust.appWillOpen(resolvedURL)
})
}
}
カスタムURLスキーム
- シーンデリゲートの
scene(_:willConnectTo:options:)
メソッドを更新します。アプリを閉じている状態でユーザーがカスタムURLスキームのディープリンクをクリックすると、iOSでアプリが開き、このメソッドへのディープリンクが配信されます。 - シーンデリゲートの
scene(_:openURLContexts:)
メソッドを更新します。バックグラウンドでアプリを実行している状態でユーザーがカスタムURLスキームのディープリンクをクリックすると、iOSでアプリが開き、このメソッドへのディープリンクが配信されます。
これらのメソッドは、Adjust SDKのAdjust.appWillOpen
メソッドを呼び出します。このメソッドは、ディープリンクをAdjustバックエンドに送信し、トラッキングします。AdjustのディープリンクとAdjust以外のディープリンクの両方をこのメソッドにパスすることができます。Adjustバックエンドは、Adjustパラメーターを持たないディープリンクを計測しません。
func scene(
_ scene: UIScene,
openURLContexts URLContexts: Set<uiopenurlcontext>
) {
guard let incomingURL = URLContexts.first?.url else {
return
}
// add your code below to handle deep link
// (e.g., open deep link content)
// incomingURL object contains the deep link
// call the below method to send deep link to Adjust backend
Adjust.appWillOpen(incomingURL)
}