Use the Branch SDK (branch.io) to create and power the links that point back to your apps for all of these things and more. Branch makes it incredibly simple to create powerful deep links that can pass data across app install and open while handling all edge cases (using on desktop vs. mobile vs. already having the app installed, etc). Best of all, it is really simple to start using the links for your own app: only 2 lines of code to register the deep link router and one more line of code to create the links with custom data.
This SDK is a thin wrapper with helper classes to assist in building discovery experiences on top of the Branch Discovery API. This SDK and API allow your users to discovery tens of billions of deep links to app pages that Branch has indexed from its core linking platform used by tens of thousands of mobile applications and websites.