Overview of deep links and app indexing for iOS and Android apps on both Google and Bing.
Includes implementation details on setting up deep link support in mobile apps and annotating a website to expose these URIs for app indexation.
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/
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);
}
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
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>