Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How is Google's App indexing different from Facebook's App links?

  • Both of them seem to provide a way to add the concept of urls to native apps
  • As far as I understand, Facebook tried to set a standard with App links for the problem
  • I am not sure where does Google's app indexing diverges from the same idea

Android App Indexing says way to index app to map corresponding content on the web

where as

App links says app-to-app linking specific content

Both suggests, have a url-like structure to target specific content on apps to target from outside the app (may it another app or web)

What I want to find out:

  • When creating my app should I do both or can app-links serve for both (since its a standard) or how to benefit from both ?
like image 993
Yugal Jindle Avatar asked Feb 26 '15 22:02

Yugal Jindle


2 Answers

You can implement both. AppIndexing also now affects personalized search ranking , so it may yield better results for your Android users .

Quoted from page above in case the link rots:

Starting today, we will begin to use information from indexed apps as a factor in ranking for signed-in users who have the app installed. As a result, we may now surface content from indexed apps more prominently in search.

If you have a lot of audience on Android, I'd recommend using AppIndexing. If you have a lot of users on Facebook, I'd recommend using App Links. If you have both, do both!

To directly answer your question, you can't rely on App Links to fulfill AppIndexing, but you can probably do the work at the same time with minimal additional effort.

Edit

To better answer your question, you should be able to structure the expected URIs to be the same for both. This would enable the handling of the Intent in the Android client to support both incoming AppLink URIs and AppIndexing URIs.

Edit 2

Example URI structure to support both AppIndexing and AppLinks.

Let's say you have an Android app called SuperLinks with the package name com.example.superlinks, you want to create a schema to address a specific resource, called examplelink #1234. Your URI schema would be superlinks://examplelink/1234 which you could implement the Android client handling once, while adding the 2 differing pieces to the webpage's head.

Your AndroidManifest.xml would contain Intent filters to handle the schema you've created as such (Reference): ... <activity android:name=".YourActivity" android:label="@string/app_name" > ... <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <data android:scheme="superlinks" /> </intent-filter> </activity> ... Note the action and category flags are necessary for the app to be listed as an option in the chooser when a user attempts to open one of your schema links.

To support AppIndexing, you'd add the following to your page's head (Reference): <head> ... <link rel="alternate" href="android-app://com.example.superlinks/superlinks/examplelink/1234" /> ... </head>

To support AppLinks, you'd add the following to your page's head Reference: <head> ... <meta property="al:android:url" content="superlinks://examplelink/1234"> <meta property="al:android:package" content="com.example.superlinks"> <meta property="al:android:app_name" content="SuperLinks"> ... </head>

like image 192
PrplRugby Avatar answered Nov 04 '22 12:11

PrplRugby


You should implement both.

You can actually have the same (or very very similar) code on the app side to handle the incoming link, but on your server side, you should implement both.

like image 41
Ming Li Avatar answered Nov 04 '22 11:11

Ming Li