how to setup app indexation
TRANSCRIPT
How to Setup App Indexation
Search is fundamentally shifting
Search as an Interface
Visits to app, not websites
Takes action on your behalf
Hands free UI (wearables)
Solutions, not web pages
Search examples: http://blog.tackmobile.com/article/android-wear-gui-elements/
Creating Indexable Apps
App Deep Links
android-app://{package_id}/{scheme}/{host_path}
Ø package_id - app ID in Play store Ø scheme - http or custom scheme Ø host_path - specific content within app
Intent Filter: AndroidManifest.xml
Defines the structure of your app URIs
<activity android:name="com.example.android.GizmosActivity" android:label="@string/title_gizmos" > <intent-filter android:label="@string/filter_title_viewgizmos"> <action android:name="android.intent.action.VIEW" /> <!-- Accepts URIs that begin with "http://example.com/gizmos” --> <data android:scheme="http" android:host="example.com" android:pathPrefix="/gizmos" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> </intent-filter> </activity>
Testing Deep Links
Will launch app deep link
Verify site with Google Play Developer Console &
Webmaster Tools
Connect in Google Play Console
Verify the app’s website
Annotate site for app URI discovery via crawl
Three Ways to Expose App URI
<html> <head> ... <link rel="alternate" href="android-app://com.example.android/http/example.com/gizmos" /> ... </head> <body> … </body>
Rel=“alternate”
ViewAction
XML Sitemap
Three Ways to Expose App URI
<script type="application/ld+json"> { "@context": "http://schema.org", "@type": "WebPage", "@id": "http://example.com/gizmos", "potentialAction": { "@type": "ViewAction", "target": "android-app://com.example.android/http/example.com/gizmos" } } </script>
Rel=“alternate”
ViewAction
XML Sitemap
Three Ways to Expose App URI
<?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://example.com/gizmos</loc> <xhtml:link rel="alternate" href="android-app://com.example.android/example/gizmos" /> </url> ... </urlset>
Rel=“alternate”
ViewAction
XML Sitemap
Very similar to a mobile separate-site setup
Launch App From Search
App launch can be default behavior…
Clicking this launches the app!
Manage indexing with robots noindex in app
Indexing Control for Apps
<?xml version="1.0" encoding="utf-8"?> <search-engine xmlns:android="http://schemas.android.com/apk/res/android"> <noindex uri="http://example.com/gizmos/hidden_uri"/> <noindex uriPrefix="http://example.com/gizmos/hidden_prefix"/> <noindex uri="gizmos://hidden_path"/> <noindex uriPrefix="gizmos://hidden_prefix"/> </search-engine>
App Resource Directory
Android Manifest
Indexing Control for Apps
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.android.Gizmos"> <application> <activity android:name="com.example.android.GizmosActivity" android:label="@string/title_gizmos" > <intent-filter android:label="@string/filter_title_viewgizmos"> <action android:name="android.intent.action.VIEW"/> ... </activity> <meta-data android:name="search-engine" android:resource="@xml/noindex"/> </application> <uses-permission android:name="android.permission.INTERNET"/> </manifest>
App Resource Directory
Android Manifest
Push to Google with App Indexing API
Autocomplete App Suggestions
Search as an interface with app actions
Building an Action Graph
App Indexing Knowledge Graph App Actions + =
Leverage Schema.org Actions
<script type="application/ld+json"> { "@context": "http://schema.org", "@type": "MusicGroup", "name": "Weezer", "potentialAction": { "@type": "ListenAction", "target": "android-app://com.spotify.music/http/we.../listen" } } </script>
App Actions in Search
What about iOS?
Close to Release?
iOS app indexing in the wild
Validates in testing tool
Bing App Linking
Launch Windows Apps From Bing
Image: http://www.bing.com/webmaster/help/app-linking-09399b4b
Bing App Linking
1. Copy Windows (Phone) Store URL 2. Go to Bing Webmaster Tools to
configured App Linking 3. In Configure My Site > Connected Pages
paste URL
4. Verify
Schema Markup
Enable Deep Linking
Register App
Link Site to App
Bing App Linking <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "WebPage", "operation": { "@type": "ViewAction", "actionHandler": [ { "@type": "WindowsActionHandler", "applicationId": "4db19603-c4e0-4112-895e-46981d785682", "packageFamilyName": "Contoso.Contoso_54hhd3ev8bvz9", "arguments": "cityId=1&restaurantId=5609", "minVersion": "2.2.0.12" },{ "@type": "WindowsPhoneActionHandler", "applicationId": "08f1f665-222d-422c-9f99-bc3e0dd34433", "minVersion": "2.2.0.11", "arguments": "cityId=1&restaurantId=5609" } ] } } </script>
Schema Markup
Enable Deep Linking
Register App
Link Site to App
Bing App Linking
You can create deep links from web search results to your app by interpreting launch arguments. Different for Windows Runtime vs. Silverlight Windows.
Schema Markup
Enable Deep Linking
Register App
Link Site to App
Bing App Linking
Use Bing App Linking Test Tool (.exe)
Schema Markup
Enable Deep Linking
Register App
Link Site to App
App Indexing Resources
Everything You Need to Know About Mobile App Search: http://moz.com/blog/mobile-app-search Google Developers: App Indexing: https://developers.google.com/app-indexing/ App Indexing Code Lab: http://search-codelabs.appspot.com/codelabs/app-indexing Bing App Linking: http://www.bing.com/dev/en-us/applink
People to Follow
Lawrence Chang, Google: https://twitter.com/lawrence_chang Jarek Wilkiewicz, Google: https://twitter.com/wjarek Shawn Simister, Google: https://twitter.com/narphorium
Thanks!