Deferred deep linking iOS dengan Private Relay iOS
Dengan peluncuran 1OS 15, Apple memberi pengguna iCloud+ fitur yang disebut Private Relay, yang memberi mereka opsi untuk mengenkripsi lalu lintas penjelajahan web dan menyembunyikan lokasi persisnya, alamat IP, dan konten lalu lintas penjelajahan mereka. Jika pengguna memilih Relay Pribadi, ini dapat mengganggu atribusi dan deferred deep linking. Artinya, begitu pengguna baru tanpa aplikasi masuk ke App Store, dan menginstal serta meluncurkan aplikasi, Private Relay dapat mencegah mereka dikirim ke halaman tertentu di aplikasi.
Untuk memastikan bahwa deferred deep linking (DDL) tetap berfungsi sebagaimana mestinya, Anda harus menerapkan salah satu solusi AppsFlyer berikut:
- [Disarankan] Solusi berbasis App Clip: Buat App Clip yang memberi Anda data atribusi pengguna, dan mengarahkan pengguna ke pengalaman App Clip yang dipersonalisasi mirip dengan apa yang Anda inginkan dicapai oleh DDL. App clip juga dapat berisi alur untuk mengarahkan pengguna dari App Clip ke aplikasi lengkap Anda.
- Solusi berbasis clipboard: Buat halaman arahan web yang menyalin data deferred deep linking dari URL dan mengarahkan pengguna ke aplikasi dengan benar. Catatan: Solusi ini tidak memengaruhi atribusi.
Solusi berbasis App Clip
Prasyarat: AppsFlyer SDK V6.4.0+
Untuk menyiapkan solusi DDL berbasis App Clip:
- Ikuti instruksi Apple dan kembangkan App Clip yang menyediakan perjalanan pengguna yang diinginkan.
- Integrasikan AppsFlyer SDK untuk App Clips , termasuk atribusi App Clip-to-full app .
- Di Klip Aplikasi
sceneDelegate
:- Ganti
scene
continue userActivity
dengan fungsi berikut ini:
- Ganti
func scene(_ scene: UIScene, continue userActivity: NSUserActivity) {
// Must for AppsFlyer attrib
AppsFlyerLib.shared().continue(userActivity, restorationHandler: nil)
//Get the invocation URL from the userActivity in order to add it to the shared user default
guard userActivity.activityType == NSUserActivityTypeBrowsingWeb,
let invocationURL = userActivity.webpageURL else {
return
}
addDlUrlToSharedUserDefaults(invocationURL)
}
⇲ Tautan Github Swift
- Tambahkan metode berikut:
func addDlUrlToSharedUserDefaults(_ url: URL){
guard let sharedUserDefaults = UserDefaults(suiteName: "group.<your_app>.appClipToFullApp") else {
return
}
//Add invocation URL to the app group
sharedUserDefaults.set(url, forKey: "dl_url")
//Enable sending events
sharedUserDefaults.set(true, forKey: "AppsFlyerReadyToSendEvents")
}
⇲ Tautan Github Swift
- Dalam aplikasi lengkap:
- In
appDelegate
, tambahkan metode berikut ini:
- In
func deepLinkFromAppClip() {
guard let sharedUserDefaults = UserDefaults(suiteName: "group.<your_app>.appClipToFullApp"),
let dlUrl = sharedUserDefaults.url(forKey: "dl_url")
else {
NSLog("Could not find the App Group or the deep link URL from the app clip")
return
}
AppsFlyerLib.shared().performOnAppAttribution(with: dlUrl)
sharedUserDefaults.removeObject(forKey: "dl_url")
}
⇲ Tautan Github Swift
- Di akhir dari
application didFinishLaunchingWithOptions launchOptions
metode, panggilandeepLinkFromAppClip
:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// ...
deepLinkFromAppClip()
return true
}
⇲ Tautan Github Swift
Solusi berbasis Clipboard
Untuk mengatur solusi DDL berbasis clipboard:
- Masukkan kode berikut ini di
appDelegate
.
NSString *pasteboardUrl = [[UIPasteboard generalPasteboard] string];
NSString *checkParameter = @"cp_url=true";
if ([pasteboardUrl containsString:checkParameter]) {
[[AppsFlyerLib shared] performOnAppAttributionWithURL:[NSURL URLWithString:pasteboardUrl]];
}
var pasteboardUrl = UIPasteboard.general.string ?? ""
let checkParameter = "cp_url=true"
if pasteboardUrl.contains(checkParameter) {
AppsFlyerLib.shared().performOnAppAttribution(with: URL(string: pasteboardUrl))
}
- Menerapkan kode yang merekatkan data deferred deep link di URL dari clipboard. Ini bukan bagian dari SDK AppsFlyer.
Diperbarui sekitar 1 tahun yang lalu