I have a paid app in the store which will remove the ads in another app when it is installed on that device.
Now I want to remove this 'remove ads' app, as I want to have an in-app payement for this for instance (or maybe I just keep the ads version only).
But the problem is, if I unpublish the app, people who bought it will not be able to download it again when they get a new phone or reset their phone.
How to I keep the app in the Play Store, but prevent people from buying it? Is this possible?
My backup plan is: make the app cost 10.000 euro's and put in the message that this app should not be bought anymore. But I don't like that...
If you just unpublish the app, those that have downloaded it will still be able to find it in Google Play -> My apps --> ALL.
For additional info on the remifications of product take down, seee Section 7 of "Developer Distribution Agreement" for detail: http://play.google.com/intl/ALL_us/about/developer-distribution-agreement.html
Edit:
Basically the situation comes down to:
Simply unpublishes an app: existing users can still download it, others cannot see it on the market anymore. Google will not be asking you to refund users, your user refund policy can be the same as before the take down.
Unpublishes the app and inform Google that your take down is due to copyright or other store policy violation: then Google may ask you to refund users that purchased the app within the year of the take down.
I doubt that your reason is the 2nd one, so there's really nothing to worry about.
Related
I have an Android app that has several features available as in-app purchases. We have published the app on both Google Play and the Amazon App Store. We need to stop offering one of the features as of a certain date. However, customers who have already purchased the feature should be able to use it past that date, even if they install the app on a new device. They should also still be able to purchase other features.
I was thinking that we could simply update our app so that the UI offered no option for purchasing the feature in question. However, that would not prevent a user with an older version of the app from purchasing the feature. So it seems like in addition to removing the feature purchase logic from the app (but not the feature itself), we need to do something to turn off the purchase at the store end. But whatever that something is, it must still allow the app to check whether the user had previously purchased the feature.
I've been unable to figure out from the Google Play or Amazon App Store documentation how to set this up. My understanding, from what I've read, is that removing the item (from either store) will cause checks for previous purchases to fail. Is it possible to do what I've described? We need solutions for both stores.
P.S. I did find one related question on SO: Are Google Play in-app purchases still valid if the app or the product is removed? However, it has no answer and also is a little too narrowly framed. (I'm not assuming that the product has to be removed and I also need to know about the Amazon store.)
I was thinking that we could simply update our app so that the UI
offered no option for purchasing the feature in question. However,
that would not prevent a user with an older version of the app from
purchasing the feature. So it seems like in addition to removing the
feature purchase logic from the app (but not the feature itself), we
need to do something to turn off the purchase at the store end.
For Amazon Appstore, you would need to contact their support team to get the in-app item in question suppressed (it's not a self-service as of today). Once suppressed, that in-app item would no longer be purchasable. It would not affect existing users who purchased that item in the past.
When it comes to in-app purchase I always opt for implementing everything in my own server. when a user buys something, I instantly consume it and notify my server. Then instead of querying Google or Amazon, I query my own server which gives me a lot of flexibility. If I face something like your problem I just add few lines of code!
Since you already published your app this may not work for you unless you willing to force users to update the app to the newer version. (Hoping you can do that!)
You mentioned that you don't know what happens if you deactivate the product and there is no documentation, well you can try it on a test project and see what happens! It shouldn't be that hard. If that doesn't work as you expect there is nothing you can do, your logic is in your app and it's already published so...
Okay, something really dumb happened to my friend.
He submitted an Android application a few weeks ago that offers In-App Purchases to the user.
Now, he needed to update the .apk to fix a bug, but he actually lost the keystore that he used to sign the application the other day (what a dumbass...). He tells me it's definitely lost. He exhausted all options to find or restore it, but without success. So, as he understands, the only way to submit the update is to actually create a new application in the Google Play Developer Console. He is so dumb, I always tell him to do backups of important files, he just won't listen (wow, really, such a blockhead...)!!!! sigh...
Luckily, he only had a handful of users who actually purchased something in his app during that time. However, I would like to know (for my friend) if there is any way to transfer the In App Purchases from the same user from the old app to the new one, so that the users who bought something in the app and now want to update it, won't get punished for his stupidity and have to purchase the same items again....
AFAIK, there is no way to do that. The only option is to refund them and ask them to buy again in the new app. I believe refunding can be done by logging in to Merchant account.
Google Play does not provide any form of content delivery. You are
responsible for delivering the digital content that you sell in your
applications. In-app products are always explicitly associated with
one and only one app. That is, one application cannot purchase an
in-app product published for another app, even if they are from the
same developer.
And BTW, Does the app have any backend? Where in he saved data of all purchases made?
I have an unpublished app on Google Play which I want to update for my existing users, but not let new users download it.
The Google Play documentation seems to be saying that this can be done by simply uploading an updated apk (and not re-publishing the app):
Unpublished Apps
Existing app users will still be able to receive app updates, even if you unpublish your app. If you don't want new users to find and download your app but still want to provide updates to your existing users, set your app to Unpublished in the Developer Console.
https://support.google.com/googleplay/android-developer/answer/113476?hl=en
But it seems unintuitive that an "unpublished" application would work that way. If the documentation is correct, how does Google Play tell the difference between an 'existing' user and a 'new' user?
Just a follow up: pushing an update to the unpublished app does make the update available to existing users only, but the app does not update automatically for these users. They must browse to the app page, where the app will have an "Update" button which can be triggered manually.
(This is just speculation, I'm not affiliated with Google in any way or anything)
The existing user probably has the app associated with the Google account they use to log in to the Play store.
If you look at your own profile in the store, there's a list of all the apps you've ever installed. I'm guessing the update would be available only for people who have your app in their lists, and the app will still be invisible for new users.
Whenever a user that has the app installed wants to update it, he requests an update of the app, it's different from re-installing the app as data from the app (a save from a game, or some saved preferences etc) are kept untouched, google play can easily detect that since it can detect what apps you have installed.
I have an application that I want to release for $x amount to the public, however, I want to allow the Google Developer Console Alpha/Beta APK to be downloaded for free. I want the testers to be able to download it for free? How do I do that?
Thanks in advance,
PS. I could swear I found the link on Google, but I can't seem to find it again.
Here is my conclusion (in short, no solution):
1- (Edit: unfortunately this point is not correct, you wont get the updates unless you download directly from the store.) The only issue is delivering the first APK to the testers, as they wont be able to download the application from the Play Store, however, downloading updates from the Play Store is doable and okay, (delivered APK must be signed with same key as Play Store APK).
2- If the application is never publicly released yet, testers must have some sort of a direct link to the application on the Play Store, as searching for it will never show up (even with package name: com.example.application). But after having the first APK, you can just look through the 'My Apps" section in the Play Store and find it.
3- Google sucks for not making this easier, especially given the triviality of the concept and the need for it.
Thanks everyone for your suggestions. But considering none of them were the answer, because there is no answer, I had to sum up my findings here.
Cheers.
After discussing this with a Google representative I found that there is a round-about way of offering the app for free to testers. The tester must initially pay for the app. However, it turns out that refunds initiated by the developer actually behave differently than those initiated by Google.
Google refund: License is revoked and the user will no longer have access to the app.
Developer refund: License is NOT revoked, the app will remain fully functional IF you are only testing for license response. If you verify Order IDs it will fail since the order status will have changed (this would be a custom implementation). For developers who implemented the recommended license verification example this would effectively yield a free app.
Caveat: I haven't tested this yet as my app is a couple months from release, but here's my chat:
me
Ok can you please explain the refund then. As I understood it a refund would deauthorize the user's license, so I assumed you meant refund outside of the Google payment system.
Artemis
If you yourself initiate the refund, the user will not lose access to the app in their library.
Unless you have designed your app to constantly check the order ID's status to trigger the revoke action or the like.
If a user initiate's a refund through Google, yes, they will no longer have the app in their library and they will lose access to the content.
me
OK, since I only check the license response from the server any refund I initiate will yield a fully functional and free app in the user's library?
Artemis
Well, I am unable to validate your app's code or what you have done in its design.
I am only able to confirm that if you refund a user's purchase for an app, that Google will not revoke the app from their library or their access to the app's content.
me
Excellent, perhaps I missed the documentation on this somewhere, but I searched quite thoroughly and most information states that the developer can NOT offer the app for free to testers.
This would be great information to add to the developer console help and the testing pages.
Artemis
That is true, you cannot offer the app as free to testers.
The app must be paid for, no matter what.
However, as with all apps, alpha, beta, or production, you are welcome to refund your users however you would like.
The google play developer console now give developers the chance to provide promotion codes offering a free app or free in-app purchases, perfect for providing a free app to Alpha and Beta users:
I have a paid app in the Play Store (Profile Widget, in case anyone is wondering ;)) and I want to allow some users (friends, or people who do not have a credit card) to download it for free.
Of course I could just send them the APK, but they wouldn't get the updates automatically, and with every update to the app I would have to send them all the APK file again. And also, by using this method, anyone that had access to the APK file would be able to install the app for free.
I saw that by using the Android Licensing Library you could make some users bypass the License Check, but I want the app to show as "Purchased" for them in the Play Store, and I don't think this would do it.
I searched Stack Overflow but none of the solutions I found (like creating a separate APK and checking for its existence from the "real" app) handled the auto-update part.
Has anyone found a good solution for this?
Thanks in advance!
You can now generate and distribute promo codes to current and new users on Google Play to drive engagement. Under the Promotions tab in the Developer Console, you can set up promo codes for your apps, games, and in-app products to distribute in your own marketing campaigns (up to 500 codes per app, per quarter). Consider using promo codes to reward loyal users and attract new customers.
Reference:
1) http://android-developers.blogspot.in/2016/01/create-promo-codes-for-your-apps-and-in.html
2) https://support.google.com/googleplay/android-developer/answer/6321495
The best solution is to have them buy the app, then refund their purchase. It would still show up as paid. Alternatively, you could give them the app, and license it via the LVL, and configure their email addresses as test accounts listing as purchased., but then they won't get updates.
I have the same problem, I've checked and from what I can see there is no analog to the Apple system (Give out a one-use code to download the app).
If you just give them the APK you don't get Crash/ANRs from them and they won't automatically get updates.
It is something that Google really do need to fix, sorry there isn't a better option.
(I have the same problem for my own device (you can't buy your own app), I had a crash that was rare in the app on my own phone, but I couldn't reproduce it at a computer and the logs had well cycled past the error by the time I did, Being able to get the crash report through the developer console would have saved me a lot of mucking around)
this is an updated and no credit card method.
You can create a free version of the same app in the play store,
but publish it in alpha release.
Then, you can create a google+ provate group of alpha testers and set it as the tester group for the alpha version.
Now add the 'free licensed' users to the alpha testing group and they have your free app.
To push updates, you will have to upload updates also to the 'free alpha', that's not gold, but I think is pretty close to the best you can get at the moment
This method has an issue. As long as licensing is per-App, you will have a different license key, and it may always return TRUE, so if the users share the apks, they may be able to let other people use the app, not totally sure about this occurrence, but you are warned, better if you are sharing the free app to trusted users.
You can set up a sale at price zero for the paid app and let your contacts know about it. Google allows up to 8 days of the sale at a time, but you can also set it up for a single day. This way, you may still get a few downloads from unintended recipients, but the 'problem' will be far more controlled than if you were to mail out APKs. Other problems like updates are also solved automatically.
You can upload in third party app stores like Amazon App Store, Aptoide , www.proapk.in to allow users to download paid Android apps for free.
For downloading the app as a developer: Google Playstore's official word on this, is that you must create a 2nd google account to download the app you are listed as developer for. That way the stats for downloads and terms are not breached. Spoke about same issue today (though its a while after the question was posted, others should see this with similar issues)
For giving it away free: Can't you just change the app to free at a given time then notify those people to hit it during a certain window?