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

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

与其他方法相比,使用 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

发表评论

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