I have implemented Deep linking into my App: when the app is installed in the phone, it will open the app, else clicking on the browser it will redirect to the Google Play Store and give user the option to download the app.
My requirement is something like, when the user after clicking on the link gets redirected to Google Play Store and downloads the app, after successful installation of the app, the app should identify the URL from which it got redirected to the play store. I want to know whether it can be done via reading the intent or any other procedure is available to identify the same.
What you're describing is called Deferred Deep Linking (Deep Linking refers to using a link to open your app directly to a specific piece of content, and Deferred means that it works even if the app isn't installed first).
Unfortunately there's no native way to accomplish this on either iOS or Android. The Google Play INSTALL_REFERRER could work in theory, but it's unreliable and often gets delivered too late (i.e., seconds to minutes of waiting) to provide a good UX. URL schemes don't work, because they always fail with an error if the app isn't installed. Universal Links in iOS 9+ and App Links on Android 6+ at least don't trigger an error if the app isn't installed, but you'd still have to handle redirecting the user from your website to the App Store. You still can't pass context through to the app after install with Universal Links and App Links, so you wouldn't be able to send the user to the correct item.
To make this work, you need a remote server to close the loop. You can build this yourself, but you really shouldn't for a lot of reasons, not the least of which being you have more important things to do. A free service like Branch.io (full disclosure: they're so awesome I work with them) or Firebase Dynamic Links can handle all of this for you.
you can use FCM deep linking check this link dynamic-links
Related
I am working on a website for a product which also has an android application. I want to redirect the user from mobile web browser to the android application when a particular task is performed. I use a deep link of the format as below -
intent://#Intent;package=<PACKAGE_NAME>;action=android.intent.action.VIEW;category=android.intent.category.BROWSABLE;scheme=https;end
The issue is that this link is redirecting user to playstore if app is not installed. I wanted user to stay on the web browser if app is not installed. How can we achieve that?
As of now, i tried replacing the intent with https to produce link of the format as below -
https://#Intent;package=<PACKAGE_NAME>;action=android.intent.action.VIEW;category=android.intent.category.BROWSABLE;scheme=https;end
But it only works if I add the supported links from the app info, which has to be done manually. I am not sure if the fix for this is to be done in android on is there a way to handle this from the website?
I'm trying to setup deep links from a Facebook Ad to an app that I do not own (Shopee). Shopee does not provide any facility/guides to deep-link to them at the moment. I've tested that the app has properly setup deep linking on Android, i.e. clicking the link https://shopee.ph/Korean-Mini-Cute-Sling-Bag-i.30650129.2385916193 on Slack or Gmail properly opens the Shopee app.
Is it possible to make deep links work on Facebook for apps that you do not own? So far, I've tried doing the steps detailed in https://developers.facebook.com/docs/app-ads/deep-linking/. However, I don't know where to get some of the platform settings needed by Facebook:
iOS
Bundle ID - where can I get this?
iPhone Store ID - Seems this can be easily taken when visiting the app store. I can get some of the details from https://shopee.ph/apple-app-site-association as well.
iPad Store ID - Similar to iPhone Store ID I guess.
Shared Secret - I'm someone who has no experience with iOS and Android programming. I'm afraid this setting is something that I couldn't get?
Android
Google Play Package Name - Should be com.shopee.ph
Class Name - I think this can be known by going through the app's apk/files
Key Hashes - Can this be taken from the app's apk/files as well?
I tried compromising by linking the Facebook ad to my website that has deeplinks. But clicking the links will just redirect Facebook's webview to the product's web info rather than opening the app.
I guess this question boils down to whether it's possible to get the app's Shared Secret for iOS and the Key Hashes for Android.
Any response will help me go to the right path or end the path altogether. Thanks.
Sorry, but if you don't own the app then you shouldn't possess shared secret and key hash of the app.
Shared Secret and Key hashes both are something that is very specific to the app created. It is mostly controlled by the app owner in case you need it you have to get that transferred from the app owner. But I doubt anybody will do that.
Also, this is some kind of hack that you are doing this should be definitely avoided without permission from the app owner.
If you are the owner then for
- Android you can try this url.
Have you tried with Android Intents? They can directly link to an app (including deeplink information). Of course you wouldn't now if its installed through adds beforehand. Firebase Dynamic Links solves that problem where you can decide to link to website or Play/App Store as fallback. They also open the native app from facebook browser (and others) and use Android Intents under the hood.
Think you can't use Firebase Dynamic Links for an app you don't own. But if redirecting to your own website is an option maybe you can implement a similar mechanic.
Here is the chrome documentation for Android Intents:
https://developer.chrome.com/multidevice/android/intents
Adjust also has a summary article about deep linking, covering Intents and iOS:
https://www.adjust.com/blog/dive-into-deeplinking/
As your expected behavior to open app but now it will just redirect Facebook's web view to the product's web. Unfortunately it is not currently possible to directly launch a third-party app from within the iOS Facebook app. This is a known issue that Facebook has essentially written off as wontfix. This is still possible in the Android Facebook app, but it's unfortunate they haven't been more transparent about the change to the iOS version because there is quite a bit of confusion about it.
But you cna do the same thing using services like Branch.io get around this by implementing a judicious combination of App Links, URI schemes, and iOS Universal Links. Essentially what you need to do is open a page in the webview and then have a button or other user-driven CTA event that launches the app from there. It's an extra step for the user, but currently the best workaround. If you just want to be able to post a link that goes into your app when it is installed and otherwise goes to a webpage (or the App/Play Store), then Branch links are definitely your simplest solution.
Example:
Link : www.example.com/bje3x
The link will redirect to playstore or appstore url. So if user installs the app from the playstore, can we know if the app ins installed from the redirection URL above?
The question is tagged with firebase-analytics so I guess you are comfortable using Firebase. Then one possible solution for you would be to use Firebase Dynamic Links. They are designed for this use case.
In short you define what is your destination URL - kind of deep link - and if app is installed it just works as a deep link. If app is not installed, it can redirect to AppStore and then inside the app at launch you can retrieve your deep link. Of course it's a bit more complex than that, but essentially it allows you to know what brought the user in.
In the simplest form Dynamic Links use domain provided by Firebase (ending with .page.link) but you can also configure your own domain. Also you don't always get 100% matching accuracy, but for the most part - it should work.
There are also other solutions like branch.io etc. If you look for "deferred deep linking", "smart links" or "dynamic links" you will find more.
Yes we can achieve this by Deep Linking
A deep link is an intent filter system that allows users to directly enter a specific activity in an Android app. However there is an issue about this process. When a user click an URL, it might open a dialog which asks the user to select one of multiple apps handling the given URL.
On the other hand, An Android App Link is a deep link based on your website URL that has been verified to belong to your website. When user clicks that URL, it opens your app.
Please refer this Url
https://medium.com/#muratcanbur/intro-to-deep-linking-on-android-1b9fe9e38abd
I am using branch.io for integrating the deep linking in my Android App.
If the app was installed on device, it will redirect to an app along with parameter(Deep Link Data).
If the app was not installed on device, it will redirect to the Playstore page correctly. But after install the app and open it, the parameter wasn't sent into the app.
My question is how can I pass the parameter through the Playstore or is it even possible?
Alex from Branch.io here: yes, this is definitely possible! It's called 'deferred deep linking', and in fact it's one of our main features. Any data you attach to the link when it is created will be retrievable inside the app.
See this guide for more into on how to set it up.
On an Android device, opening a link to an app on Google Play:
https://play.google.com/store/apps/details?id=com.rovio.angrybirds&hl=en
will automatically open the Google Play app by default.
But if you have a link that redirects to the Google Play link, the device opens the browser and then navigates to the browser version of Google Play. Why does this behavior occur?
Unfortunately I cannot use the market:// with Intents which can open Play, I have only control over a web link.
edit:
Seems like if I have the link redirect to the market:// url, it can open with Google Play on device.
If link is opened in browser, somehow it is able to redirect to browser version of Google Play despite market:// not being supported in browser.
Use target="_top"
App
Basically, the https://play.... is just a web URL. I suspect the way this works (which is the way standard way Android works) is:
The Market Play App registers to be able to handle URLs of this kind (you can register to handle certain intents, and apply filters to further define what your app will handle).
The app launches the Intent with the https://play... URL
The User is presented with a list of all apps that are registered to handle that intent. SO, the User is able to launch the Play App - the first time (on the phone) the https:\play... intent is launched
When the user chooses which app to fulfill the Intent, if they select Browser (then set it as a default) - the Browser will launch (and will not offer the user the option the next time).
This default can be by: "Settings\Applications\All - Then find the Browser App, select it, and then select Clear Defaults"
You can either call the Play Market directly with the market intent, or use the URL way. I personally use the URL way - even though there are some additional challenges to use it (like handling this particular issue).
My guess would be that the behaviour is enforced by Google. Redirects would potentially make it easier for developers with bad intentions to install their apps. Google probably checks if the user comes from a redirect, and if yes it doesn't trigger opening of the Play app.