Find out why an Android app is being uninstalled - android

My app is having success in Google Play with several million downloads. However, almost 50% of users have uninstalled it already.
I don't think that's a critical number but I'd like to find out why users uninstalls it, so I'd like to ask it to users using a simple form, only to the ones who want to answer of course.
Now problem is when to show that optional form. I've seen I can't use ACTION_PACKAGE_REMOVED because app that's being uninstalled won't receive that broadcast.
Of course I don't want to ever forbid the user to uninstall my app, but I do want to know when to start my optional form. Can you think of any idea how to do this?
Also, I've seen that Google Play asks the user why he's uninstalling any app and gives a few options (missing space, don't need it, ...). Is there any way to get those responses from Google, regarding my app?
If you can give me any other ideas how to investigate main reasons why users uninstall my app, to improve it, I'd be really thankful.

Once the user uninstalls the app, there's nothing you can do. 50% retention rate isn't actually that bad..
I would propose you look at how the users are using the app, whether it's crashing and how often it's being used: these can then lead as indicators to make an educated guess why they might be uninstalling your app.
Crashes:
These aren't always reported - it's only if the user elects to report it you'll see it in Google Play. Try Crashlytics for a more detailed analysis of how/when/why your app crashes.
Analytics:
I use Flurry to log events and work out what my users are doing. You could also look in to some A/B testing.

Related

Sensitive permission issue while publishing my new app

I have created an Android app after months of hard work and when it came to publishing, Google straight away rejected it.
Google says i am using a sensitive permission PROCESS_OUTGOING_CALLS. To use this permission either my app shall be a default call handler or my core feature shall fall under the exceptions they have provided. If my core feature doesn't fall under those exceptions which it actually doesn't, then i must report a new use case. I reported new use case properly and waited for two weeks NO RESPONSE. I tried publishing my app again as exception "device automation". It got rejected again saying my app doesn't fall under this exception.
Basically what my app does is, base on phone number to which call is being made, it shows some personalize data on an overlay screen over dialer. ( Cannot tell you the complete details, i am really sorry for that). No it is not a caller id or spam detection either.
I went through Google document over and over to see if i missed something.
https://support.google.com/googleplay/android-developer/answer/9214102?hl=en
I couldn't find any.
My time and money has been invested in this and i can't start showing it to people.
If someone came across same issue and able to resolve it please help.
And if more details required please comment i will provide.
I've encountered the similar problem with Google a while ago but with this sensitive permission.
From my experience - the chances that the use case you submitted will be approved is near zero.
There are two things you can do in this case:
either extend your app to fall under one the exception cases.
or go the path I went - change your app main purpose to be the default dialer and your current main feature would be just a minor perk. (make it extendable to add more minor features in future)
This is the easiest way to publish your app. Well frankly I see it as the only solution possible - Google is known for its strict "You are banned and I'm not gonna change my decision" policy. Youtube and Play Store have tens of thousands ban stories non of which is ended in a user beneficial way.
Hope it helps.

Proper way to alert user of iOS app issue

When developing Java apps used internally by users in the company I work for, I would have the app display a message such as "An issue occurred. Please contact the Help Desk and report it", when an issue occurs with the app that is being used.
Now that I am learning to develop mobile apps on my own, I am faced with the question of how best to handle app issues in this environment, since there really isn't a help desk.
My initial thought was to asynchronously call a service to log the error. But, remote communication may not be possible. Then, I thought to display an error alert with a number to contact or e-mail address to mail to report the issue. But, is that really best practice?
So, for mobile apps, what is the best practice for capturing issues or having users report them, so that they can be properly addressed and not have them become very frustrated with your app, especially if the root cause may be related to something that is out of your control, such as an issue with a godaddy server, which hosts a database used by the app?
Thanks in advance
For recording crashes, you could use Crashlytics, so that you can see the device log when that crash occurred and investigate the reasons to improve your app / prevent the crash from happening again in the future, or reaching out directly to the specific user (as you could record user id / email addr in Crashlytics) if you for instance see the app crashes for her/him repeatedly.
For issues/problems the app experienced (but it didn't crash), you can use things like Rollbar to record the incidents. You can put special logic in your app, especially places that are prone to failure, or whenever your app recognizes "an issue".
If you want to have a place in your app that users could search for FAQs, ask questions or provide feedback and concerns, you may want to use things like UserVoice to provide a central hub.
[Things aforementioned may not be free software.]
You can use Crashlytics and if you do not want to go for third party then you can read all of your logs from iOS SDK for your app,so you can go for it as well
or there is always solution with third party softwares

Manual refund issue

I have a customer that has requested a refund (as his 15 minute window in play store has expired). If I give him a refund manually, the play store (as far as I know) will still allow the user to reinstall if uninstalled, and the app will still be on his phone and usable.
I need to know a way around this, something I could code into the app perhaps. I considered having the app grab the device id and upload it to a remote server, and if its in the DB then the app pops up a window and wont run. The issue with this is it becomes specific to that device, if the user gets a new phone, or installs on a different device, it will work.
What could I do to make it so that upon giving someone a manual refund, they cant reinstall. I dont want people being able to get a refund and then just use the app for free.
Ive seen a few other similar questions here about this kind of thing, but they all were closed due to not being programming related. I want to make sure its known that I am asking a programmatic question, as I hope to implement some sort of check into the app.

Automatically sending sms from Android and IOS

As I understood, it is possible but such applications are not allowed in the official stores.
The app should get permissions in advance, from the user, and then, at random times, send an SMS to a random user from the phone contact-list, without further user interaction.
My questions are:
1) Is it possible at all?
2) If so, is it something that the official stores will approve?
1) In Android this is possible. If I recall correctly, there is no API for sending sms in iOS, without going through the stock sms application.
2) It's sketchy... Apple would probably not approve this kind of application, if it's even possible to make in iOS. Its never a good idea doing things behind the users back.
Apple will definitely NOT approve this kind of app!
I have tried this for over 2 years now, even contacted Apple - there is no approval for this!
There has been an App in iTunes at sometime (how that could have passed the review process - nobody knows) This has been removed as soon as Apple got to know about this.
Besides the approval issue, there is no OFFICIAL way to even accomplish this.
While there are/were some direct calls to private libraries, using these would immediately be identified (even automatically nowadays).
Just stick with Apple's rules if your App allows - give the user some background information, why they need to explicitly press "send" again - otherwise you might get some bad reviews, since this fact is certainly not known among all iPhone users.
In Android this is just a normal usage of SmsManager.getDefault();

intermittent erros with android (google play) in-app purchase

Some people trying to do in-app purchase within my Android game report that they can never complete the purchase -- that they always get an error message. (I.e., The market app reports an error to my application, and I show the user this error.)
Unfortunately, I don't have any real log data for this one, because it only happens for certain customers of my game, not for me.
What's strange is that after updating to a new version of the app, for some users the problem goes away, and for some users the problem starts. So user A might have the problem in version 1 of the app, but it clears up when they update to version 2. User B might not have the problem in version 1, but it appears when they update to version 2.
I say "intermittent" above, but by that I mean that it only seems to affect a small number of users. But for any given user, once they get in this state, they seem to get the message all the time. HOWEVER, I have had some cases where the problem does clear up suddenly, without an app update. I'm not sure if, for instance, power cycling, or, say, making an in-app-purchase in another app is away to "break out" of this state.
I realize that without a specific error message or API call to name/blame, this question is difficult to answer. I'm just trying to understand if this pattern -- of some users mysteriously getting stuck in a state where they are unable to make any in-app-purchase within a given app -- sounds familiar to anyone for Google Play in-app-purchase.
Also, I build my apps on top of Marmalade, so it's possible that the problem is in the Marmalade layer, not in my app or in the Google Play market itself.
The same problem here: a lot of users can buy items in my app but some users send me emails complaining why they can't buy considering that they can successful purchase items in other apps. I think it occurs because of a temporary problem on the Google Play server or is something to do with the service on Android. I am still looking for an answer to this weird problem...

Categories

Resources