Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

60
#SMX #23C @goutaste Emily Grossman, MobileMoxie Beyond The Web: Why App Deep Linking Is The Next Big Thing

Transcript of Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

Page 1: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

Emily Grossman, MobileMoxie

Beyond The Web: Why App Deep Linking Is The Next Big Thing

Page 2: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

Meta-data can provide a “preview” of the type of content in the app

You don’t know what’s IN the app until you download it

App Store search is heavy on brand and head terms vs. long tail

Page 3: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

“Google’s mission is to organize the world’s information and make it universally accessible

and useful.”- Google’s initial mission statement -

Page 4: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

Page 5: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

http://www.tripadvisor.com/Hotel_Review-g33388-d83020-Reviews-The_Curtis_Denver_a_DoubleTree_by_Hilton_Hotel-Denver_Colorado.html

tripadvisor://Hotel_Review-g33388-d83020-Reviews-The_Curtis_Denver_a_DoubleTree_by_Hilton_Hotel-Denver_Colorado.html

Page 6: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

Google App Indexing

bit.ly/appindexinggoogle

Page 7: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

Page 8: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

Page 9: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

AUG

11

AUG

125

Page 10: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

AUG

11

AUG

129

Page 11: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

Page 12: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

Google App Indexing: ANDROID

Page 13: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

Android – Intent Filters

Custom URL Scheme

HTTP URL Scheme

Create Intent Filters:

Page 14: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

Android – Intent filters

Intent Filters need:

<action>

<data> android:schemeandroid:path

<category>

Page 15: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

Android App Indexing API

Deep Link to previously-viewed ‘Calafia Café’ screen in the Zagat app

Page 16: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

Android App Indexing API

...public class MainActivity extends Activity {

  static final Uri APP_URI = Uri.parse("android-app://com.example.android.recipes/http/recipe-app.com/recipes");  static final Uri WEB_URL = Uri.parse("http://recipe-app.com/recipes/");  private GoogleApiClient mClient;    ...   }

  @Override  public void onStop() {    ...    // Call end() and disconnect the client    String title = "App Indexing API Title";    Action viewAction = Action.newAction(Action.TYPE_VIEW, title, WEB_URL, APP_URI);    AppIndex.AppIndexApi.end(mClient, viewAction);    mClient.disconnect();    ... Full code sample here: bit.ly/appindexingAPIcode

Page 17: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

Android – Robots.txt (Required if you don’t use the API)

Update App’s Robots.txt:

User-Agent: GooglebotAllow: /

Page 18: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

Custom URL Schemes: Web Markup

Page 19: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

Android

Deep Link URL Format:

android-app://com.travel_app/travel_app/travel-app.com/hotels/curtis-hotel-denver

Protocol PackageID Scheme(custom)

Host Path

Page 20: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

Rel=alternate XML Sitemaps Schema

<head> ... <link rel="alternate" href="android-app://com.travelapp.android/http/travelapp.com/examplescreen" /> ...</head>

<head> ... <link rel="alternate" href="android-app://com.travelapp.android/travelapp/examplescreen" /> <link rel="alternate" href="ios-app://123456/travelapp/examplescreen" /> ...</head>

Page 21: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

Rel=alternate XML Sitemaps Schema

<?xml version="1.0" encoding="UTF-8" ?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url> <loc>http://travelwebsite.com/examplepage</loc> <xhtml:link rel="alternate" href="android-app://com.travelapp.android/travelapp/examplescreen" /> <xhtml:link rel="alternate" href="ios-app://123456/travelapp/examplescreen" /></url> <xhtml:link rel="alternate" href="android-app://com.travelapp.android/http/travelapp.com/examplescreen" />...</urlset>

Page 22: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

Rel=alternate SchemaXML Sitemaps

<script type="application/ld+json">{ "@context": "http://schema.org", "@type": "WebPage", "@id": "http://travelwebsite.com/examplepage", "potentialAction": { "@type": "ViewAction", "target": "android-app://com.travelapp.android/http/travelapp.com/examplescreen" }}</script>

Page 23: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

Android – Google Play Developer Console/ Google Search Console Sync

Page 24: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

Google App Indexing: iOS

Page 25: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

The Good News Is…

Page 26: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

The Bad News Is…

Page 27: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

iOS – Support Universal Links

https://subdomain.domain.com/path/subpath/

Scheme“http” or “https”

Domain or Host Name Path or Prefix

Anatomy of a Universal Link:

Page 28: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

iOS – Support Universal Links

Requirements:• A registered domain• SSL access to your domain• Ability to upload a JSON file to your domain

Page 29: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

iOS – Support Universal Links

1 Get Your App Ready

• 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

Page 30: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

iOS – Support Universal Links

2 Get Your Server Ready

• 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.

{ "applinks": { "apps": [], "details": {  »ABC0123.com.domain.App": { "paths":[ "*" ] } } }}

Page 31: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

iOS – Support Universal Links

2

{ "applinks": { "apps": [], "details": {  »ABC0123.com.domain.App": { "paths":[

”/folder/subfolder/”,”/folder2/subfolder2/*”,

] } } }}

Get Your Server Ready

• 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.

Page 32: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

iOS – Cocoapods Support

Page 33: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

iOS – Cocoapods Support

Page 34: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

iOS – Cocoapods Support

Page 35: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

iOS – Cocoapods Support

1. Use most up-to-date version of CocoaPods

2. Add ‘GoogleAppIndexing’ pod to Podfile

3. Save and Install Pod

4. Import GoogleAppIndexing

5. Register app

pod 'GoogleAppIndexing'

pod install

#import <GoogleAppIndexing/GoogleAppIndexing.h>

[[GSDAppIndexing sharedInstance] registerApp:your iTunes ID];

Page 36: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

Custom URL Schemes: Web Markup

Page 37: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutasteImage attribution: http://k9s4cops.org/coming-soon-the-pack/

iOS – Testing

Page 38: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

Apple Search App Indexing

Page 39: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @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 -

Page 40: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

Apple Search SPOTLIGHT SAFARISIRI

Page 41: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

High-EngagementApp ScreensSuggested in

‘Siri Suggestions’ on iOS 9 Spotlight

Page 42: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

DEVICE INDEX(PRIVATE)

CLOUD INDEX(PUBLIC)

Apple Search Sources from Two Indexes

Page 43: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

APPLE SEARCH APP INDEXING

CoreSpotlight NSUserActivity Web Markup

Page 44: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

Apple Search App Indexing Option 1:

NSUserActivity

Page 45: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @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

Page 46: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

NSUserActivity

Private or PublicPublic Only

Search results meta data for

display and rankings

‘Canonical’More info here: bit.ly/NSUserActivity

Page 47: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

CoreSpotlight NSUserActivity Web MarkupNSUserActivity

with var eligibleForSearch with var eligibleForPublicIndexing

Private/Device Index Public/ Cloud Index

PRIVATE APP SCREEN PUBLIC APP SCREEN

Page 48: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

Apple Search App Indexing Option 2:

Core Spotlight

Page 49: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @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

Page 50: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

CoreSpotlight

Search results meta data for

display and rankings

More info here: bit.ly/corespotlight

Page 51: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

Apple Search App Indexing Option 3:

Web Markup

Page 52: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

CoreSpotlight NSUserActivity Web MarkupNSUserActivity

with var eligibleForSearch with var eligibleForPublicIndexing

Private/Device Index Public/ Cloud Index

PRIVATE APP SCREEN PUBLIC APP SCREEN

Page 53: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @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

Page 54: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

Web Markup

Page 55: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

Web Markup

Twitter Cards AppLinks Smart App Banners

Page 56: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

Web Markup

Twitter Cards AppLinks Smart App Banners

Page 57: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

Web Markup

Twitter Cards AppLinks Smart App Banners

Page 58: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

Web Markup – Meta Data (Schema & Open Graph)

Page 59: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

http://bit.ly/applesearchvalidator

Page 60: Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015

#SMX #23C @goutaste

THANK YOU!

SEE YOU @SMX WEST

SAN JOSE, CAMARCH 1-3, 2016