I have two types of deeplinks. An install deeplink that should try to open the application if installed and then fallback to opening the play store if the app is not installed. The second deeplink; however, tries to open the app if it is installed, otherwise it opens a web page as a fallback.
The problem is that when I add a referrer parameter to the package, it starts opening the play store even if the application is installed.
Install deeplink:
Intent://mypath/?cc=de&tagset=2#Intent;scheme=myscheme;package=com.mypackage&referrer=myreferrer;
Opening deeplink:
Intent://mypath/?cc=de&tagset=2#Intent;scheme=myscheme;package=com.mypackage;S.browser_fallback_url=my_fallback_web_url;
Android will use everything that is between package: and ; to determine the packagename of the app to launch/install.
In your example, the package will be com.mypackage&referrer=myreferrer which is different from com.mypackage.
You could instead use S.referrer=myreferrer; instead and parse it in your app.
The solution is to use an undocumented extra parameter S.market_referrer=.
Source
Related
I created Manually Dynamic Link URL as below
https://uatandroidbetaprogram.page.link/?link=https://*******.com?YourDomain%3Dwww%26OrgID%3Dorgtest%26UserWelcomeName%3DJay%26UserAccountName%3Dr*****#*****.com&apn=*********&amv=10&afl=https://play.google.com/apps/testing/******************
1) In above url I use amv=10. my expectation is if old version app install on phone and if I click the above link it should upgrade the app. But it will just open the app
2) What is the use of amv and how to use it?
3) If old app installed on phone and I open google play store and try to update that time also it will open the app not update the app
Please provide me some solution
Thanks in advance.
If you use the debug view (&d=1 on the link) you can see there are a few warnings which may be preventing the behavior:
https://uatandroidbetaprogram.page.link/?link=https://***************.com?YourDomain%3Dwww%26OrgID%3Dorgtest%26UserWelcomeName%3DJay%26UserAccountName%3Dr********&apn=****************&amv=10&afl=https://play.google.com/apps/testing/***************************&d=1
What you describe is the intended usage of amv, so it should work as you're expecting. Make sure it matches the versionCode parameter in your AndroidManifest.
I want to implement an app invitation, which I can share to users via a link
Hi, you've been invited to so and so. Click here to accept!
http://myapp.com/?foo1=bar1&foo2=bar2
The link itself will redirect to the google play store, but I want to keep the foo1 = bar1, foo2 = bar2. And when the application has been launched, I want to get that data and do something with it.
Is this at all possible?
If there's not, is there another way that I could go about this?
Thanks!
You could use the Google Play referrer API. There is a a library, the Play Install Referrer Library which wraps this in a slightly easier to use interface.
getting data from the download url
`https://play.google.com/store/apps/details?id=com.example.myapp&referrer=utm_content%3Dgroup232`
after first install, get the referrer and its content (eg. get "group232")
Check here for more details
https://developer.android.com/google/play/installreferrer/library
I have an Adjust URI with for my app "myapp" for the method "mymethod" which calls 3 parameters: param1, param2, param3
as you can see here:
https://app.adjust.com/123abc?deep_link=myapp%3A%2F%2Fmymethod%3Fparam1%3D3.5516%26param2%3D3.5629%26param3%3D2016-10-16
If my app was already installed, everything works very fine and those 3 parameters are then aleady set on app start into the proper TextEdits already.
If my app was not installed, the Playstore is called, with the invitation to download the app. I have to press in PlayStore Open to start the app then, to start the app. But the 3 parameters were not set on startup?
EDIT: As you can see in the trailer that my deeplink is not online and the scheme has the form:
myapp://mymethod?param1=3.5516¶m2=3.5629¶m3=2016-10-16
Those parameters are taken over hand handed to this app. That means When I call that URI myapp starts with those paramters already set in the TextEdit's.
BUT when myapp was not installed, PlayStore is opened with myapp ready to be installed. Starting the myapp afterwards does not take over the parameters into that app (as in calling that URI with preinstalled myapp)
Is your deep link path immediately accessible after install? If there is a signup/login process that blocks access to that URI path, this could be why (Adjust docs).
Deferred deep linking is not a core part of the Adjust platform, so flexibility is somewhat limited. If you need a more comprehensive solution, you could check out Branch.io (full disclosure: I'm on the Branch team). The Branch platform gives you significantly more deferred deep linking options, and also integrates with Adjust to synchronize all your data.
I'm using Branch lib an Android to generate links that I send afterwards via sms. If user has no app installed on the phone, your link correctly transfers to Play Store ( the link in the dashboard ). After installing and running the application it receives all data from the link as expected.
However, if I have the app already installed on the phone, pressing the link does not open the app but redirects me again to Play Store. If I press the "Open" button there, the app receives the information but how about running the application directly from browser? I saw our iOS implementation of the same lib and it works flawlessly - i.e. when I have the app and I press the link it opens the app without sending me to store.
Perhaps I did something wrong in my declaration in the manifest?
Thanks in advance,
Kalin
Chrome requires an intent string that matches what's defined inside your Android Manifest to properly open an application found on your device. If something's off, Chrome wont open the app. If you're using Branch for deeplinks, you need to make sure the following match:
TL;DR, make sure these match on Branch dashboard and Manifest
package name on branch dashboard is the same as your app build's
host="open" on Activity, because Branch formats intent strings as scheme://open
URI scheme registered on Branch is the same that's found in your AndroidManifest.xml
The same Activity has the following property: android.intent.category.BROWSABLE
The longer explanation is that Branch takes the link tied to your account, and constructs an Intent string that looks like the following:
intent:
HOST/URI-path // Optional host
#Intent;
package=[string];
action=[string];
category=[string];
component=[string];
scheme=[string];
end;
When Branch does the redirect, we pull the scheme and package from your account, and assume you have set android:host as open:
intent://open#Intent;scheme=scheme;package=package;end"
And place that inside window.location. If the registered scheme on your dashboard or package don't match, or open isn't specified in the android:host key, then you'll be taken to Chrome.
It's also important to specify the following android.intent.category.BROWSABLE as a category filter. More information on intent strings here.
So I have a mobile web that would try to open my android app, if it does not exist, it would fall back to google play.
for chrome, i use this intent:
intent://some_data_sent_to_app#Intent;scheme=app_scheme;package=package_name;end
and it works fine,
now I want to send some referrer string to google play for the INSTALL_REFERRER in an app.
I tried the following link, it has no problem of sending data to google play, but it would not try to open the app
intent://some_data_sent_to_app#Intent;scheme=app_scheme;package=package_name&referrer=referrer_string;end
I wonder what is the correct way to open the app and fall back to google play with the referrer data being passed?
Looks like it can be done by passing S.market_referrer=referrer_string
For example
intent://some_data_sent_to_app#Intent;scheme=app_scheme;package=package_name;S.market_referrer=referrer_string;end
I have not tested this, but there are some check-ins in the chromium repo for this, don't know if it is available in the current version of chrome.
https://codereview.chromium.org/2061493002
This is a known issue that I am working with the team to get fixed. Someone in the past suggested that you can use intent://some_data_sent_to_app#Intent;scheme=app_scheme;package=package_name&referrer=referrer_string;end however the logic of this has never worked specifically because the Chrome browser (and Android Browser) look for a package id that is direct copy of the string which is parsed as package_name&referrer=referrer_string.
With the new scheme, you can pass arguments as extras to the App, but you must encode the URI as follow:
Do Whatever
source