This document discusses how app indexing works to connect mobile apps to search engine results. It explains that app indexing allows mobile apps to be indexed and accessible via Google Search. It provides steps on implementing app indexing for iOS using Xcode and Firebase indexing, as well as for Android using Android Studio, Firebase, and Android App Links. The document emphasizes structuring app links to match website URLs and adding entitlements and files to connect apps to websites to enable app indexing.
2. @exceldaddy
● Have been surviving the tech industry
through cake bribery
● Undying love and passion for Technical
SEO, data processing and visualisation.
This is me
● Senior SEO Manager At Kaizen,
a growth marketing agency.
● You can follow me on twitter,
at @exceldaddy
3. @exceldaddy
How did I get into apps?
As the world is becoming more
mobile-first, it makes sense to
review the app strategy as part of
the mobile strategy.
People are either going to be on
your website, or your app, so it
makes sense to understand the
relationship between the two.
4. @exceldaddy
The general organic app activity
APP STORE
OPTIMISATION
FIREBASE
INDEXATION
APP STORE
SUBMISSION
Optimising your app
store listing for rankings.
Submitting your app to
index and rank in Google.
Uploading your app
listing into the app
store(s).
7. It’s a platform to engage customers and sell to them.
Website Mobile Apps & Other Websites
Display Advertising, Social Media Apps.
Offline Advertising
Billboards, Television, Magazines,
Papers.
Search Engines
PPC, SEO, Google My Business.
App
Software
Stores
8. @exceldaddy
The key benefits of apps
Better Experience Keeps User In App
The mobile app is better
designed for a mobile
experience, improving
engagement as the
overall UX is more
suitable.
Once users are in the
app, it incentivises them
to stay on the app, as
opposed to browse
other sites, improving
retention rates.
9. @exceldaddy
If a customer has an
app downloaded…
make the most of it.
While you can visit a website directly, or walk into a store… apps and
software require download before being able to engage with the
platform, and make purchases.
11. Firebase (app) indexing, also known as universal linking, is the process of allowing a mobile
app to be indexed, and therefore accessible, via Google Search.
What is firebase indexing?
12.
13. @exceldaddy
Why Firebase Indexing is beneficial
Install Button Better Experience
Keeps User In
App
The mobile app is
better designed for a
mobile experience,
improving
engagement as the
overall UX is more
suitable.
Next to the
homepage in the
search engine
results, an install
button is present,
incentivising users to
download the app.
Once users are in the
app, it incentivises
them to stay on the
app, as opposed to
browse other sites,
improving retention
rates.
Autocompletions
Firebase App
Indexing on Android
lets users see the
app content directly
from suggested
results in the Google
application.
App Awareness
The main aim of this
is to build app
awareness among
likely converters,
who may not be
aware than an app
exists.
15. @exceldaddy
Xcode is an integrated development environment
(IDE) for macOS containing a suite of software
development tools developed by Apple for developing
software for macOS, iOS, iPadOS, watchOS, and tvOS.
...the associated domains entitlement needs to be
added into Xcode.
To get started with iOS apps...
The com.apple.developer.associated-domains
entitlement in Xcode lists each domain associated
with your app.
16. @exceldaddy
A file needs to be uploaded onto app and site
Website Mobile
App-to-site association
JSON file
com.apple.developer.associate
d-domains entitlement
17. @exceldaddy
1. Open the project’s Signing & Capabilities tab in Xcode.
2. Click Add (+) at the bottom of the Domains table to add the domains you want your app
to share credentials with. To match all subdomains of an associated domain, specify a
wildcard with the prefix *. before the beginning of a specific domain.
Each domain you specify uses the following format: <service>:<fully qualified domain>
For example, to capture subdomains: applinks:https://*.example.com/
Here’s how it looks like
18. @exceldaddy
Then create the app-to-site association JSON file
The app identifiers need to be listed in the applinks service. The following JSON code
represents the contents of a simple association file.
{
"applinks": {
"apps": [],
"details": [
{
"appID": "9JA89QQLNQ.com.apple.wwdc",
"paths": [ "/wwdc/news/", "/videos/wwdc/2015/*"]
},
{
"appID": "ABCD1234.com.apple.wwdc",
"paths": [ "*" ]
}
]
}
}
19. @exceldaddy
The file contains the following information
Your iOS App ID
This can be found in the iTunes store
URL as the string of numbers directly
after id.
For Example, in
https://itunes.apple.com/uk/app/urbans
poon/id284708449 the ID is:
284708449.
You can connect parts of your website
to the app, depending on what is
relevant, or the whole site.
If you are connecting the whole
website, then you would type:
"paths": [ "*" ]
Area of site to connect
20. @exceldaddy
The file’s URL should match the following format:
● The uncompressed file size cannot be greater than 128KB.
● You must host the file using https:// with a valid certificate
and without using any redirects.
● The file must have the MIME type application/pkcs7-mime and
it must be CMS signed by a valid TLS certificate.
If the app needs to be connected to more than one website, such as
subdomains or microsites, this all needs to be listed and uploaded.
There are some technical requirements for it to work
Website
contains
association
file
App
contains
entitlement
file
21. @exceldaddy
Then upload the app-to-site association
JSON file to the .well-known directory of your
website.
Like this: https://<example domain>/.well-known/apple-app-site-association
...that’s it.
22. @exceldaddy
How do I test to make sure it works?
Implementation can be validated using external tools, as you cannot test universal links
within an XCode simulator.
To verify that your iOS Universal Links work properly in Google Search:
● Go to Google Search on an iOS device and search for your app content.
● Click the link to your app from the Search results and verify that it opens in your app
and takes you to the right content.
25. @exceldaddy
You don’t need to understand exactly
how Handoff works as a marketer to
implement universal links…
But if you want to learn more, you can visit these resources:
● Apple’s Handoff Resource Hub
https://developer.apple.com/handoff/
● WWDC 2014: Adopting Handoff on iOS
https://www.youtube.com/watch?v=ee-N2a7Qug8
29. @exceldaddy
In summary...
1. 2.
Add Firebase and the App
Indexing library.
Structure links to your app
content.
3.
Add Android App Links to
your app.
31. @exceldaddy
The approach
Use the Android Studio Firebase
Assistant
Add Firebase using the Firebase
console
In your project-level build.gradle file, make sure to include Google's Maven
repository in both your buildscript and allprojects sections.
Add the dependency for the Firebase App Indexing Android library to your
module (app-level) Gradle file
Add
Firebaseto
Android
Project
UpdateBuild.Grade
33. @exceldaddy
Add Firebase using the Firebase Assistant
1. Open your Android project in Android Studio.
2. Select Tools > Firebase to open the Assistant pane.
3. Choose a Firebase product to add to your app. Expand its section, then click the tutorial link.
4. Click Connect to Firebase to connect your Android project with Firebase.
5. In the Firebase Assistant pane, click the button to add the library dependency for your selected Firebase product (for
example, Add Analytics to your app).
6. Sync your app to ensure that all dependencies have the necessary versions.
7. In the Firebase Assistant pane, follow the remaining setup instructions for your selected Firebase product.
34. @exceldaddy
What is the build.gradle script?
Gradle is a build system (open source) which is used
to automate building, testing, deployment etc.
The build script defines a project and its tasks.
Android Studio uses Gradle, an advanced build
toolkit, to automate and manage the build process,
while allowing you to define flexible custom build
configurations.
The build process of a typical Android app
module.
35. @exceldaddy
Next, add app indexing library to your apps project
Do this by adding the following dependency to the app’s build.gradle script.
dependencies {
...
// To avoid errors, use the same Firebase SDK version across your app.
implementation 'com.google.firebase:firebase-appindexing:19.1.0'
...
}
implementation 'com.google.firebase:firebase-appindexing:19.1.0'
37. @exceldaddy
The structure of the app needs to be
defined and corresponding app screens
need to be created matching HTTP URLs.
URLs which point to the pages on the
website should be the same URLs that
point to the views on the app.
38. @exceldaddy
Once this is done, back navigation is also
required where users can return to the
previous screen if they tap the back button
after opening a link.
40. @exceldaddy
What does this mean?
Android App Links help you make sure users land in the right place when they open a link to
your app. Android App Links include two major components:
● Deep links to your app content
To define the HTTP URL mapping you set up in the step above.
Then configure your app to use data from the intents to send users to the right content.
● Link verification
The App Links Assistant in Android Studio walks you through the process outlined in the
Android App Links documentation.
42. @exceldaddy
When should I not
implement firebase
indexing?
...when the app is
worse than the
website.
43. @exceldaddy
App analytics doesn’t break out organic data
Both app analytic platforms do not have a breakdown into which views specifically gain
traffic, meaning we need to rely on 3rd party companies for help.
iOS uses Apple App Store Connect Android uses Google Play Console
44. @exceldaddy
Third party mobile attribution partners
https://www.appagent.co/blog/2020/03/02/whats-the-best-mobile-attribution-partner-for-your-app/
45. @exceldaddy
Once implemented, you can look into the following
(Android only)
Build Index
Enables personal content indexing for
Google app.
Can also refine public content from
indexing (noindex).
Users can see app pages they’ve
visited as suggested results in
Google’s app.
Improves quality of search results by
serving relevant content faster.
Log User Actions
46. Thank you! :)
You can find the slides at:
Any questions, get in touch with Serena Pearson on Twitter at @exceldaddy
slideshare.net/SerenaPearson2