I want to implement a refer-a-friend kind of functionality onto my application such that every user will have a unique link directing to the apk and the user can share the link via different mediums. I am done with the generating link part, now I wanted to know how to identify the user hitting the link and also check whether or not the app was installed/downloaded. If it was installed, then I need to add some credits onto the link owner's account. And my issue needs to be resolved without the use of API's.
Any help would be appreciated.
For every user you need to have a unique code stored on your server, like A has FOO766, A has BAR456.
You can use Google's referrer feature. In this method, when you A shares your app to another user, you need to append a A's unique code with your app's Play store link. And when another user installs your app, a BroadcastReceiver of your app will be called, containing the code; with which you can verify referral. More info Google Campaigns.
Or you can do it manually. Whenever a user installs your app, ask him for the referral code, and you can verify the referral condition's over the server & can determine is it valid or not.
You can achieve this without api.
Create one Label which consist some data.
Now add Scheme for that at your application (Manifest).
After that write code at First screen which get value from that label.
https://developer.android.com/training/basics/intents/filters.html
FYI :
Myapp
Related
I want to create an app for different professions.
Each user will receive a unique custom store listing URL and will see relevant app info in PlayStore (Like app name, description etc).
Then I need to recognize the user in the app and use the user's API (Check screenshot below) to display relevant UI, how can I do so?
Maybe you have some suggestions for a better solution?
Thank you good sir/ ma’am and have a nice day.
Simple as this,
My affiliates send users to my app in google play,
on install my app picks up who sent that install.
Is that even possible?
Example:
https://play.google.com/store/apps/details?id=com.netmarble.mherosgb&someid=AFFILIATEID
I know I can have GA but I dont need that, I need my application to "know" exactly who sent the user who installed it.
InstallReferrerReceiver is broadcast which will fire when an app is installed from the Google Play Store
In onReceive method takes the referrer extra from the intent and breaks it down into key/value pairs to get all data from url.
See following example for more help:
Tracking install sources for Android apps
As per my understanding for your requirement it's seems to be not possible, Rather than you can do following things,
1) provide extra reference code field with your current field on registration page.
2) After registration provide each user unique code(via email or sms) and stored the same against the user registration details.
3) When user want to refer your app then user will provide there reference code to other user.
4) At time of registration user put that code in reference code field so it will become easy for you to know which user refer new user at time of its registration.
I like to implement Refer a Friend functionality in my mobile application (Android and iPhone).
User "A" will refer my mobile contacts via SMS (Referred user "B"). And if "B" install my referred application or the referred content, "A" will earn some reward points.
This is my scenario. Suggest me.
Thanks in advance.
I used Google Analytics Campaign to implement this scenario.
Another way to do this is to generate unique links for all your users, that they can then send out to their contacts.
Let's say User A shares a link with User B. When User B clicks on the link to get your app, rather than immediately redirecting to the App Store, you can make a call to your backend, with the goal being to create a digital fingerprint. Your backend can record the digital fingerprint then do a 301, 304 or 307 redirect to the App Store.
To create the digital fingerprint, your backend can then make a browser-based digital fingerprint including:
1. IP address
2. OS
3. OS version
(These can be grabbed from the request headers).
--
Later when the user opens your app, you should send up the same 3 things, IP, OS and OS version. If they match and are close time-wise, you know that they came from this click from User A's link! Then you can give User A a reward and thank him for getting User B to download the app. This is what we do at Branch Metrics, where I work. We also leverage a browser cookie that works across apps, so that we don't need to rely on fingerprinting except for the very first time we see a user in any of our apps.
You should also think about preventing fraud. You should prevent User A from referring himself, you should prevent User A from referring User B over and over, etc. This is something we work on everyday as well. Definitely spend time on fraud prevention unless you really don't care about giving out duplicate rewards to the same user. Please leave a comment if you'd like more info.
I need to be able to prevent the user from using my app until I allow him. The idea is that the app should be available for download but the user should only see activation screen when he launches it.
Then he has to request an activation key through email and use that key to unlock the app.
Is there a way to achieve something like this in Play Store and is it allowed?
I also don't like this idea but its my client's wish..
Note to moderators: I posted a similar question for the Apple Store but I want to keep both threads separated so please don't consider this as spam.
Google Play does not have such a feature out of the box.
I can however, think of 3 ways you can get it work. I am speaking strictly for the Android platform though.
You can design you app in such a way that the first screen should ask the user to get an Activation Code / Enter an Activation Code.
After the above, you can either store the Activation Code in a Preference File and check the value for its validity and start the application only if it matches / is valid.
Store the Activation Code in a Database and again, check the value and its validity and start the app if it matches / is valid.
Provide a couple of features and integrate Google Play In-app Billing and let the user pay a one-time fee to activate and enable all functions in the app.
These are the things I can think of at the top of my mind. Hope this helps.
No, There's no way to achieve this. You will have to create a functionality within your application.What you can do is make the user enter an activation key, if the activation key is correct make the user go to the next screen else don't let the user.
Thats something you would have to implement in your app. If there is some payment involved in getting the registration key then the solution is clearly against the play store rules.
i use similar system on my application. When user open the app first time. I ask for promotion code if this promoition code is true (i check it from back end service) user can use app for 3 months free. After this period end, app ask user to buy subsciription. You can do it using a backend service with interact a database.
Following are my problems:-
Is it possible to get the list of applications that a user has installed, against their google account through Google Play, programmatically through the use of any api?. Please note that I am not asking about the list of apps currently installed in the device, but ones that have at some point been installed.
I need a solution to the above as I am thinking of a scenario in my app, which is:
I want to give my app to the user for free during the first three months, after three months if user uninstalls the app and then installs it again I want to detect through any api (from Google Play) that the user has installed the app a second time (and should not get any free usage). Please note that I don't want to use any web service to store the account id & device id of the user at my side.
For option 2, you can create a file on the SD card. This will remain there when the user uninstalls/installs. But the user can always delete your special file. Unless you do something at your side, you are never sure if the user already used your app before.
To be completely sure, store it online:
You will need to have a very simple database which holds a list of device_id that installed your app.
Further more a webpage which fills this database.
In your app you download/open this webpage which the webpage will fill the DB.
App > WebClient (or other) which opens http://www.example.com/registerDevice.php?device_id=. The php site fills the db.
You app will need to check the database if the current device already has installed this app inorder to work/not work. You can do this via the same php and check the response. You could for example return 'ok' or 'not ok' or something else.
The simplest method is to get the account of the user the first time he/she runs the app, and send that detail over to you.
How this is can be done is well-documented over here: How to get the Android device's primary e-mail address
You will have to add another line of code to check back to the database at the first start of the app.
EDIT: For a non-web solution, simply add a timer to the start of your app:
schedule(TimerTask task, Date when)
the task should be adding a token AFTER the period of time you wish to give, to the phone's memory with the user's account details for authentication (see first solution on getting the account details)
Finally, as above, add a check-back to the phone's memory for that particular file to see if the user has used the app before.
The problem with any type of authentication that is based on the phone's memory is that people can easily remove the token, if they can find it, and reuse the app again.
Try this device specific implementation:
PackageManager packageManager = getContext().getPackageManager();
List<ApplicationInfo> applications = packageManager.getInstalledApplications(
PackageManger.GET_UNINSTALLED_PACKAGES);
// retrieves some information about all applications (even uninstalled ones)
// which have data directories
Of course this method won't work if user replaces the device. But you don't need to use any web service.
You can use this by keeping a database of hashed device id and users google id on a 3rd party server.
Also see http://android-developers.blogspot.de/2011/03/identifying-app-installations.html