how to optimize apps for apple ios search and ios 9 universal links by emily grossman
TRANSCRIPT
#SMX #32A @goutaste
What You Need To Know About Apple iOS App Search & Universal Links
How To Optimize Apps for Apple iOS
Search & iOS 9 Universal Links
#SMX #32A @goutaste
#SMX #32A @goutaste
#SMX #32A @goutaste
“75% of Google Search Revenue in 2014 came from ads on iPhones & iPads.”
-‐ Goldman Sachs -‐
#SMX #32A @goutaste
Safari Market Share in Mobile
Worldwide Mobile Browser Market Share 2/2014
http://bit.ly/mobile-browser-share-2014
53.52%
23.84%
4.57%
12.09%
#SMX #32A @goutaste
#SMX #32A @goutaste
“Apple’s App Store commission is now at a run-‐rate of $9 billion, more than its total revenue in the year the
iPod launched.” -‐ Benedict Evans, @BenedictEvans -‐
#SMX #32A @goutaste
APP WEB
http://www.imdb.com/title/tt0362359/
#SMX #32A @goutaste
“One Link to Rule Them All”
#SMX #32A @goutaste
SPOTLIGHT SAFARI SIRI
#SMX #32A @goutaste
High-‐Engagement App Screens Suggested in
‘Siri Suggestions’ on iOS 9 Spotlight
#SMX #32A @goutaste
Universal Links 101
#SMX #32A @goutaste Source: https://dev.branch.io/recipes/branch_universal_links/ios/#which-‐appsbrowsers-‐support-‐universal-‐links
Universal Links Are Not 100% “Universal” Yet “Conditionally” means issues like…
• Will NOT work when pasted into URL field
• Will work with a <a href=“..”> click across domains (ie Google à IMDB)
• Will NOT work with a <a href=“…”> on the same domain (ie IMDB à IMDB)
#SMX #32A @goutaste
Google App Indexing for iOS Apps Requires Universal Links
Source: bit.ly/GoogleAppIndexing-‐iOS
#SMX #32A @goutaste
https://subdomain.domain.com/path/subpath/
Scheme “http” or “https” Domain or Host Name Path or Prefix
Anatomy of a Universal Link:
#SMX #32A @goutaste
Requirements:
• A registered domain • SSL access to your domain • Ability to upload a JSON file to your domain
#SMX #32A @goutaste
1
• Modify your application delegate
• Adopt an entitlement in Xcode that lists each domain associated with your app
READ: http://bit.ly/ios9universallinks http://bit.ly/UIApplicationDelegate-‐Reference WATCH: http://bit.ly/appleuniversallinks
Prepare App
#SMX #32A @goutaste
{ "applinks": { "apps": [], "details": { »ABC0123.com.domain.App": { "paths":[ "*" ] } } }}
Create an apple-app-site-association file for each associated domain with the content your app supports and host it at the root level.
NOTE: The association file must be hosted on a domain that supports HTTPS/TLS, even if the HTTP deep links are not themselves served via HTTPS.
2 Associate App With Website
#SMX #32A @goutaste
{ "applinks": { "apps": [], "details": { »ABC0123.com.domain.App": { "paths":[
”/folder/subfolder/”,”/folder2/subfolder2/*”,
] } } }}
Modify apple-app-site-association file to specify only the content that is parallel between the app and the website.
3 Control Paths
#SMX #32A @goutaste
Universal Links
Services:
1-‐click and
you’re done
Branch.io
Yozio
Deeplink.me
HOKO
#SMX #32A @goutaste
Apple Search App Indexing
#SMX #32A @goutaste
CoreSpotlight NSUserActivity Web Markup
#SMX #32A @goutaste
Core Spotlight NSUserActivity Web Markup
Used for… Indexing public app screens that mirror content on the web
DOES require corresponding web content
Add code to WEB
Public Cloud Index
Used for… Indexing app screens that contain private/ personal data
Does NOT require corresponding web content
Add code to APP
Private Device Index
Used for… Indexing private and public navigation points in the app
Does NOT require corresponding web content
Add code to APP
Private Device Index and/ or Public Cloud Index
Private Public
#SMX #32A @goutaste
TYPE OF SCREEN API TO USE
Content that the user views NSUserActivity
Frequently used navigation points and features NSUserActivity
Content created or curated by the user, such as photos or a list of favorites Core Spotlight
New messages, content, or items that arrive on the device Core Spotlight
Content that lives in both your app and your website Web Markup
#SMX #32A @goutaste
#SMX #32A @goutaste
Travel App: Reservation Confirmations Screen
?
#SMX #32A @goutaste
Core Spotlight!
#SMX #32A @goutaste
Travel App: Flight results for previously-‐searched
travel dates
?
#SMX #32A @goutaste
NSUserActivity! Bonus Points: Private
#SMX #32A @goutaste
Travel App: Hotel Info Screen
?
#SMX #32A @goutaste
Web Markup! Bonus points: with schema on
ratings & prices
#SMX #32A @goutaste
NSUserActivity
#SMX #32A @goutaste
Private or Public Public Only
Search results meta data for display and rankings
‘Canonical’
More info here: bit.ly/NSUserActivity
NSUserActivity
#SMX #32A @goutaste
CoreSpotlight NSUserActivity Web Markup NSUserActivity
var eligibleForSearch var eligibleForPublicIndexing
Private/ Device Index
Public/ Cloud Index
PRIVATE APP SCREEN PUBLIC APP SCREEN
#SMX #32A @goutaste
CoreSpotlight
#SMX #32A @goutaste
Search results meta data for
display and rankings
More info here: bit.ly/corespotlight
CoreSpotlight
#SMX #32A @goutaste
Web Markup
#SMX #32A @goutaste
Web Markup
#SMX #32A @goutaste
Twitter Cards AppLinks Smart App Banners
Web Markup
#SMX #32A @goutaste
Twitter Cards AppLinks Smart App Banners
Web Markup
#SMX #32A @goutaste
Twitter Cards AppLinks Smart App Banners
Web Markup
#SMX #32A @goutaste
Web Markup – Visual Presentation
SCHEMA
SCHEMA
SCHEMA SCHEMA
OG TAG
#SMX #32A @goutaste
bit.ly/applesearchvalidator
#SMX #32A @goutaste
bit.ly/universal-‐links-‐tool
#SMX #32A @goutaste
Further Reading
• Universal Links: • https://developer.apple.com/library/ios/documentation/General/Conceptual/AppSearch/
UniversalLinks.html
• https://developers.google.com/app-‐indexing/ios/app
• https://blog.branch.io/how-‐to-‐setup-‐universal-‐links-‐to-‐deep-‐link-‐on-‐apple-‐ios-‐9
• https://blog.branch.io/best-‐practices-‐for-‐ios-‐9-‐universal-‐links
• http://support.hokolinks.com/ios/universal-‐links
• https://dev.branch.io/recipes/branch_universal_links/ios/#which-‐appsbrowsers-‐support-‐universal-‐links
• https://blog.branch.io/ios-‐9.2-‐deep-‐linking-‐guide-‐transitioning-‐to-‐universal-‐links
#SMX #32A @goutaste
Further Reading • Apple App Indexing: • http://searchengineland.com/app-‐indexing-‐new-‐frontier-‐seo-‐apple-‐search-‐ios-‐app-‐indexing-‐223880
• https://developer.apple.com/library/ios/documentation/General/Conceptual/AppSearch/Activities.html#//apple_ref/doc/uid/TP40016308-‐CH6-‐SW1
• https://developer.apple.com/library/ios/documentation/Foundation/Reference/NSUserActivity_Class/
• https://developer.apple.com/library/ios/documentation/General/Conceptual/AppSearch/AppContent.html#//apple_ref/doc/uid/TP40016308-‐CH7-‐SW1
• https://developer.apple.com/library/ios/documentation/CoreSpotlight/Reference/CoreSpotlight_Framework/
• https://developer.apple.com/library/prerelease/ios/documentation/CoreSpotlight/Reference/CSSearchableItemAttributeSet_Class/index.html#//apple_ref/occ/instp/CSSearchableItemAttributeSet/title
• https://developer.apple.com/library/ios/documentation/General/Conceptual/AppSearch/WebContent.html#//apple_ref/doc/uid/TP40016308-‐CH8-‐SW1
#SMX #32A @goutaste
Emily Grossman [email protected] @goutaste www.mobilemoxie.com 2 Months Free Code: SMXWEST16 facebook.com/mobilemoxie @mobilemoxie
#SMX #32A @goutaste SEE YOU AT THE NEXT #SMX!
THANK YOU!