How to Optimize Apps for Apple iOS Search and iOS 9 Universal Links - SMX West, San Jose 2016

Post on 15-Apr-2017

385 views 2 download

transcript

#SMX #32A @goutasteWhat 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 BrowserMarket Share 2/2014http://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 SAFARISIRI

#SMX #32A @goutaste

High-EngagementApp ScreensSuggested in

‘Siri Suggestions’

on iOS 9 Spotlight

#SMX #32A @goutaste

Universal Links 101

#SMX #32A @goutasteSource: 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-ReferenceWATCH: 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.

2Associate 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.ioYozioDeeplink.meHOKO

#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 PublicPublic 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

SCHEMASCHEMA

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-inde

xing-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 Grossmanemily@mobilemoxie.com@goutaste

www.mobilemoxie.com2 Months Free Code: SMXWEST16

facebook.com/mobilemoxie@mobilemoxie

#SMX #32A @goutaste