iOS Deferred-Deep-Linking of App

2019-01-05  本文已影响9人  派大星的博客

1、Wiki定义:

Deferred deep linking is one aspect of mobile deep linking. It describes the principle of deep linking into an app that is not yet installed. In this case, deep linking will be "deferred" until the application will be installed by the user. This implies that clicking (or otherwise invoking) the deep link causes:

  1. An app store to open (Google Play/IOS or Windows App Store depending on the user's device) to enable the user to install the app
  2. Once the app is installed, the link is invoked with its original URL and parameters so that the newly installed app can handle the invocation.

A common use case is to drive installs; linking to functionality in a not-yet-installed app provides the user with an incentive to install it.

Deferred deep linking allows mobile developers and mobile marketers to deliver a seamlessly and automated user experience, whether the app was previously installed or not, improving conversion rates and user retention.


延迟深度链接是[移动深层链接]的一个方面。它描述了深度链接到尚未安装的应用程序的原理。在这种情况下,深度链接将“延迟”,直到用户安装应用程序。这意味着单击(或以其他方式调用)深层链接会导致:

1.要打开的应用商店(Google Play / IOS或Windows App Store,具体取决于用户的设备),以便用户安装应用
2.安装应用程序后,将使用其原始URL和参数调用链接,以便新安装的应用程序可以处理调用。

一个常见的用例是驱动安装;链接到尚未安装的应用程序中的功能为用户提供了安装它的动力。

延迟深度链接允许移动开发人员和移动营销人员提供无缝和自动化的用户体验,无论该应用程序之前是否已安装,都可提高转换率和用户保留率。


2、通过AppsFlyer实现Deferred-Deep-Linking:

OneLink™ 深度链接指南 - OneLink Deep Linking Guide
延迟深度链接 - 获取转化数据 - Deferred-Deep-Linking-Getting-the-Conversion-Data

文档写的很好,有一些英文的部分,但是阅读难度不大,图文并茂!


3、回调方法:

-(void)onConversionDataReceived:(NSDictionary*) installData {
    //Handle Conversion Data (Deferred Deep Link)
    NSNumber* firstLaunch = [installData objectForKey:@"is_first_launch"];
    if (firstLaunch.boolValue) {
        NSString *url = [installData objectForKey:@"af_dp"];
        NSString *realUrl = [url adjUrlDecode];
        NSURL *djUrl = [NSURL URLWithString:realUrl];
        if (djUrl != nil) {
            [AppCall handleOpenURL: djUrl sourceApplication:nil];
        }
    }
}

-(void)onConversionDataRequestFailure:(NSError *) error {
    NSLog(@"%@",error);
}


- (void) onAppOpenAttribution:(NSDictionary*) attributionData {
    //Handle Deep Link
    NSString *link = [attributionData objectForKey:@"link"];
    NSURL *linkUrl = [NSURL URLWithString:link];
    NSDictionary *dict = [DJAppCall dictionaryWithQuery: linkUrl.query];
    NSString *url = [dict objectForKey:@"af_dp"];
    NSString *realUrl = [url adjUrlDecode];
    NSURL *djUrl = [NSURL URLWithString:realUrl];
    if (djUrl != nil) {
        [AppCall handleOpenURL: djUrl sourceApplication:nil];
    }
}

- (void) onAppOpenAttributionFailure:(NSError *)error {
    NSLog(@"%@",error);
}

4、 值得注意的一些地方:

上一篇 下一篇

猜你喜欢

热点阅读