SlideShare a Scribd company logo
1 of 26
Download to read offline
App Links and Indexing
Bringing your app out from the dust on web
+Matteo Bonifazi
Senior Consultant @ Open Reply
Android Google Developer Expert
Member of GDG Rome
@mbonifazi
matteobonifazi[at]gmail[dot].com
1/3rd of them
How many apps do you actually use daily?
avg of 33 apps
How many apps do you have installed in your phone?
*Google research in Us
Back in 1997
1 Milion of Web hostnames
1M Web hostnames
Today
1Bilion of Web hostnames - 1 Milion of apps in Google Play
1B+ Web Hostnames
1M+ apps in Play Store
Case studies - https://developers.google.com/app-indexing/case-studies
Acquire new users
Case studies - https://developers.google.com/app-indexing/case-studies
Re-engage
existing users
Implementing App Indexing
Add deep
link support
to app
Verify
website
Publish app
deep links
Done
Step 1 Step 2 Step 3
Add deep
link support
to app
Verify
website
Publish app
deep links
Done
Step 1 Step 2 Step 3
<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" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- Accepts URIs that begin with "http://example.com/gizmos” -->
<data android:scheme="http"
android:host="example.com"
android:pathPrefix="/gizmos" />
</intent-filter>
</activity>
<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" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- Accepts URIs that begin with "http://example.com/gizmos” -->
<data android:scheme="http"
android:host="example.com"
android:pathPrefix="/gizmos" />
</intent-filter>
</activity>
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Intent intent=getIntent();
String action=intent.getAction();
Uri data=intent.getData();
…
Intent intentNext=new Intent(this, nextGizmosActivity.class);
startActivity(intentNext);
}
How to test
adb shell am start -a android.intent.action.VIEW -d "http:
//example.com/gizmos" com.example.android
ADB
Deep link testing toolhttps://developers.google.com/app-indexing/android/test
Add deep
link support
to app
Verify
website
Publish app
deep links
Done
Step 1 Step 2 Step 3
● Create URL format for App Indexing
● Add App Indexing Markup to your website
● Verify your website on Webmaster Tools
android-app://com.example/http/example.com/gizmos
URI format for app indexing
Protocol Package
ID
PathScheme
<link rel=“alternate” href=“android-app://com.example/http/example.com/gizmos” />
App Indexing markup
Approve request on Webmaster Tools - https://www.google.com/webmasters/tools
<html>
<head>
...
<link rel="alternate" href="android-app://com.example/http/example.com/gizmos" />
...
</head>
<body> … </body>
In the web page
Add deep
link support
to app
Verify
website
Publish app
deep links
Done
Step 1 Step 2 Step 3
App Indexing API
Re-engage users
through Google
Search App
autocompletions
How to implement
compile 'com.google.android.gms:play-services-appindexing:8.3.0' build.gradle
Uri APP_URI = Uri.parse("android-app://com.example/http/example.com/gizmos");
Uri WEB_URL = Uri.parse("http://www.example.com/index/"); URI definition
@Override
protected void onCreate(Bundle savedInstanceState) {
...
mClient = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
...
}
Google Client
App Indexing API - implementation
@Override
public void onStart() {
super.onStart();
...
// Connect your client
mClient.connect();
// Define a title for your current page, shown in autocompletion UI
String title = "Example Title";
// Construct the Action performed by the user
Action viewAction = Action.newAction(Action.TYPE_VIEW, title, WEB_URL, APP_URI);
// Call the App Indexing API start method after the view has completely rendered
AppIndex.AppIndexApi.start(mClient, viewAction);
...
}
App Indexing API - implementation
@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();
...
super.onStop();
}
Android
● Dev Bytes - https://www.youtube.com/watch?v=aISUYHTkTOU
● Dev Bytes - https://www.youtube.com/watch?v=kYLrK-gD2Yg
● Codelab
○ 1.http://search-codelabs.appspot.com/codelabs/android-deep-linking
○ 2.http://search-codelabs.appspot.com/codelabs/app-indexing
○ 3.http://search-codelabs.appspot.com/codelabs/web-deep-linking
● Blog post - http://googledevelopers.blogspot.com/2014/12/four-steps-to-supercharge-deep-
linking.html
● FAQ - https://developers.google.com/app-indexing/faq
● StackOverflow - http://stackoverflow.com/questions/tagged/android-app-indexing
iOS - Just from iOS 9
● Documentation - https://developers.google.com/app-indexing/ios/app
● Blog post - http://tinyurl.com/nmbrl4d
Thank you !
+Matteo Bonifazi - @mbonifazi
Senior Consultant @ Open Reply
Android GDE
matteobonifazi[at]gmail[dot].com

More Related Content

What's hot

Deep linking slides
Deep linking slidesDeep linking slides
Deep linking slidesPersonagraph
 
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
 
How to Setup App Indexation
How to Setup App IndexationHow to Setup App Indexation
How to Setup App IndexationJustin Briggs
 
Increasing App Installs With App Indexation By Justin Briggs
Increasing App Installs With App Indexation By Justin BriggsIncreasing App Installs With App Indexation By Justin Briggs
Increasing App Installs With App Indexation By Justin BriggsSearch Marketing Expo - SMX
 
What You Need to Know About Google App Indexing - SMX West 2016
What You Need to Know About Google App Indexing - SMX West 2016What You Need to Know About Google App Indexing - SMX West 2016
What You Need to Know About Google App Indexing - SMX West 2016MobileMoxie
 
Advanced Structured Data: Beyond Rich Snippets
Advanced Structured Data: Beyond Rich SnippetsAdvanced Structured Data: Beyond Rich Snippets
Advanced Structured Data: Beyond Rich SnippetsJustin Briggs
 
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
 
Firebase App Indexing - SMX Advanced
Firebase App Indexing - SMX AdvancedFirebase App Indexing - SMX Advanced
Firebase App Indexing - SMX AdvancedDavid Iwanow
 
Android - Getting Started With Firebase Auth
Android - Getting Started With Firebase AuthAndroid - Getting Started With Firebase Auth
Android - Getting Started With Firebase AuthBayu Firmawan Paoh
 
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
 
Embedded Tweets, Timelines and Twitter Cards - Social Developers London 09 Ja...
Embedded Tweets, Timelines and Twitter Cards - Social Developers London 09 Ja...Embedded Tweets, Timelines and Twitter Cards - Social Developers London 09 Ja...
Embedded Tweets, Timelines and Twitter Cards - Social Developers London 09 Ja...Angus Fox
 
Miracle Inameti-Archibong - We made our website a progressive web app and why...
Miracle Inameti-Archibong - We made our website a progressive web app and why...Miracle Inameti-Archibong - We made our website a progressive web app and why...
Miracle Inameti-Archibong - We made our website a progressive web app and why...SiteVisibility
 
How Agile Technical SEO Can Add Value To Your SEO Campaign, by Adam Gent
How Agile Technical SEO Can Add Value To Your SEO Campaign, by Adam GentHow Agile Technical SEO Can Add Value To Your SEO Campaign, by Adam Gent
How Agile Technical SEO Can Add Value To Your SEO Campaign, by Adam GentBranded3
 
Automating Hybrid Applications with Appium
Automating Hybrid Applications with AppiumAutomating Hybrid Applications with Appium
Automating Hybrid Applications with AppiumSauce Labs
 

What's hot (19)

Deep linking slides
Deep linking slidesDeep linking slides
Deep linking slides
 
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
 
How to Setup App Indexation
How to Setup App IndexationHow to Setup App Indexation
How to Setup App Indexation
 
Increasing App Installs With App Indexation By Justin Briggs
Increasing App Installs With App Indexation By Justin BriggsIncreasing App Installs With App Indexation By Justin Briggs
Increasing App Installs With App Indexation By Justin Briggs
 
What You Need to Know About Google App Indexing - SMX West 2016
What You Need to Know About Google App Indexing - SMX West 2016What You Need to Know About Google App Indexing - SMX West 2016
What You Need to Know About Google App Indexing - SMX West 2016
 
Advanced Structured Data: Beyond Rich Snippets
Advanced Structured Data: Beyond Rich SnippetsAdvanced Structured Data: Beyond Rich Snippets
Advanced Structured Data: Beyond Rich Snippets
 
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...
 
Firebase App Indexing - SMX Advanced
Firebase App Indexing - SMX AdvancedFirebase App Indexing - SMX Advanced
Firebase App Indexing - SMX Advanced
 
android deep linking
android deep linkingandroid deep linking
android deep linking
 
Mobile Deep linking
Mobile Deep linkingMobile Deep linking
Mobile Deep linking
 
Android - Getting Started With Firebase Auth
Android - Getting Started With Firebase AuthAndroid - Getting Started With Firebase Auth
Android - Getting Started With Firebase Auth
 
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
 
Embedded Tweets, Timelines and Twitter Cards - Social Developers London 09 Ja...
Embedded Tweets, Timelines and Twitter Cards - Social Developers London 09 Ja...Embedded Tweets, Timelines and Twitter Cards - Social Developers London 09 Ja...
Embedded Tweets, Timelines and Twitter Cards - Social Developers London 09 Ja...
 
Miracle Inameti-Archibong - We made our website a progressive web app and why...
Miracle Inameti-Archibong - We made our website a progressive web app and why...Miracle Inameti-Archibong - We made our website a progressive web app and why...
Miracle Inameti-Archibong - We made our website a progressive web app and why...
 
How Agile Technical SEO Can Add Value To Your SEO Campaign, by Adam Gent
How Agile Technical SEO Can Add Value To Your SEO Campaign, by Adam GentHow Agile Technical SEO Can Add Value To Your SEO Campaign, by Adam Gent
How Agile Technical SEO Can Add Value To Your SEO Campaign, by Adam Gent
 
Automating Hybrid Applications with Appium
Automating Hybrid Applications with AppiumAutomating Hybrid Applications with Appium
Automating Hybrid Applications with Appium
 
IDEAS OF APPS
IDEAS OF APPSIDEAS OF APPS
IDEAS OF APPS
 

Similar to Bring Your App Out From the Dust with App Links and Indexing

Firebase. Предмет и область применения — Тимур Ахметгареев
Firebase. Предмет и область применения — Тимур АхметгареевFirebase. Предмет и область применения — Тимур Ахметгареев
Firebase. Предмет и область применения — Тимур АхметгареевPeri Innovations
 
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
 
Mobile Application Development
Mobile Application DevelopmentMobile Application Development
Mobile Application Developmentsonichinmay
 
The Case for Progressive Web Apps
The Case for Progressive Web AppsThe Case for Progressive Web Apps
The Case for Progressive Web AppsJason Grigsby
 
The web - What it has, what it lacks and where it must go - keynote at Riga D...
The web - What it has, what it lacks and where it must go - keynote at Riga D...The web - What it has, what it lacks and where it must go - keynote at Riga D...
The web - What it has, what it lacks and where it must go - keynote at Riga D...Robert Nyman
 
Progressive Web Apps for Education
Progressive Web Apps for EducationProgressive Web Apps for Education
Progressive Web Apps for EducationChris Love
 
Nitin Rajput - Facebook Developer Garage Bangalore
Nitin Rajput - Facebook Developer Garage BangaloreNitin Rajput - Facebook Developer Garage Bangalore
Nitin Rajput - Facebook Developer Garage BangaloreAbhishek Goyal
 
The Web Platform - State of the Union '17
The Web Platform - State of the Union '17The Web Platform - State of the Union '17
The Web Platform - State of the Union '17Abdelrahman Omran
 
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
 
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
 
Android Marshmallow APIs and Changes
Android Marshmallow APIs and ChangesAndroid Marshmallow APIs and Changes
Android Marshmallow APIs and ChangesMalwinder Singh
 
Why Progressive Web Apps will transform your website
Why Progressive Web Apps will transform your websiteWhy Progressive Web Apps will transform your website
Why Progressive Web Apps will transform your websiteJason Grigsby
 
Deep linking - a fundamental change in the mobile app ecosystem
Deep linking - a fundamental change in the mobile app ecosystemDeep linking - a fundamental change in the mobile app ecosystem
Deep linking - a fundamental change in the mobile app ecosystemTUNE
 
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
 
The web - What it has, what it lacks and where it must go - Bulgaria Web Summ...
The web - What it has, what it lacks and where it must go - Bulgaria Web Summ...The web - What it has, what it lacks and where it must go - Bulgaria Web Summ...
The web - What it has, what it lacks and where it must go - Bulgaria Web Summ...Robert Nyman
 
Basic Understanding of Progressive Web Apps
Basic Understanding of Progressive Web AppsBasic Understanding of Progressive Web Apps
Basic Understanding of Progressive Web AppsAnjaliTanpure1
 
Google Cloud Developer Challenge - GDG Belgaum
Google Cloud Developer Challenge - GDG BelgaumGoogle Cloud Developer Challenge - GDG Belgaum
Google Cloud Developer Challenge - GDG Belgaumsandeephegde
 
Preparing for the Mobile Algorithm Shift
Preparing for the Mobile Algorithm ShiftPreparing for the Mobile Algorithm Shift
Preparing for the Mobile Algorithm ShiftCrystal Ware
 

Similar to Bring Your App Out From the Dust with App Links and Indexing (20)

App indexing api
App indexing apiApp indexing api
App indexing api
 
Firebase. Предмет и область применения — Тимур Ахметгареев
Firebase. Предмет и область применения — Тимур АхметгареевFirebase. Предмет и область применения — Тимур Ахметгареев
Firebase. Предмет и область применения — Тимур Ахметгареев
 
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
 
Mobile Application Development
Mobile Application DevelopmentMobile Application Development
Mobile Application Development
 
The Case for Progressive Web Apps
The Case for Progressive Web AppsThe Case for Progressive Web Apps
The Case for Progressive Web Apps
 
The web - What it has, what it lacks and where it must go - keynote at Riga D...
The web - What it has, what it lacks and where it must go - keynote at Riga D...The web - What it has, what it lacks and where it must go - keynote at Riga D...
The web - What it has, what it lacks and where it must go - keynote at Riga D...
 
Progressive Web Apps for Education
Progressive Web Apps for EducationProgressive Web Apps for Education
Progressive Web Apps for Education
 
Nitin Rajput - Facebook Developer Garage Bangalore
Nitin Rajput - Facebook Developer Garage BangaloreNitin Rajput - Facebook Developer Garage Bangalore
Nitin Rajput - Facebook Developer Garage Bangalore
 
The Web Platform - State of the Union '17
The Web Platform - State of the Union '17The Web Platform - State of the Union '17
The Web Platform - State of the Union '17
 
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
 
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...
 
Android Marshmallow APIs and Changes
Android Marshmallow APIs and ChangesAndroid Marshmallow APIs and Changes
Android Marshmallow APIs and Changes
 
Why Progressive Web Apps will transform your website
Why Progressive Web Apps will transform your websiteWhy Progressive Web Apps will transform your website
Why Progressive Web Apps will transform your website
 
Deep linking - a fundamental change in the mobile app ecosystem
Deep linking - a fundamental change in the mobile app ecosystemDeep linking - a fundamental change in the mobile app ecosystem
Deep linking - a fundamental change in the mobile app ecosystem
 
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
 
The web - What it has, what it lacks and where it must go - Bulgaria Web Summ...
The web - What it has, what it lacks and where it must go - Bulgaria Web Summ...The web - What it has, what it lacks and where it must go - Bulgaria Web Summ...
The web - What it has, what it lacks and where it must go - Bulgaria Web Summ...
 
Basic Understanding of Progressive Web Apps
Basic Understanding of Progressive Web AppsBasic Understanding of Progressive Web Apps
Basic Understanding of Progressive Web Apps
 
Google Cloud Developer Challenge - GDG Belgaum
Google Cloud Developer Challenge - GDG BelgaumGoogle Cloud Developer Challenge - GDG Belgaum
Google Cloud Developer Challenge - GDG Belgaum
 
Preparing for the Mobile Algorithm Shift
Preparing for the Mobile Algorithm ShiftPreparing for the Mobile Algorithm Shift
Preparing for the Mobile Algorithm Shift
 
WordCamp Bucharest 2017
WordCamp Bucharest 2017WordCamp Bucharest 2017
WordCamp Bucharest 2017
 

More from Matteo Bonifazi

Invading the home screen
Invading the home screenInvading the home screen
Invading the home screenMatteo Bonifazi
 
Engage user with actions
Engage user with actionsEngage user with actions
Engage user with actionsMatteo Bonifazi
 
Kotlin killed Java stars
Kotlin killed Java starsKotlin killed Java stars
Kotlin killed Java starsMatteo Bonifazi
 
Firebase-ized your mobile app
Firebase-ized  your mobile appFirebase-ized  your mobile app
Firebase-ized your mobile appMatteo Bonifazi
 
Android - Displaying images
Android - Displaying imagesAndroid - Displaying images
Android - Displaying imagesMatteo Bonifazi
 
Android - Background operation
Android - Background operationAndroid - Background operation
Android - Background operationMatteo Bonifazi
 
The Firebase tier for your mobile app - DevFest CH
The Firebase tier for your mobile app - DevFest CHThe Firebase tier for your mobile app - DevFest CH
The Firebase tier for your mobile app - DevFest CHMatteo Bonifazi
 
Engage and retain users in the android world - Droidcon Italy 2016
Engage and retain users in the android world - Droidcon Italy 2016Engage and retain users in the android world - Droidcon Italy 2016
Engage and retain users in the android world - Droidcon Italy 2016Matteo Bonifazi
 
Google IO - Five months later
Google IO - Five months laterGoogle IO - Five months later
Google IO - Five months laterMatteo Bonifazi
 
Video Streaming: from the native Android player to uncoventional devices
Video Streaming: from the native Android player to uncoventional devicesVideo Streaming: from the native Android player to uncoventional devices
Video Streaming: from the native Android player to uncoventional devicesMatteo Bonifazi
 

More from Matteo Bonifazi (16)

Invading the home screen
Invading the home screenInvading the home screen
Invading the home screen
 
Engage user with actions
Engage user with actionsEngage user with actions
Engage user with actions
 
Kotlin killed Java stars
Kotlin killed Java starsKotlin killed Java stars
Kotlin killed Java stars
 
Android JET Navigation
Android JET NavigationAndroid JET Navigation
Android JET Navigation
 
Firebase-ized your mobile app
Firebase-ized  your mobile appFirebase-ized  your mobile app
Firebase-ized your mobile app
 
Backendless apps
Backendless appsBackendless apps
Backendless apps
 
Android - Saving data
Android - Saving dataAndroid - Saving data
Android - Saving data
 
Android Networking
Android NetworkingAndroid Networking
Android Networking
 
Android - Displaying images
Android - Displaying imagesAndroid - Displaying images
Android - Displaying images
 
Android - Background operation
Android - Background operationAndroid - Background operation
Android - Background operation
 
Android things intro
Android things introAndroid things intro
Android things intro
 
The Firebase tier for your mobile app - DevFest CH
The Firebase tier for your mobile app - DevFest CHThe Firebase tier for your mobile app - DevFest CH
The Firebase tier for your mobile app - DevFest CH
 
Engage and retain users in the android world - Droidcon Italy 2016
Engage and retain users in the android world - Droidcon Italy 2016Engage and retain users in the android world - Droidcon Italy 2016
Engage and retain users in the android world - Droidcon Italy 2016
 
Google IO - Five months later
Google IO - Five months laterGoogle IO - Five months later
Google IO - Five months later
 
Video Streaming: from the native Android player to uncoventional devices
Video Streaming: from the native Android player to uncoventional devicesVideo Streaming: from the native Android player to uncoventional devices
Video Streaming: from the native Android player to uncoventional devices
 
Enlarge your screen
Enlarge your screenEnlarge your screen
Enlarge your screen
 

Bring Your App Out From the Dust with App Links and Indexing

  • 1. App Links and Indexing Bringing your app out from the dust on web
  • 2. +Matteo Bonifazi Senior Consultant @ Open Reply Android Google Developer Expert Member of GDG Rome @mbonifazi matteobonifazi[at]gmail[dot].com
  • 3. 1/3rd of them How many apps do you actually use daily? avg of 33 apps How many apps do you have installed in your phone? *Google research in Us
  • 4. Back in 1997 1 Milion of Web hostnames 1M Web hostnames
  • 5. Today 1Bilion of Web hostnames - 1 Milion of apps in Google Play 1B+ Web Hostnames 1M+ apps in Play Store
  • 6.
  • 7. Case studies - https://developers.google.com/app-indexing/case-studies Acquire new users
  • 8. Case studies - https://developers.google.com/app-indexing/case-studies Re-engage existing users
  • 10. Add deep link support to app Verify website Publish app deep links Done Step 1 Step 2 Step 3
  • 11. Add deep link support to app Verify website Publish app deep links Done Step 1 Step 2 Step 3
  • 12. <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" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <!-- Accepts URIs that begin with "http://example.com/gizmos” --> <data android:scheme="http" android:host="example.com" android:pathPrefix="/gizmos" /> </intent-filter> </activity>
  • 13. <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" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <!-- Accepts URIs that begin with "http://example.com/gizmos” --> <data android:scheme="http" android:host="example.com" android:pathPrefix="/gizmos" /> </intent-filter> </activity>
  • 14. @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Intent intent=getIntent(); String action=intent.getAction(); Uri data=intent.getData(); … Intent intentNext=new Intent(this, nextGizmosActivity.class); startActivity(intentNext); }
  • 15. How to test adb shell am start -a android.intent.action.VIEW -d "http: //example.com/gizmos" com.example.android ADB Deep link testing toolhttps://developers.google.com/app-indexing/android/test
  • 16. Add deep link support to app Verify website Publish app deep links Done Step 1 Step 2 Step 3
  • 17. ● Create URL format for App Indexing ● Add App Indexing Markup to your website ● Verify your website on Webmaster Tools
  • 18. android-app://com.example/http/example.com/gizmos URI format for app indexing Protocol Package ID PathScheme
  • 19. <link rel=“alternate” href=“android-app://com.example/http/example.com/gizmos” /> App Indexing markup Approve request on Webmaster Tools - https://www.google.com/webmasters/tools <html> <head> ... <link rel="alternate" href="android-app://com.example/http/example.com/gizmos" /> ... </head> <body> … </body> In the web page
  • 20. Add deep link support to app Verify website Publish app deep links Done Step 1 Step 2 Step 3
  • 21. App Indexing API Re-engage users through Google Search App autocompletions
  • 22. How to implement compile 'com.google.android.gms:play-services-appindexing:8.3.0' build.gradle Uri APP_URI = Uri.parse("android-app://com.example/http/example.com/gizmos"); Uri WEB_URL = Uri.parse("http://www.example.com/index/"); URI definition @Override protected void onCreate(Bundle savedInstanceState) { ... mClient = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build(); ... } Google Client
  • 23. App Indexing API - implementation @Override public void onStart() { super.onStart(); ... // Connect your client mClient.connect(); // Define a title for your current page, shown in autocompletion UI String title = "Example Title"; // Construct the Action performed by the user Action viewAction = Action.newAction(Action.TYPE_VIEW, title, WEB_URL, APP_URI); // Call the App Indexing API start method after the view has completely rendered AppIndex.AppIndexApi.start(mClient, viewAction); ... }
  • 24. App Indexing API - implementation @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(); ... super.onStop(); }
  • 25. Android ● Dev Bytes - https://www.youtube.com/watch?v=aISUYHTkTOU ● Dev Bytes - https://www.youtube.com/watch?v=kYLrK-gD2Yg ● Codelab ○ 1.http://search-codelabs.appspot.com/codelabs/android-deep-linking ○ 2.http://search-codelabs.appspot.com/codelabs/app-indexing ○ 3.http://search-codelabs.appspot.com/codelabs/web-deep-linking ● Blog post - http://googledevelopers.blogspot.com/2014/12/four-steps-to-supercharge-deep- linking.html ● FAQ - https://developers.google.com/app-indexing/faq ● StackOverflow - http://stackoverflow.com/questions/tagged/android-app-indexing iOS - Just from iOS 9 ● Documentation - https://developers.google.com/app-indexing/ios/app ● Blog post - http://tinyurl.com/nmbrl4d
  • 26. Thank you ! +Matteo Bonifazi - @mbonifazi Senior Consultant @ Open Reply Android GDE matteobonifazi[at]gmail[dot].com