I have a situation that I have not seen addressed elsewhere, so I'd like to ask folks for ideas. Here's what's up:
I sell a relatively expensive (US$25) app that I have sold for 10 years in various forms on different portable platforms. In general it's pretty vertical-market oriented (astronomers, ham radio operators) but in some cases is of general interest and has sold pretty steadily over the whole time it's been around. I have an Android version ready to publish but am not sure the best route to take.
The issues that are troublesome for me are that it must be possible to download a free, time-limited but full-featured version for evaluation, and that I need to be able to sell it to previous customers at half-price (just a long-standing policy of mine.)
Note that I am already set up to sell from my own website - have been doing it with other versions of the software for years, and the app is already set up to run in "trial mode" until a registration code is entered.
I have been assuming that I would publish it on the Android Market as a free app, and add code to it to look for an "unlock key" app that I would publish there as well. The idea being that a person could download and test the app, and if they chose to purchase it could either buy the unlock key via the market, or could go to my web site and purchase a registration code, allowing a path for my "customer loyalty" discount.
Unfortunately, I'm pretty sure this violates section 3.3 of the Developer Distribution Agreement: "All fees received by Developers for Products distributed via the Market must be processed by the Market's Payment Processor."
I have a couple of ideas, but I'd really like to hear some other opinions first. Sorry for the length - it's just a long question.
(Oh, and FYI, there is already a published iOS version of this app, and none of this is at all possible for it, and I think it's awful.)
You could get them to buy the app at full price and then send the discount back to them - like a cash-back scheme. It's not very efficient though.
You can use in-app billing to process the purchase. That way you won't violate any agreement.
You can publish more than one APK in the market, with different prices, and validate the install upon first run with a code you send them.
Related
I am going to have a alpha release of my app, which is not yet on the market. I want to have the app APK link sent out to friends via email so they can download it from my site CDN.
One question here: if I want to give them updates, what will be a good way? Can I download the new APK within the app, and somehow install the APK to replace the old one without anything to do with the market? So my friends can have the app upgraded while it is still in alpha release?
When I did it, I used Zubhium -- they were a web service with a small API that you could install into your app, giving you a mini "app store"-style backend and handling distribution for you. It would host and distribute your APK, connect up to their server when the app launched, check for updates, invalidate old versions, gather crash logs for you, etc. It was very good.
Zubhium are now https://www.vessel.io -- I presume they still have the above features as part of their now-much-bigger service, but when I checked you had to give them a credit card number even to sign up for the free plan, so I've not played with it.
A friend of mine uses http://testflightapp.com for iOS, and it looks like they have an Android version now, so that's certainly worth checking out. A quick search also shows up http://applover.me. #Janusz recommends http://hockeyapp.net/features in his comment.
As #Nanne points out in his answer, the Play Store itself now lets you distribute to limited alpha- and beta-test groups. That looks like it has fairly minimal features compared to the third-party services (no A/B testing, etc.), but will be familiar and free. And it doesn't need an extra SDK rolled into your app.
So, my general answer is that there's more than one professional beta-testing API/service that you could use, that they're generally very useful, quite easy to roll into your app, solve all the problems you're anticipating and more, and often have a free plan to get started. I'd recommend picking one of them rather than trying to roll your own solution.
If you want this only to be able to release your app in Alpha, and maybe later in beta, take a look at the android market again.
Check out this link: https://support.google.com/googleplay/android-developer/answer/3131213?hl=en
It boils down to the fact that you can have an Alpha-test, and a beta test, each with selected users. You can upload your app as normal, so you'll have updates via the market, but not everyone can download your app.
For the beta at least, you can select a community that is the source of your users, so all that are in that community could be testers.
This is the best method for testing I believe.
I've been trying to work out whether it's possible to do the following sort of thing with Google's Android Market but can't find an answer as all my searches relating to upgrade paths are clouded with results about updating individual apps.
If I have 2 applications, lets call them Application_A and Application_B which sell for $2 and $5 respectively, is there any mechanism by which I can provide an upgrade path so that anyone who owns Application_A already can buy Application_B at a discounted price of $3, but anyone who doesn't own Application_A and just buys Application_B still pays $5?
Best approach I've seen is to sell app b for $2, and use in app purchase ($3) to unlock all it's features.
You can also have a "full" build version and sell that for $5.
You should be able to share almost all of the code in a common code base just fine, and you can even offer this to existing customers (just issue an update with the in-app purchase enabled.)
I've been looking too and it's impossible. :(
As far as I know, you can't provide discounts for your apps in the Android market.
This is not a programming question per se but a question that may be relevant to all future Android developers.
I am in the market for an Android developer phone. I can buy it used on eBay, or I can buy it new on the Android Market.
All nice and dandy but in order what the Android market has to offer, I have to first register, which requires signing the Android Market Developer Distribution Agreement.
Well, I know that many developers signed that agreement and stayed alive, but before signing anything I prefer to read what I am about to sign. Unfortunately, certain information that is needed to be understood in order to sign the agreement can be accessed only after you sign the agreement...
For example, how do I know which are the "authorized payment processors" mentioned in clause 1.2?
Also, it sounds strange to me that in order to just see what developer phones are available (and their specs) I first have to register and pay the $25 registration fee. It will take at least 6 months before I will be ready to place anything on the Android market, so why should I register now?
Any idea whether to find these 2 pieces of information without having to register so early in the process?
Two things, first the "Authorized Payment Processors" are defined just above that as:
Payment Processor(s): Any party authorized by Google to provide payment processing services that enable Developers with optional Payment Accounts to charge Device users for Products distributed via the Market.Blockquote
The only one currently is Google Checkout, but I have heard that they are working with PayPal to get them involved as well.
Secondly, you have to log in to buy the phones because they are only available to Android Devs. The ones on the list are the "Android Dev Phone 2" (which is basically a MyTouch 3G) for $399.00 and the Nexus One for $529.00. You can look those up and check the specs on them. They are both unlocked and the Nexus One has an unlocked bootloader.
You do not need to register now. Just when you are ready to release your app to the Market.
Also, for development you can get any Android phone out there. Preferably many phones with different physical characteristics and various sw versions.
Btw, the $25 fee is a good thing, because Google records your credit card no, so malicious devs keep themselves away.
I am about to finish my Android application. I would like to provide lite version and more complete paid pro version. Unfortunately, Google does not allow Australian developers to sell applications and I don't have any friends in US or UK.
Does anyone know of a person/company who would publish my pro application on my behalf? Google search did not bring up any results.
Thanks.
Do NOT use androidpublisher.com. They publish many pirated apps and flood the market with absolutely horrible applications. As a developer, "Android Publisher" is one of the last things you want associated with your application.
Good news! The Android Market opened up to Australian developers on September 30, 2010.
See this link:
http://android-developers.blogspot.com/2010/09/more-countries-more-sellers-more-buyers.html
Also, don't hesitate to deploy to other markets, such as the Amazon Appstore and SlideMe.
For any other countries that are still left out of selling on the Android Market, you can link from your free app to another market that does allow you to sell apps. It's not as ideal, but it will get you into the game.
Well, I have found Android Publisher who would be willing to publish paid applications on behalf of developers who can not publish themselves due to Google's senseless restrictions (so much for being open).
Android Publisher charge 19% service fees for publication services. This is additional to the 30% charge that Google charges to process paid applications. For example, if an application costs $0.99, Google would charge $0.30, Android Publisher would charge $0.19 and the developer keeps $0.50.
Whilst this isn't ideal I feel this is better then publishing on alternative market places as Android Market provides seamless experience and obviously there is much more exposure through Android Market.
In case someone else is interested the contact name is David and email address is: support#androidpublisher.com
As time passes I will keep updating this thread/question (unless the community doesn't want me to!) with my experience dealing with Android Publisher as it may help other developers who don't live in Google approved countries.
I've found company that publishes games. I'm not sure I like their license terms though.
http://hyperbees.com/about/
I was wondering what the most effective way of preventing people from stealing my application (downloading a copy of the .apk online rather than buying it).
I've spent a lot of time on one in particular (Droidbox) and won't be releasing Sync until I can guarantee that the people who are providing illegal copies of the pro version aren't able to.
Anyone implemented this? I've tried checking my package signature verses an the signature of an unsigned copy but it appears to be the same - perhaps I'm doing something incorrectly here. I'm unsure whether people actually distribute the signed .apk in which case I don't think signature validation would work to begin with...
Please note, this question is specific to Android Marketplace Applications - the difference being, application delivery is out of my hands and I have no way of linking between a legitimate purchase and an illegal download.
Now there is the new Google App Licensing available. For deeper information read about it in the android developer blog.
A short summary: Google provides a library that makes a inter process call to the market client on the phone. The market client will then ask the google servers if the signed in user has purchased the app and forward this answer to you. There should be a public key in you developer profile that you need to encrypt the connection to the google server to prevent spoofing of answers. You also provide a application and device unique id with the query to make it impossible to forward approved queries to another device and build something like an licensing proxy with one bought copy forwarding the IS LICENSED answers to other devices.
At the moment this service looks secure enough to protect even the more valuable apps in the market. I will give it a try and maybe come back and leave some more informations after I used it a little bit.
If your app is really popular like an EA game or something this wan't stop users from hacking it. To hack the app somebody has to buy it, then unzip the apk, and edit the bytecode of your app to think that the market send a correct answer. The new byte code can be packed into another apk and can be installed on every phone that allows side loading.
To make this harder you can always try to obfuscate your apk and make your bytecode hard to understand.
There is a single, useful connection between an application buyer and the developer through the marketplace, the forwarding email address provided by google to contact the buyer.
Utilizing the integration callback setting to send buy information to your own server, you can use PHP to send a unique identifier (registration code) to the buy via email (real time as the callback is shipped from google during a purchase. The user then uses this email to register their software using the unique identifier that is then linked to their android ID (or google account username) and the software is "activated" and guaranteed to be legitimate.
Obvious Questions
Why is this a suitable solution when it requires the user to read email? Our market are those people who are capable of buying an application using an android device. By using an android device, it is implied that the user has a google account which implies they know how to use email.
How do I use the email with the unique identifier with my application? Create a content handler in your application that handles something like "myactivator://uniqueid-or-something" which causes your application to communicate to your internal server that keeps tabs on activations. Embed this as a link in the email that the user can click on.
How should I generate the unique identifer? I'm going to use the email somehow - I'm fairly confident google has already made it unique enough to disallow any feasible method of contact information selling.
What about people who have already purchased the software? A lot of options here - none ideal or terrible.
Send emails to all previous buyers
Allow users to activate by typing in their order number (can be obtained by logging into checkout.google.com.
Why bother?
Because some of us put a lot of time into applications and saying "you should just accept pirating" is a slap in the face.
The people that are lax enough to use pirated copies of your application to access their DropBox are probably using their DropBox for piracy anyway. Forget those people. Let them go. Yes, it's a huge number of people I bet, but let's face it, those people were never going to pay you anything anyway. Focus on the parts that you can control, and forget the rest.
Focus on the Android users that use DropBox for their work, for their businesses, for their own code, for their finance, for their thesis, and/or for their private family pictures. 95% of those people, that have something of value in their DropBox, and that want it kept private, are going to want to buy your application (assuming it's good enough for them).
Let me use this analogy:
When it comes to hiring a locksmith to put a lock on your home, do you hire the guy that looks the part and takes $150 an hour, or do you hire the shady guy that is willing to sell you a stolen lock to put on your front door?
Release your own illegal copy in the best known forums and have it disable itself after a week and showing a message like
Thanks for stealing... I make my living with programming this app. The x Dollar won't hurt you and I could by my next meal and go on making great updates for you.
I think this is the only thing that you can do about it. People will always find a way to copy your app and all countermeasures will only disturb the users that paid for the app.
The people copying your app aren't your customers and they never will be. Just see their use of the program as a kind of viral marketing. At least they are talking about your app and maybe some of their friends will then buy the app.
General shareware advice here - license the software to the individual. i.e. provide a license key that is personalized to their username. They'll be much less likely to distribute a key if it's got their name on it. You can probably automate the backend fulfillment of the order, to provide custom keys. Have your "Pro" version operate in trial mode until the name/key are entered.
Don't leave your computers so that someone can steal your applications from there.
Or wait.. Did you meant you don't want others to copy your software? Then.. not publishing it in the first place is likely your best option.
A bit related link: http://news.cnet.com/8301-27076_3-20003120-248.html
You neither have any mechanism to estimate amount of illegally copied software. Enjoy your attempts from stopping the rain even though entities bigger than you have attempted and failed.
There is a new tool in the wild that seems to good to be true:
Automatic Application Licensing from Keyes Lab.
I haven't tried it yet but if this works it sound like something you want to use in your high priced android apps.
If anybody tested it leave a comment or edit my answer with personal feedback.
I have the same issue. I recently found a number of my paid apps available for free download on this site: https://dlandroid.com/
I asked them to remove my app APKs, but I'm sure there are many other similar sites. Presumably they have a rooted phone which gets one valid copy of the app from Google Play, then uploads it onto their web site to distribute to all and sundry for free.
You could spend endless amounts of time ensuring that there are no pirated copies of your apps on the web, or implementing complex piracy protection measures, which would most likely make things less convenient for your genuine paid users. But I guess in the end, you have to be prepared to make a trade-off and accept that a certain level of loss is inevitable, and hope that most people are honest and get your app through the proper channels rather than risk malware infection by going to dodgy sites like this.