Deferred Deep Linking avec Private Relay sous iOS
Avec le lancement de IOS 15, Apple fournit aux utilisateurs iCloud+ une fonctionnalité appelée Private Relay, qui leur permet de chiffrer leur trafic de navigation web et de masquer leur emplacement exact, leur adresse IP et le contenu de leur trafic de navigation. Si les utilisateurs acceptent Private Relay, cela peut interférer avec l'attribution et le deep linking différé. En d'autres termes, lorsqu'un nouvel utilisateur se rend dans l'App Store et installe puis lance l'app, Private Relay pourrait l'empêcher d'être envoyé vers une page spécifique de l'app.
Pour garantir le fonctionnement du deferred deep linking (DDL), vous devez mettre en œuvre l'une des solutions AppsFlyer suivantes :
- [Recommandé] Solution basée sur les clips d'app : créez un clip d'app qui vous donne des données d'attribution d'utilisateur et dirige les utilisateurs vers une expérience de clip d'app personnalisée similaire à celle que vous souhaitez obtenir avec le deep linking différé. Le clip d'app peut également inclure un flux pour diriger les utilisateurs de votre clip vers votre app complète.
- Solution basée sur le presse-papiers : créez une page d'accueil web qui copie les données de deep linking différé de l'URL et redirige correctement l'utilisateur vers l'app. Remarque : cette solution ne facilite pas l'attribution.
Solution basée sur App Clip
Conditions préalables : SDK AppsFlyer V6.4.0 et +
Pour configurer la solution DDL basée sur App Clip :
- Suivez les instructions d'Apple et mettez au point un App Clip qui offre le parcours utilisateur souhaité.
- Intégrez le SDK AppsFlyer pour les App Clips, ce qui inclut l'attribution des App Clips en app complète.
- Dans le clip de l'app
sceneDelegate
:- Remplacez
scene
continue userActivity
par la fonction suivante :
- Remplacez
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)
}
⇲ Liens Github : Swift
- Ajoutez la méthode suivante :
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")
}
⇲ Liens Github : Swift
- Dans l'app complète :
- In
appDelegate
ajoutez la méthode suivante :
- 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")
}
⇲ Liens Github : Swift
- Au bout de
application didFinishLaunchingWithOptions launchOptions
comme méthode, appelezdeepLinkFromAppClip
:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// ...
deepLinkFromAppClip()
return true
}
⇲ Liens Github : Swift
Solution basée sur le presse-papiers
Pour configurer la solution basée sur le presse-papiers :
- Saisissez le code suivant dans
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))
}
- Implémenter un code qui colle les données du deferred deep link dans l'URL du presse-papiers. Cela ne fait pas partie du SDK AppsFlyer.
Mis(e) à jour il y a 11 mois