使用 Smart App Banners 提升应用安装体验

从 iOS 6 开始,Safari 有了 Smart App Banner 这项全新的特性。有了这项新特性,网站能通过标准化的方法,更好的引导用户从网页转向 App Store 下载应用。

smartbanner_2x

与其他方法相比,使用 Smart App Banner 能极大地提升用户的浏览体验。Smart App Banner 在所有应用到这项技术的网站上的外观都保持了统一的风格。这种风格有助于提升用户的信任感,当用户看到 Smart App Banner 时,将确信他们点击按钮后会跳转到 App Store,而不是什么其他的广告网站。与那些打断浏览体验的全屏广告相比,用户更容易接受 Smart App Banner 这种顶部的广告。同时,用户能够通过 Smart App Banner 上明显的关闭按钮,轻松的关掉这个提示;当用户以后再访问这个页面时,Smart App Banner 也不会再出现。

Smart App Banner 还很智能。如果用户的设备上已经安装了对应的应用,点击广告时,将直接打开该应用;反之,Smart App Banner 将跳转到该应用在 App Store 的下载页面。如果用户在下载期间返回 Safari 继续浏览网页内容,Smart App Banner 上将会有一个进度条显示下载进度;当下载并安装完成式,“查看”按钮将自动变为“打开”按钮,用户点击打开应用后,用户在网站上的浏览进度也可以传递到应用中。

如果用户的设备上不支持安装该应用,或者该应用没有在用户所在国家或地区的应用市场上架,Smart App Banner 将不会显示出来。

在网站上部署 Smart App Banner

在网页头部添加以下代码,就可以添加 Smart App Banner:

<meta name="apple-itunes-app" content="app-id=myAppStoreID, affiliate-data=myAffiliateData, app-argument=myURL">

content 属性中,可以添加三个参数,参数之间以逗号分隔。

app-id(必填):App 的唯一标识符,可以在 iTunes Link Maker 网站上查询到。正确的应用ID应该是一串9位数字。

affiliate-data(选填):iTunes Affiliate 推广字符串。可以在这里查看 iTunes Affiliate 的相关信息:http://www.apple.com/itunes/affiliates/

app-argument(选填):为应用提供上下文环境。如果配置了此选项,当用户下载并安装了应用后,除了能能从网页上打开应用外,还能直接跳转到应用中对应的页面。通常来说,这样做有很多好处:

  • 如果用户正在浏览网页内容,通过此参数能够在应用中打开同样的内容。
  • 如果用户是在网页上执行搜索,通过此参数,能将搜索关键词传递到应用中,用户无需再重新输入搜索词。
  • 如果用户正在创作内容,通过此参数能够将会话 ID 传递到应用中,继而可以同步用户的会话状态,用户能够无痛的恢复他的创作进度。

通过服务端程序,能够动态地为每个页面创建一个符合 URL 规则的 app-argument

注意:Smart App Banner 不支持在框架中显示,也不支持在 iOS 模拟器中显示。

向应用提供导航上下文

app delegate 类中实现 application:openURL:sourceApplication:annotation: 方法,当 App 从 URL 启动时,执行此方法。另外,还需要实现 URL 处理的逻辑。在网页上设置的 app-argument 参数可以通过 NSURL 对象获取。

下面的例子展现了如何从网页向应用传递数据。如果传递的 URL 中有 /profile 字符串,应用会将 URL 中的 query string 传递给 profile view controller。

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    // in this example, the URL from which the user came is http://example.com/profile/?12345
    // determine if the user was viewing a profile
    if ([[url path] isEqualToString:@"/profile"]) {
        // switch to profile view controller
        [self.tabBarController setSelectedViewController:profileViewController];
        // pull the profile id number found in the query string
        NSString *profileID = [url query];
        // pass profileID to profile view controller
        [profileViewController loadProfile:profileID];
    }
    return YES;
}

https://developer.apple.com/library/ios/documentation/AppleApplications/Reference/SafariWebContent/PromotingAppswithAppBanners/PromotingAppswithAppBanners.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注