About half a year ago we released a huge update to the app, and with this introduced new permissions to the app (GPS / Bluetooth related, etc)
Half a year is plenty of time for users to update, however in Google dev console we still shows a large percentage, about 30% of the user base still using the old version.
I'm assuming this is due to
New Permissions require Manual updates, users must to hit 'Accept' before installing the
update, and new update is being bypassed by Auto-Update
Some users have disabled Auto-Update and never update at all
Probably some percentage of old / abandoned devices
We're looking to address #1 as we experienced that making changes to app's permissions creates fragmentation pockets within the user base.
A potential solution would be to show a periodic "in-app" notification prompting users to update. But the problem is how to release an app update only reaching those old version users without impacting current users, as we cannot remove new permissions.
A hypothetical approach would be an in-between update, but the dev console does not allow lower app versions.
Are there any solutions available for reaching stuck users on old versions, or any work arounds that could be recommended?
New Permissions require Manual updates, users must to hit 'Accept'
before installing the update, and new update is being bypassed by
Auto-Update
I don't think you can bypass the prompt for the manual acknowledgment.
My best practices for using adding new permissions are:
Always adding creative release notes to explain why I need these permissions, so the user will download the update.
Luckily with Android M your users won't experience this
Are there any solutions available for reaching stuck users on old
versions, or any work arounds that could be recommended? Thanks!
Once a user is lost, it is very hard to get them back.
You can use your analytics to determine which popular devices are using your old app version.
Depending on the time/resources you have, multiple apks and segmentation based on devices can help you in this situation.
http://developer.android.com/google/play/publishing/multiple-apks.html
A potential solution would be to show a periodic "in-app" notification
prompting users to update.
This logic can live client side and if done right users running your current version do not see that.
Hope this helps or leads you in the you are hoping for.
In the past I managed this sort of situation by having the app periodically check-in with my backend server to report the app version number. The server would check the app version number against what the server supports and if an upgrade was required the server would return a message that the app would then prompt to the user asking them to update. Obviously that doesn't help you with your existing 30% of users but it might help in the future.
I would also think it would help to release an update that targets Marshmallow and then you could use the newer permission model and prompt users for what permissions you need. I would think that would then allow the 30% on the older version of your app to auto-update or update without having to confirm permission changes in the play store. Those users would then be prompted in the app for whatever permissions you require.
Related
I saw few posts about it but most of them seem to be outdated.
I have an app published in the Play Store and it has already published version codes 1 to 6.
I have found in those releases some serious bug and I published a new release with version code 7.
The new version has an in-app update to make sure in the next times that the users will update to the latest release but right now it won't make any effect on the previous releases since they didn't have this code in them. Is there a way I can make version codes 1 to 6 to download the latest version?
As long as users keep using versions 1 to 6 I can add some critical features and I need them to make this update.
Also, I use Firebase firestore/realtime database/fcm/storage/authentication. Is there a way I can do it from there? The only thing I can think of is to send cloud message for the users to update the app.
Thank you
Is there a way I can make version codes 1 to 6 to download the latest version?
No, sorry. Let your users know by whatever other communications channel(s) you established (site announcement, blog post, Twitter/Facebook/etc., email newsletter, ...).
Unfortunately, for the users who are using version codes 1 to 6, there is not much you can do. I don't know what's the logic behind your existing "in-app update" option, but if the users can skip that step, you end up having the same problem.
To solve this kind of scenario, we usually add the version of the app to the database, and each time we open the app, we check that value against the one in the app's code. If there is a match, it means that no update is required, otherwise, we "force" the user to update the app to the latest version by opening the app's page from Google Play.
Another solution might also be Android In-app updates:
When your users keep your app up to date on their devices, they can try new features, as well as benefit from performance improvements and bug fixes. Although some users enable background updates when their device is connected to an unmetered connection, other users might need to be reminded to install updates. In-app updates is a Play Core library feature that prompts active users to update your app.
I saw few posts about it but most of them seem to be outdated.
I have an app published in the Play Store and it has already published version codes 1 to 6.
I have found in those releases some serious bug and I published a new release with version code 7.
The new version has an in-app update to make sure in the next times that the users will update to the latest release but right now it won't make any effect on the previous releases since they didn't have this code in them. Is there a way I can make version codes 1 to 6 to download the latest version?
As long as users keep using versions 1 to 6 I can add some critical features and I need them to make this update.
Also, I use Firebase firestore/realtime database/fcm/storage/authentication. Is there a way I can do it from there? The only thing I can think of is to send cloud message for the users to update the app.
Thank you
Is there a way I can make version codes 1 to 6 to download the latest version?
No, sorry. Let your users know by whatever other communications channel(s) you established (site announcement, blog post, Twitter/Facebook/etc., email newsletter, ...).
Unfortunately, for the users who are using version codes 1 to 6, there is not much you can do. I don't know what's the logic behind your existing "in-app update" option, but if the users can skip that step, you end up having the same problem.
To solve this kind of scenario, we usually add the version of the app to the database, and each time we open the app, we check that value against the one in the app's code. If there is a match, it means that no update is required, otherwise, we "force" the user to update the app to the latest version by opening the app's page from Google Play.
Another solution might also be Android In-app updates:
When your users keep your app up to date on their devices, they can try new features, as well as benefit from performance improvements and bug fixes. Although some users enable background updates when their device is connected to an unmetered connection, other users might need to be reminded to install updates. In-app updates is a Play Core library feature that prompts active users to update your app.
I have an Android app published on Google Play. The issue is that only 5% of its users have updated it to the latest version. I'm guessing they are either not using the app and/or have turned auto updates off.
Is there a way to communicate to them using, let's say, notifications that a new version is out and they need to update the app?
I have implemented the In-app-update API into the newest version but the thing is that the users will first have to update to this version, before they get in-app pop ups about app update.
Any help would be a great help!
Thanks
Unfortunately I think you're out of luck. Unless another avenue was implemented in the older version of the app to allow for some sort of notification, there is no way to contact users who have not updated. The best you can hope for is that the users notice they have a pending update in the Play Store, and decide to update.
The only things that I can think of (based upon the assumption that old app has no code to deal with a newer version):
If oldApp supports Push notifications, you may have a chance firing one to let your users know (not super reliable for they may have them disabled)
You can try pulling the app from the Google Store (so they can no longer download it), this will cause your users to get the new one if/when they reinstall or try to find it again.
If there's a backend service your App talks to, and you can tell which version of the client is calling you (I'd hope this is something you did... as it's pretty basic), then you could start returning 500 errors and let your users "see the app no longer works" and deal with the support tickets and reviews and what not... but at least you can tell them: "download the latest version, I no longer support that".
I cannot think of anything else that you can remotely do.
I'm trying to help my company develop a strategy on when we should require customers to upgrade their installed mobile app prior to interacting with our back end services.
Right now, our apps have been on the market for 20 months and we've done numerous revisions to the app and the backend services. Only one of those has 'broken' anything so that customers using older versions of the app were no longer able to use the app without upgrading to a new version. We have apps for iOS, Android and Kindle Fire, all of which use the same backend services. We currently have the ability to require customers to upgrade, we're just not using it.
So the two questions:
1) Do you require users to upgrade, and if so
2) How many older versions of the app do you support.
(Additional info, this is an eCommerce app, so if you could say what type of app you're using as well, that would be helpful.)
Thank you!
You should probably look at a strategy of versioning your APIs. So that users with older/un-upgraded apps would have problems. And when they upgrade to your new builds, they would switch to the new API version and everything would work.
Coming to how many versions you support. That really depends on you. If you want to force the users to update, then make your servers deny requests to the old APIs. That way, if the user is interested to use the app further, he has to upgrade.
E*Commerce app. We control the endpoint the app connects to. In every upstream HTTP header, the app puts its version number. The web and optionally add a tag in the downstream header of "yellow", "red", "disable".
If the app gets a yellow key, it tells the user at some good point "This app is out of date - you should update to the latest version soon"
if the app sees a red key, it tells the user to update soon or the app will stop working.
If the disable header is seen. the app stops sending upstream messages and tells the user that the app no longer works, if they would like to continue using the service then update the app.
I am finding alot of users for some reason are not upgrading my application when new versions come out.
Is there a way for my application to query the Marketplace application and then notify the user if a newer version is available ?
Personally I don't think it's quite that black and white. Lets say you've made a mistake somewhere in your app. You fix it and deploy to market. But you see from your crash reports that there are old versions out there and same users keep on using this app. If the same user keeps on using the app, wouldn't they rather use a version that does not crash? At some point they uninstall and log their rating as "zero stars, useless had to uninstall" - even though the problem is already fixed.
I agree that it is not a good idea to create duplicate logic that just notifies users about newer versions being available - but sometimes it makes sense to add a little extra notification telling users that updating is for their own good.
One solution, that I just came across today, addressing this issues, is from crash report service Bugsense. It allows to you send a notification to users that a certain error he/she has encountered has been fixed. I think it's just good service and tells users that development has not stopped.
I am finding alot of users for some reason are not upgrading my application when new versions come out.
To echo the comments, users are not compelled to upgrade your app.
Is there a way for my application to query the Marketplace application and then notify the user if a newer version is available ?
No.
Your application can query your own Web server, where you publish version information. However, you need to be a bit careful about this, as there are multiple Market servers, and not all receive updates simultaneously, AFAICT. IOW, I would use this as more of a fall-back mechanism, to perhaps do a one-time "hey, don't forget, there's an update available" notice perhaps a week or two after you publish your update.
The best would be to have a DB field with the current version on your server, and check the app version with the version mentioned in the back-end server every time the app loads.
But as CommonsWare mentioned, it might irritate some users.
Another possibility is to have an Check for Update button as I do inside the app itself.
Hope this helps....