SlideShare una empresa de Scribd logo
1 de 62
Descargar para leer sin conexión
Justin Briggs, Briggsby
How to Setup App Indexing
for iOS & Android
Justin Briggs
Founder, Briggsby
Justin@Briggsby.com
@JustinRBriggs
Say Hello!
Welcome to the future of search
Turn of the Tide
Mobile Moment
Turn of the Tide
Mobile App
Moment
Radically changing role of search
Current Discovery Model
App
App
App
Content
Action
Content
Action
Content
Action
Search
New Discovery Model
App
App
App
Content
Action
Content
Action
Content
Action
Search
Deep links & app indexing are
making app content accessible
Drive App Engagement
App launch
can be default
behavior
Clicking this
launches the
app!
This is supported by Google & Bing
For both iOS & Android
(And Windows Phones on Bing)
15% of Google searches on
Android return deep links to
apps through App Indexing
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/
Evolution of technical SEO
App Deep Links
android-app://{package_id}/{scheme}/{host_path}
ios-app://{itunes_id}/{scheme}/{host_path}
 package_id - app ID in Play Store or iTunes App Store
 scheme - http or custom scheme
 host_path - specific content within app
App Indexing for Android apps
(Google)
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>
Mange the Intent
Passes the incoming Intent
to a helper method
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_gizmos);
onNewIntent(getIntent());
}
Mange the Intent
Verify the deep link and
display the gizmos content
protected void onNewIntent(Intent intent) {
String action = intent.getAction();
String data = intent.getDataString();
if (Intent.ACTION_VIEW.equals(action) && data != null) {
String gizmosId = data.substring(data.lastIndexOf("/") + 1);
Uri contentUri =
GizmosContentProvider.CONTENT_URI.buildUpon()
.appendPath(gizmosId).build();
showGizmos(contentUri);
}
App Indexing for iOS Apps
(Google)
Custom URL Scheme in Info.plist
Define {scheme} and gsd-{scheme}
Setup Inter-App Communication
openURL: method launches the app
with the registered scheme and
passes your URL to it
Setup Google’s SDK
This is required to have iOS deep links
#1 Install CocaPods
#2 Add GoogleAppIndexing Pod
#3 Add GoogleAppIndexing post to your Xcode project
#4 Update your code to use SDK and to make API call to handle
back button
Express Interest to Google
https://developers.google.com/app-indexing/ios/interest-form
iOS App Indexing is a limited release
Keep it “First Click Free”
Allow the back button
Don’t block crawl in robots.txt
Test With Android Debug Bridge
This will kick open “page” on
mobile device from console
adb shell am start -a android.intent.action.VIEW -d
"http://example.com/gizmos" com.example.android
Test With Xcrun Tool
This will kick open “page” on
mobile device from console
xcrun simctl openurl YOUR-DEVICE-UUID gsd-
gizmos://123456/?google-deep-
link=gizmos%3A%2F%2Fabcd&google-callback-
url=googleapp%3A%2F%2F&google-min-sdk-
version=1.0.0
Test In The Wild (HTML)
Opens app from web page
<a href="intent://example.com/gizmos#Intent;scheme=http;
package=com.example.android;end;">http://example.com/gizmos</a>
<a href="gsd-gizmos://123456/?google-deep-
link=gizmos%3A%2F%2Fabcd&google-callback-
url=googleapp%3A%2F%2F&google-min-sdk-version=1.0.0">
gizmos://abcd</a>
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.co
m/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.co
m/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/sitem
ap/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 indexing is now
a ranking factor
Average Lift of 0.29 Positions
0.19
0.48
0.29
0
0.1
0.2
0.3
0.4
0.5
0.6
Rank Lift Over Desktop
App Indexing Ranking Boost
Mobile (Not Installed) Mobile (Installed) Net Benefit
No longer limited to users
with installed app
Drive app installs by leveraging
your existing SEO visibility
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
Only the beginning…
Search as an interface
with app actions
App Actions
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
Building an Action Graph
Play the Taylor Swift song about haters
Action Entity Listen Action Traditional Keyword Match
55% of teens and 41% of adults use
voice search more than 1 time a day
- Google’s Mobile Voice Study
Building an Action Graph
Order me a pizza? Schedule my meeting? Drive my car?
Ok, Google
Bing Supports iOS & Android
App Indexing
Bing’s App Indexing
AppLinks.org Schema.org&
App Links Markup
<head>
<meta property="al:ios:url" content="example://?id=12345678" />
<meta property="al:ios:app_store_id" content="12345678" />
<meta property="al:android:url" content="example://?id=12345678" />
<meta property="al:android:package" content="com.example.www" />
</head>
Schema.org App Actions
<script type="application/ld+json">
{ "@context": "http://schema.org",
"@type": "Book",
"additionalType" : "http://www.productontology.org/id/Audiobook">
"name": "Coraline",
"author" : "Neil Gaiman",
"isbn" : "9781937091415",
"potentialAction":
{
"@type": "PlayAction",
"target": [
"http://www.audible.com/pd/Kids/Coraline-Audiobook/B0036GTJ48",
{
"@type": "EntryPoint",
"urlTemplate": "audible://listennow?asin=B0036GTJ48&title=Coraline",
"application": {
"@type": "SoftwareApplication",
"@id": "bdc813dd-c20b-41f8-8646-de72fa0b365d"
"name": "Audible",
"operatingSystem": "Windows Phone 8.1"
}
] } } </script>
Thanks!
hello@briggsby.com

Más contenido relacionado

La actualidad más candente

Advanced Structured Data: Beyond Rich Snippets
Advanced Structured Data: Beyond Rich SnippetsAdvanced Structured Data: Beyond Rich Snippets
Advanced Structured Data: Beyond Rich SnippetsJustin Briggs
 
Android Deep Linking
Android Deep Linking  Android Deep Linking
Android Deep Linking Ketan Raval
 
Firebase App-Indexing - SMX London 2016
Firebase App-Indexing - SMX London 2016Firebase App-Indexing - SMX London 2016
Firebase App-Indexing - SMX London 2016David Iwanow
 
Basics to Search Engine Optimization & App Store Optimization with Pooja Goyal
Basics to Search Engine Optimization & App Store Optimization with Pooja GoyalBasics to Search Engine Optimization & App Store Optimization with Pooja Goyal
Basics to Search Engine Optimization & App Store Optimization with Pooja GoyalPooja Singla
 
App Indexing & Mobile SEO - Friends of Search 2016
App Indexing & Mobile SEO - Friends of Search 2016App Indexing & Mobile SEO - Friends of Search 2016
App Indexing & Mobile SEO - Friends of Search 2016MobileMoxie
 
Emily Grossman App Indexing SMX West 2017
Emily Grossman App Indexing SMX West 2017Emily Grossman App Indexing SMX West 2017
Emily Grossman App Indexing SMX West 2017MobileMoxie
 
How to Optimize Apps for Apple iOS Search and iOS 9 Universal Links - SMX Wes...
How to Optimize Apps for Apple iOS Search and iOS 9 Universal Links - SMX Wes...How to Optimize Apps for Apple iOS Search and iOS 9 Universal Links - SMX Wes...
How to Optimize Apps for Apple iOS Search and iOS 9 Universal Links - SMX Wes...MobileMoxie
 
Mobile Deep Linking for Apps – What? Why? How?
Mobile Deep Linking for Apps – What? Why? How?Mobile Deep Linking for Apps – What? Why? How?
Mobile Deep Linking for Apps – What? Why? How?Branch
 
Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015
Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015
Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015Suzzicks
 
Mobile Deep Linking - Definition, Benefits and Implementation
Mobile Deep Linking - Definition, Benefits and ImplementationMobile Deep Linking - Definition, Benefits and Implementation
Mobile Deep Linking - Definition, Benefits and ImplementationShortcut Media
 
From Website to Web App - Indexing, Optimizing, and Auditing Experiences for ...
From Website to Web App - Indexing, Optimizing, and Auditing Experiences for ...From Website to Web App - Indexing, Optimizing, and Auditing Experiences for ...
From Website to Web App - Indexing, Optimizing, and Auditing Experiences for ...MobileMoxie
 
Indexing on Fire: Google Firebase Native & Web App Indexing - MozCon 2016
Indexing on Fire: Google Firebase Native & Web App Indexing - MozCon 2016Indexing on Fire: Google Firebase Native & Web App Indexing - MozCon 2016
Indexing on Fire: Google Firebase Native & Web App Indexing - MozCon 2016MobileMoxie
 
The Future of Deep Linking & App Indexing
The Future of Deep Linking & App IndexingThe Future of Deep Linking & App Indexing
The Future of Deep Linking & App IndexingMobileMoxie
 
UaMobitech - App Links and App Indexing API
UaMobitech - App Links and App Indexing APIUaMobitech - App Links and App Indexing API
UaMobitech - App Links and App Indexing APIMatteo Bonifazi
 
Firebase App Indexing - SMX Advanced
Firebase App Indexing - SMX AdvancedFirebase App Indexing - SMX Advanced
Firebase App Indexing - SMX AdvancedDavid Iwanow
 
Mastering Mobile SEO for Your Website and Native App Content
Mastering Mobile SEO for Your Website and Native App ContentMastering Mobile SEO for Your Website and Native App Content
Mastering Mobile SEO for Your Website and Native App ContentBranch
 
Google & Bing App Indexing - SMX Munich 2016
Google & Bing App Indexing - SMX Munich 2016Google & Bing App Indexing - SMX Munich 2016
Google & Bing App Indexing - SMX Munich 2016MobileMoxie
 
Cindy Krum "Mobile-First Indexing for Local SEO" - LocalU 2017
Cindy Krum "Mobile-First Indexing for Local SEO" - LocalU 2017Cindy Krum "Mobile-First Indexing for Local SEO" - LocalU 2017
Cindy Krum "Mobile-First Indexing for Local SEO" - LocalU 2017MobileMoxie
 
Cindy Krum Krum Cindy "What SEOs Need To Know About Progressive Web Apps" SMX...
Cindy Krum Krum Cindy "What SEOs Need To Know About Progressive Web Apps" SMX...Cindy Krum Krum Cindy "What SEOs Need To Know About Progressive Web Apps" SMX...
Cindy Krum Krum Cindy "What SEOs Need To Know About Progressive Web Apps" SMX...MobileMoxie
 
Software Testing for SEO
Software Testing for SEOSoftware Testing for SEO
Software Testing for SEOMichael King
 

La actualidad más candente (20)

Advanced Structured Data: Beyond Rich Snippets
Advanced Structured Data: Beyond Rich SnippetsAdvanced Structured Data: Beyond Rich Snippets
Advanced Structured Data: Beyond Rich Snippets
 
Android Deep Linking
Android Deep Linking  Android Deep Linking
Android Deep Linking
 
Firebase App-Indexing - SMX London 2016
Firebase App-Indexing - SMX London 2016Firebase App-Indexing - SMX London 2016
Firebase App-Indexing - SMX London 2016
 
Basics to Search Engine Optimization & App Store Optimization with Pooja Goyal
Basics to Search Engine Optimization & App Store Optimization with Pooja GoyalBasics to Search Engine Optimization & App Store Optimization with Pooja Goyal
Basics to Search Engine Optimization & App Store Optimization with Pooja Goyal
 
App Indexing & Mobile SEO - Friends of Search 2016
App Indexing & Mobile SEO - Friends of Search 2016App Indexing & Mobile SEO - Friends of Search 2016
App Indexing & Mobile SEO - Friends of Search 2016
 
Emily Grossman App Indexing SMX West 2017
Emily Grossman App Indexing SMX West 2017Emily Grossman App Indexing SMX West 2017
Emily Grossman App Indexing SMX West 2017
 
How to Optimize Apps for Apple iOS Search and iOS 9 Universal Links - SMX Wes...
How to Optimize Apps for Apple iOS Search and iOS 9 Universal Links - SMX Wes...How to Optimize Apps for Apple iOS Search and iOS 9 Universal Links - SMX Wes...
How to Optimize Apps for Apple iOS Search and iOS 9 Universal Links - SMX Wes...
 
Mobile Deep Linking for Apps – What? Why? How?
Mobile Deep Linking for Apps – What? Why? How?Mobile Deep Linking for Apps – What? Why? How?
Mobile Deep Linking for Apps – What? Why? How?
 
Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015
Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015
Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015
 
Mobile Deep Linking - Definition, Benefits and Implementation
Mobile Deep Linking - Definition, Benefits and ImplementationMobile Deep Linking - Definition, Benefits and Implementation
Mobile Deep Linking - Definition, Benefits and Implementation
 
From Website to Web App - Indexing, Optimizing, and Auditing Experiences for ...
From Website to Web App - Indexing, Optimizing, and Auditing Experiences for ...From Website to Web App - Indexing, Optimizing, and Auditing Experiences for ...
From Website to Web App - Indexing, Optimizing, and Auditing Experiences for ...
 
Indexing on Fire: Google Firebase Native & Web App Indexing - MozCon 2016
Indexing on Fire: Google Firebase Native & Web App Indexing - MozCon 2016Indexing on Fire: Google Firebase Native & Web App Indexing - MozCon 2016
Indexing on Fire: Google Firebase Native & Web App Indexing - MozCon 2016
 
The Future of Deep Linking & App Indexing
The Future of Deep Linking & App IndexingThe Future of Deep Linking & App Indexing
The Future of Deep Linking & App Indexing
 
UaMobitech - App Links and App Indexing API
UaMobitech - App Links and App Indexing APIUaMobitech - App Links and App Indexing API
UaMobitech - App Links and App Indexing API
 
Firebase App Indexing - SMX Advanced
Firebase App Indexing - SMX AdvancedFirebase App Indexing - SMX Advanced
Firebase App Indexing - SMX Advanced
 
Mastering Mobile SEO for Your Website and Native App Content
Mastering Mobile SEO for Your Website and Native App ContentMastering Mobile SEO for Your Website and Native App Content
Mastering Mobile SEO for Your Website and Native App Content
 
Google & Bing App Indexing - SMX Munich 2016
Google & Bing App Indexing - SMX Munich 2016Google & Bing App Indexing - SMX Munich 2016
Google & Bing App Indexing - SMX Munich 2016
 
Cindy Krum "Mobile-First Indexing for Local SEO" - LocalU 2017
Cindy Krum "Mobile-First Indexing for Local SEO" - LocalU 2017Cindy Krum "Mobile-First Indexing for Local SEO" - LocalU 2017
Cindy Krum "Mobile-First Indexing for Local SEO" - LocalU 2017
 
Cindy Krum Krum Cindy "What SEOs Need To Know About Progressive Web Apps" SMX...
Cindy Krum Krum Cindy "What SEOs Need To Know About Progressive Web Apps" SMX...Cindy Krum Krum Cindy "What SEOs Need To Know About Progressive Web Apps" SMX...
Cindy Krum Krum Cindy "What SEOs Need To Know About Progressive Web Apps" SMX...
 
Software Testing for SEO
Software Testing for SEOSoftware Testing for SEO
Software Testing for SEO
 

Destacado

App Indexing - Increasing mobile visibility with structured data
App Indexing - Increasing mobile visibility with structured dataApp Indexing - Increasing mobile visibility with structured data
App Indexing - Increasing mobile visibility with structured dataJustin Briggs
 
Deep Link (to the Future)
Deep Link (to the Future)Deep Link (to the Future)
Deep Link (to the Future)Akash Gupta
 
iPhone Introduction
iPhone IntroductioniPhone Introduction
iPhone Introductionardiri
 
Rits Brown Bag - SharePoint 2016
Rits Brown Bag - SharePoint 2016Rits Brown Bag - SharePoint 2016
Rits Brown Bag - SharePoint 2016Right IT Services
 
For mobile devices think apps, not ads
For mobile devices think apps, not adsFor mobile devices think apps, not ads
For mobile devices think apps, not adsSameer Mathur
 
How to Send Data-Driven Lifecycle Emails That Convert Every Time
How to Send Data-Driven Lifecycle Emails That Convert Every TimeHow to Send Data-Driven Lifecycle Emails That Convert Every Time
How to Send Data-Driven Lifecycle Emails That Convert Every TimeKissmetrics on SlideShare
 
Conversational Search, Entities, and Knowledge Graph - Mozcon 2014
Conversational Search, Entities, and Knowledge Graph - Mozcon 2014Conversational Search, Entities, and Knowledge Graph - Mozcon 2014
Conversational Search, Entities, and Knowledge Graph - Mozcon 2014Justin Briggs
 
Discovery of ranking fraud for mobile apps
Discovery of ranking fraud for mobile appsDiscovery of ranking fraud for mobile apps
Discovery of ranking fraud for mobile appsPvrtechnologies Nellore
 
SearchLove London 2015 | Will Critchlow | Practical Tips for the Future of ...
SearchLove London 2015 |  Will Critchlow |  Practical Tips for the Future of ...SearchLove London 2015 |  Will Critchlow |  Practical Tips for the Future of ...
SearchLove London 2015 | Will Critchlow | Practical Tips for the Future of ...Distilled
 
ModevCon: Monetizing Your App Beyond Banner Ads, Sponsored App Installs, and ...
ModevCon: Monetizing Your App Beyond Banner Ads, Sponsored App Installs, and ...ModevCon: Monetizing Your App Beyond Banner Ads, Sponsored App Installs, and ...
ModevCon: Monetizing Your App Beyond Banner Ads, Sponsored App Installs, and ...Quixey
 
Discovery of ranking fraud for mobile apps
Discovery of ranking fraud for mobile appsDiscovery of ranking fraud for mobile apps
Discovery of ranking fraud for mobile appsNexgen Technology
 
App indexing at #SMXParis 2015
App indexing at #SMXParis 2015App indexing at #SMXParis 2015
App indexing at #SMXParis 2015Alexandre Jubien
 

Destacado (15)

App Indexing - Increasing mobile visibility with structured data
App Indexing - Increasing mobile visibility with structured dataApp Indexing - Increasing mobile visibility with structured data
App Indexing - Increasing mobile visibility with structured data
 
Deep Link (to the Future)
Deep Link (to the Future)Deep Link (to the Future)
Deep Link (to the Future)
 
iPhone Introduction
iPhone IntroductioniPhone Introduction
iPhone Introduction
 
Rits Brown Bag - SharePoint 2016
Rits Brown Bag - SharePoint 2016Rits Brown Bag - SharePoint 2016
Rits Brown Bag - SharePoint 2016
 
For mobile devices think apps, not ads
For mobile devices think apps, not adsFor mobile devices think apps, not ads
For mobile devices think apps, not ads
 
Deep Linking
Deep LinkingDeep Linking
Deep Linking
 
How to Send Data-Driven Lifecycle Emails That Convert Every Time
How to Send Data-Driven Lifecycle Emails That Convert Every TimeHow to Send Data-Driven Lifecycle Emails That Convert Every Time
How to Send Data-Driven Lifecycle Emails That Convert Every Time
 
Conversational Search, Entities, and Knowledge Graph - Mozcon 2014
Conversational Search, Entities, and Knowledge Graph - Mozcon 2014Conversational Search, Entities, and Knowledge Graph - Mozcon 2014
Conversational Search, Entities, and Knowledge Graph - Mozcon 2014
 
Discovery of ranking fraud for mobile apps
Discovery of ranking fraud for mobile appsDiscovery of ranking fraud for mobile apps
Discovery of ranking fraud for mobile apps
 
AppStore SEO
AppStore SEOAppStore SEO
AppStore SEO
 
SearchLove London 2015 | Will Critchlow | Practical Tips for the Future of ...
SearchLove London 2015 |  Will Critchlow |  Practical Tips for the Future of ...SearchLove London 2015 |  Will Critchlow |  Practical Tips for the Future of ...
SearchLove London 2015 | Will Critchlow | Practical Tips for the Future of ...
 
ModevCon: Monetizing Your App Beyond Banner Ads, Sponsored App Installs, and ...
ModevCon: Monetizing Your App Beyond Banner Ads, Sponsored App Installs, and ...ModevCon: Monetizing Your App Beyond Banner Ads, Sponsored App Installs, and ...
ModevCon: Monetizing Your App Beyond Banner Ads, Sponsored App Installs, and ...
 
Discovery of ranking fraud for mobile apps
Discovery of ranking fraud for mobile appsDiscovery of ranking fraud for mobile apps
Discovery of ranking fraud for mobile apps
 
App Indexing, Campixx 2016 Workshop
App Indexing, Campixx 2016 WorkshopApp Indexing, Campixx 2016 Workshop
App Indexing, Campixx 2016 Workshop
 
App indexing at #SMXParis 2015
App indexing at #SMXParis 2015App indexing at #SMXParis 2015
App indexing at #SMXParis 2015
 

Similar a iOS & Android App Indexing & App Actions

Life After Mobilegeddon: App Deep Linking Strategies - Pubcon October 2015
Life After Mobilegeddon: App Deep Linking Strategies - Pubcon October 2015Life After Mobilegeddon: App Deep Linking Strategies - Pubcon October 2015
Life After Mobilegeddon: App Deep Linking Strategies - Pubcon October 2015MobileMoxie
 
Life After Mobilegeddon: App Deep Linking Strategies - Pubcon October 2015
Life After Mobilegeddon: App Deep Linking Strategies - Pubcon October 2015Life After Mobilegeddon: App Deep Linking Strategies - Pubcon October 2015
Life After Mobilegeddon: App Deep Linking Strategies - Pubcon October 2015Suzzicks
 
How App Indexation Works
How App Indexation WorksHow App Indexation Works
How App Indexation WorksSerenaPearson2
 
Complete A-Z Of Google App Content Indexing And Much More...
Complete A-Z Of Google App Content Indexing And Much More...Complete A-Z Of Google App Content Indexing And Much More...
Complete A-Z Of Google App Content Indexing And Much More...Velocity Software
 
How NOT to Suck at App Distribution - Quick Start Guide - Appsocially's Growt...
How NOT to Suck at App Distribution - Quick Start Guide - Appsocially's Growt...How NOT to Suck at App Distribution - Quick Start Guide - Appsocially's Growt...
How NOT to Suck at App Distribution - Quick Start Guide - Appsocially's Growt...Yusuke Takahashi, PhD
 
Mobile masters Ecomteam 2016
Mobile masters Ecomteam 2016Mobile masters Ecomteam 2016
Mobile masters Ecomteam 2016Bogdan Zaharia
 
Introduction to Android Programming
Introduction to Android ProgrammingIntroduction to Android Programming
Introduction to Android ProgrammingRaveendra R
 
Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015
Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015
Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015MobileMoxie
 
GDG Oslo: Hidden Android features
GDG Oslo: Hidden Android featuresGDG Oslo: Hidden Android features
GDG Oslo: Hidden Android featuresKonstantin Loginov
 
Mobile App Testing.pdf
Mobile App Testing.pdfMobile App Testing.pdf
Mobile App Testing.pdfAbanti Aazmin
 
Beginning Native Android Apps
Beginning Native Android AppsBeginning Native Android Apps
Beginning Native Android AppsGil Irizarry
 
Lecture #1 Creating your first android project
Lecture #1  Creating your first android projectLecture #1  Creating your first android project
Lecture #1 Creating your first android projectVitali Pekelis
 
Building Mobile Apps on aPaaS platforms
Building Mobile Apps on aPaaS platformsBuilding Mobile Apps on aPaaS platforms
Building Mobile Apps on aPaaS platformsDr Ganesh Iyer
 
Making The Most Of Mobile
Making The Most Of MobileMaking The Most Of Mobile
Making The Most Of MobileSuzzicks
 
Google+ sign in for mobile & web apps
Google+ sign in for mobile & web appsGoogle+ sign in for mobile & web apps
Google+ sign in for mobile & web appsLakhdar Meftah
 
The Case for Progressive Web Apps
The Case for Progressive Web AppsThe Case for Progressive Web Apps
The Case for Progressive Web AppsJason Grigsby
 

Similar a iOS & Android App Indexing & App Actions (20)

App Deep Linking
App Deep LinkingApp Deep Linking
App Deep Linking
 
Life After Mobilegeddon: App Deep Linking Strategies - Pubcon October 2015
Life After Mobilegeddon: App Deep Linking Strategies - Pubcon October 2015Life After Mobilegeddon: App Deep Linking Strategies - Pubcon October 2015
Life After Mobilegeddon: App Deep Linking Strategies - Pubcon October 2015
 
Life After Mobilegeddon: App Deep Linking Strategies - Pubcon October 2015
Life After Mobilegeddon: App Deep Linking Strategies - Pubcon October 2015Life After Mobilegeddon: App Deep Linking Strategies - Pubcon October 2015
Life After Mobilegeddon: App Deep Linking Strategies - Pubcon October 2015
 
How App Indexation Works
How App Indexation WorksHow App Indexation Works
How App Indexation Works
 
Complete A-Z Of Google App Content Indexing And Much More...
Complete A-Z Of Google App Content Indexing And Much More...Complete A-Z Of Google App Content Indexing And Much More...
Complete A-Z Of Google App Content Indexing And Much More...
 
How NOT to Suck at App Distribution - Quick Start Guide - Appsocially's Growt...
How NOT to Suck at App Distribution - Quick Start Guide - Appsocially's Growt...How NOT to Suck at App Distribution - Quick Start Guide - Appsocially's Growt...
How NOT to Suck at App Distribution - Quick Start Guide - Appsocially's Growt...
 
Mobile masters Ecomteam 2016
Mobile masters Ecomteam 2016Mobile masters Ecomteam 2016
Mobile masters Ecomteam 2016
 
Introduction to Android Programming
Introduction to Android ProgrammingIntroduction to Android Programming
Introduction to Android Programming
 
Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015
Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015
Why Deep Linking is the Next Big Thing: App Indexing - SMX East 2015
 
GDG Oslo: Hidden Android features
GDG Oslo: Hidden Android featuresGDG Oslo: Hidden Android features
GDG Oslo: Hidden Android features
 
Mobile App Testing.pdf
Mobile App Testing.pdfMobile App Testing.pdf
Mobile App Testing.pdf
 
Beginning Native Android Apps
Beginning Native Android AppsBeginning Native Android Apps
Beginning Native Android Apps
 
Lecture #1 Creating your first android project
Lecture #1  Creating your first android projectLecture #1  Creating your first android project
Lecture #1 Creating your first android project
 
Building Mobile Apps on aPaaS platforms
Building Mobile Apps on aPaaS platformsBuilding Mobile Apps on aPaaS platforms
Building Mobile Apps on aPaaS platforms
 
Making The Most Of Mobile
Making The Most Of MobileMaking The Most Of Mobile
Making The Most Of Mobile
 
Dharmpal Verma Resume
Dharmpal Verma ResumeDharmpal Verma Resume
Dharmpal Verma Resume
 
How To Build and Deploy Android App Bundles.pdf
How To Build and Deploy Android App Bundles.pdfHow To Build and Deploy Android App Bundles.pdf
How To Build and Deploy Android App Bundles.pdf
 
Google+ sign in for mobile & web apps
Google+ sign in for mobile & web appsGoogle+ sign in for mobile & web apps
Google+ sign in for mobile & web apps
 
W3W SEASON#02 WEEK#17
W3W SEASON#02 WEEK#17W3W SEASON#02 WEEK#17
W3W SEASON#02 WEEK#17
 
The Case for Progressive Web Apps
The Case for Progressive Web AppsThe Case for Progressive Web Apps
The Case for Progressive Web Apps
 

Más de Justin Briggs

Using Search to Grow Your YouTube Audience
Using Search to Grow Your YouTube AudienceUsing Search to Grow Your YouTube Audience
Using Search to Grow Your YouTube AudienceJustin Briggs
 
Youtube SEO Strategies: How to Get More Views on YouTube
Youtube SEO Strategies: How to Get More Views on YouTubeYoutube SEO Strategies: How to Get More Views on YouTube
Youtube SEO Strategies: How to Get More Views on YouTubeJustin Briggs
 
YouTube SEO: Reverse Engineering YouTube Search
YouTube SEO: Reverse Engineering YouTube SearchYouTube SEO: Reverse Engineering YouTube Search
YouTube SEO: Reverse Engineering YouTube SearchJustin Briggs
 
Light, Camera, Marketing : Video Production for Online Marketing
Light, Camera, Marketing : Video Production for Online MarketingLight, Camera, Marketing : Video Production for Online Marketing
Light, Camera, Marketing : Video Production for Online MarketingJustin Briggs
 
Mobile SEO: Closing the Mobile Search Strategy Gap
Mobile SEO: Closing the Mobile Search Strategy GapMobile SEO: Closing the Mobile Search Strategy Gap
Mobile SEO: Closing the Mobile Search Strategy GapJustin Briggs
 
Getting Things To Rank: Improve Search Visibility Using Entities
Getting Things To Rank: Improve Search Visibility Using EntitiesGetting Things To Rank: Improve Search Visibility Using Entities
Getting Things To Rank: Improve Search Visibility Using EntitiesJustin Briggs
 
How To Grow Your Mobile App Audience Using Organic Search
How To Grow Your Mobile App Audience Using Organic SearchHow To Grow Your Mobile App Audience Using Organic Search
How To Grow Your Mobile App Audience Using Organic SearchJustin Briggs
 
Using Web Search for Mobile App Marketing - ASO (App Store Optimization) at SMX
Using Web Search for Mobile App Marketing - ASO (App Store Optimization) at SMXUsing Web Search for Mobile App Marketing - ASO (App Store Optimization) at SMX
Using Web Search for Mobile App Marketing - ASO (App Store Optimization) at SMXJustin Briggs
 
Link Building SMX Advanced 2013
Link Building SMX Advanced 2013Link Building SMX Advanced 2013
Link Building SMX Advanced 2013Justin Briggs
 
Wordpress SEO Presentation at Wordcamp Seattle
Wordpress SEO Presentation at Wordcamp SeattleWordpress SEO Presentation at Wordcamp Seattle
Wordpress SEO Presentation at Wordcamp SeattleJustin Briggs
 
Strategic Content Marketing
Strategic Content MarketingStrategic Content Marketing
Strategic Content MarketingJustin Briggs
 
Technical Hacks for Content Marketing
Technical Hacks for Content MarketingTechnical Hacks for Content Marketing
Technical Hacks for Content MarketingJustin Briggs
 
Getting RCS Done as an In-house SEO | SearchLove 2012
Getting RCS Done as an In-house SEO | SearchLove 2012Getting RCS Done as an In-house SEO | SearchLove 2012
Getting RCS Done as an In-house SEO | SearchLove 2012Justin Briggs
 
SEO for Bloggers - WordCamp Seattle 2012
SEO for Bloggers - WordCamp Seattle 2012SEO for Bloggers - WordCamp Seattle 2012
SEO for Bloggers - WordCamp Seattle 2012Justin Briggs
 
Link Building Reporting
Link Building ReportingLink Building Reporting
Link Building ReportingJustin Briggs
 
Inbound Marketing Tools - SearchFest
Inbound Marketing Tools - SearchFestInbound Marketing Tools - SearchFest
Inbound Marketing Tools - SearchFestJustin Briggs
 
Effective Link Building - Pro SEO Boston 2011
Effective Link Building - Pro SEO Boston 2011Effective Link Building - Pro SEO Boston 2011
Effective Link Building - Pro SEO Boston 2011Justin Briggs
 
Wordpress SEO - Wordcamp Seattle #wcsea
Wordpress SEO - Wordcamp Seattle #wcseaWordpress SEO - Wordcamp Seattle #wcsea
Wordpress SEO - Wordcamp Seattle #wcseaJustin Briggs
 
Actionable Metrics and Diagnostics- SMX West 2011
Actionable Metrics and Diagnostics- SMX West 2011Actionable Metrics and Diagnostics- SMX West 2011
Actionable Metrics and Diagnostics- SMX West 2011Justin Briggs
 

Más de Justin Briggs (19)

Using Search to Grow Your YouTube Audience
Using Search to Grow Your YouTube AudienceUsing Search to Grow Your YouTube Audience
Using Search to Grow Your YouTube Audience
 
Youtube SEO Strategies: How to Get More Views on YouTube
Youtube SEO Strategies: How to Get More Views on YouTubeYoutube SEO Strategies: How to Get More Views on YouTube
Youtube SEO Strategies: How to Get More Views on YouTube
 
YouTube SEO: Reverse Engineering YouTube Search
YouTube SEO: Reverse Engineering YouTube SearchYouTube SEO: Reverse Engineering YouTube Search
YouTube SEO: Reverse Engineering YouTube Search
 
Light, Camera, Marketing : Video Production for Online Marketing
Light, Camera, Marketing : Video Production for Online MarketingLight, Camera, Marketing : Video Production for Online Marketing
Light, Camera, Marketing : Video Production for Online Marketing
 
Mobile SEO: Closing the Mobile Search Strategy Gap
Mobile SEO: Closing the Mobile Search Strategy GapMobile SEO: Closing the Mobile Search Strategy Gap
Mobile SEO: Closing the Mobile Search Strategy Gap
 
Getting Things To Rank: Improve Search Visibility Using Entities
Getting Things To Rank: Improve Search Visibility Using EntitiesGetting Things To Rank: Improve Search Visibility Using Entities
Getting Things To Rank: Improve Search Visibility Using Entities
 
How To Grow Your Mobile App Audience Using Organic Search
How To Grow Your Mobile App Audience Using Organic SearchHow To Grow Your Mobile App Audience Using Organic Search
How To Grow Your Mobile App Audience Using Organic Search
 
Using Web Search for Mobile App Marketing - ASO (App Store Optimization) at SMX
Using Web Search for Mobile App Marketing - ASO (App Store Optimization) at SMXUsing Web Search for Mobile App Marketing - ASO (App Store Optimization) at SMX
Using Web Search for Mobile App Marketing - ASO (App Store Optimization) at SMX
 
Link Building SMX Advanced 2013
Link Building SMX Advanced 2013Link Building SMX Advanced 2013
Link Building SMX Advanced 2013
 
Wordpress SEO Presentation at Wordcamp Seattle
Wordpress SEO Presentation at Wordcamp SeattleWordpress SEO Presentation at Wordcamp Seattle
Wordpress SEO Presentation at Wordcamp Seattle
 
Strategic Content Marketing
Strategic Content MarketingStrategic Content Marketing
Strategic Content Marketing
 
Technical Hacks for Content Marketing
Technical Hacks for Content MarketingTechnical Hacks for Content Marketing
Technical Hacks for Content Marketing
 
Getting RCS Done as an In-house SEO | SearchLove 2012
Getting RCS Done as an In-house SEO | SearchLove 2012Getting RCS Done as an In-house SEO | SearchLove 2012
Getting RCS Done as an In-house SEO | SearchLove 2012
 
SEO for Bloggers - WordCamp Seattle 2012
SEO for Bloggers - WordCamp Seattle 2012SEO for Bloggers - WordCamp Seattle 2012
SEO for Bloggers - WordCamp Seattle 2012
 
Link Building Reporting
Link Building ReportingLink Building Reporting
Link Building Reporting
 
Inbound Marketing Tools - SearchFest
Inbound Marketing Tools - SearchFestInbound Marketing Tools - SearchFest
Inbound Marketing Tools - SearchFest
 
Effective Link Building - Pro SEO Boston 2011
Effective Link Building - Pro SEO Boston 2011Effective Link Building - Pro SEO Boston 2011
Effective Link Building - Pro SEO Boston 2011
 
Wordpress SEO - Wordcamp Seattle #wcsea
Wordpress SEO - Wordcamp Seattle #wcseaWordpress SEO - Wordcamp Seattle #wcsea
Wordpress SEO - Wordcamp Seattle #wcsea
 
Actionable Metrics and Diagnostics- SMX West 2011
Actionable Metrics and Diagnostics- SMX West 2011Actionable Metrics and Diagnostics- SMX West 2011
Actionable Metrics and Diagnostics- SMX West 2011
 

iOS & Android App Indexing & App Actions

  • 1. Justin Briggs, Briggsby How to Setup App Indexing for iOS & Android
  • 3. Welcome to the future of search
  • 4. Turn of the Tide Mobile Moment
  • 5. Turn of the Tide Mobile App Moment
  • 9. Deep links & app indexing are making app content accessible
  • 10. Drive App Engagement App launch can be default behavior Clicking this launches the app!
  • 11. This is supported by Google & Bing
  • 12. For both iOS & Android (And Windows Phones on Bing)
  • 13. 15% of Google searches on Android return deep links to apps through App Indexing
  • 14. 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/
  • 16. App Deep Links android-app://{package_id}/{scheme}/{host_path} ios-app://{itunes_id}/{scheme}/{host_path}  package_id - app ID in Play Store or iTunes App Store  scheme - http or custom scheme  host_path - specific content within app
  • 17. App Indexing for Android apps (Google)
  • 18. 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>
  • 19. Mange the Intent Passes the incoming Intent to a helper method ... @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_gizmos); onNewIntent(getIntent()); }
  • 20. Mange the Intent Verify the deep link and display the gizmos content protected void onNewIntent(Intent intent) { String action = intent.getAction(); String data = intent.getDataString(); if (Intent.ACTION_VIEW.equals(action) && data != null) { String gizmosId = data.substring(data.lastIndexOf("/") + 1); Uri contentUri = GizmosContentProvider.CONTENT_URI.buildUpon() .appendPath(gizmosId).build(); showGizmos(contentUri); }
  • 21. App Indexing for iOS Apps (Google)
  • 22. Custom URL Scheme in Info.plist Define {scheme} and gsd-{scheme}
  • 23. Setup Inter-App Communication openURL: method launches the app with the registered scheme and passes your URL to it
  • 24. Setup Google’s SDK This is required to have iOS deep links #1 Install CocaPods #2 Add GoogleAppIndexing Pod #3 Add GoogleAppIndexing post to your Xcode project #4 Update your code to use SDK and to make API call to handle back button
  • 25. Express Interest to Google https://developers.google.com/app-indexing/ios/interest-form iOS App Indexing is a limited release
  • 26. Keep it “First Click Free”
  • 27. Allow the back button
  • 28. Don’t block crawl in robots.txt
  • 29. Test With Android Debug Bridge This will kick open “page” on mobile device from console adb shell am start -a android.intent.action.VIEW -d "http://example.com/gizmos" com.example.android
  • 30. Test With Xcrun Tool This will kick open “page” on mobile device from console xcrun simctl openurl YOUR-DEVICE-UUID gsd- gizmos://123456/?google-deep- link=gizmos%3A%2F%2Fabcd&google-callback- url=googleapp%3A%2F%2F&google-min-sdk- version=1.0.0
  • 31. Test In The Wild (HTML) Opens app from web page <a href="intent://example.com/gizmos#Intent;scheme=http; package=com.example.android;end;">http://example.com/gizmos</a> <a href="gsd-gizmos://123456/?google-deep- link=gizmos%3A%2F%2Fabcd&google-callback- url=googleapp%3A%2F%2F&google-min-sdk-version=1.0.0"> gizmos://abcd</a>
  • 32. Testing Deep Links Will launch app deep link
  • 33. Verify site with Google Play Developer Console & Webmaster Tools
  • 34. Connect in Google Play Console Verify the app’s website
  • 35. Annotate site for app URI discovery via crawl
  • 36. Three Ways to Expose App URI <html> <head> ... <link rel="alternate" href="android- app://com.example.android/http/example.co m/gizmos" /> ... </head> <body> … </body> Rel=“alternate” ViewAction XML Sitemap
  • 37. 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.co m/gizmos" } } </script> Rel=“alternate” ViewAction XML Sitemap
  • 38. Three Ways to Expose App URI <?xml version="1.0" encoding="UTF-8" ?> <urlset xmlns="http://www.sitemaps.org/schemas/sitem ap/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
  • 39. Very similar to a mobile separate-site setup
  • 40. Launch App From Search
  • 41. App indexing is now a ranking factor
  • 42. Average Lift of 0.29 Positions 0.19 0.48 0.29 0 0.1 0.2 0.3 0.4 0.5 0.6 Rank Lift Over Desktop App Indexing Ranking Boost Mobile (Not Installed) Mobile (Installed) Net Benefit
  • 43. No longer limited to users with installed app
  • 44. Drive app installs by leveraging your existing SEO visibility
  • 45. Manage indexing with robots noindex in app
  • 46. 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
  • 47. 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
  • 48. Push to Google with App Indexing API
  • 51. Search as an interface with app actions
  • 52. App Actions App Indexing Knowledge Graph App Actions+ =
  • 53. 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>
  • 55. Building an Action Graph Play the Taylor Swift song about haters Action Entity Listen Action Traditional Keyword Match
  • 56. 55% of teens and 41% of adults use voice search more than 1 time a day - Google’s Mobile Voice Study
  • 57. Building an Action Graph Order me a pizza? Schedule my meeting? Drive my car? Ok, Google
  • 58. Bing Supports iOS & Android App Indexing
  • 60. App Links Markup <head> <meta property="al:ios:url" content="example://?id=12345678" /> <meta property="al:ios:app_store_id" content="12345678" /> <meta property="al:android:url" content="example://?id=12345678" /> <meta property="al:android:package" content="com.example.www" /> </head>
  • 61. Schema.org App Actions <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Book", "additionalType" : "http://www.productontology.org/id/Audiobook"> "name": "Coraline", "author" : "Neil Gaiman", "isbn" : "9781937091415", "potentialAction": { "@type": "PlayAction", "target": [ "http://www.audible.com/pd/Kids/Coraline-Audiobook/B0036GTJ48", { "@type": "EntryPoint", "urlTemplate": "audible://listennow?asin=B0036GTJ48&title=Coraline", "application": { "@type": "SoftwareApplication", "@id": "bdc813dd-c20b-41f8-8646-de72fa0b365d" "name": "Audible", "operatingSystem": "Windows Phone 8.1" } ] } } </script>