A few weeks ago I did something which, in retrospect, was probably rather stupid. But it was surprisingly successful while it lasted. As I wrote earlier, I’ve been using Google+ since the day after it was launched. I myself received an invite from a stranger who was offering invites publicly. For this reason, I’ve been keen to share invites with anyone else who’s looking for one. I put up a post on this blog offering free invites, and got a huge response from the Android community. In fact, there were so many responses that it overwhelmed my email after a few days. There’s no way I could have kept up with the demand.

Rather than stop accepting requests altogether, I wanted to make it easier to handle the load. (NB: At this stage there was no limit to the number of Google+ invites you could send.) My first thought, trying to work out a faster way to do things, was “hey, is there an Android app for this?” A quick search turned up a negative. No Android apps offering Google+ invites. So, why not make one? It seemed a pretty good idea, so I spent that afternoon writing a simple app that accepted an email address, and a description of the request. The data was sent to a PHP script on my server, so I could go through and invite the email addresses stored in a database.

Actually, it’s not that simple to write an Android app that POSTs data asynchronously to a server, checks the response, and handles errors gracefully. I re-used some classes from another unreleased project, but it was still a bigger job than I expected. But the actual coding is an issue for another day. The most interesting part came when I released the app on the Android Market.

First release

I titled my app “Google+ Invites” – since that describes it pretty well. Because I was in a bit of a hurry, I decided to just modify the official Google+ logo, so that people could easily identify it as related to the social network. This is the logo that I came up with:

A little too similar to the original perhaps? Well, I thought it was a creative adaptation and went with it. Looking in retrospect, it wasn’t the wisest idea. But that’s how the app was initially released to the Android Market, on the 9th July. By the 10th July, the Developer Console was showing 326 installs. I thought that was pretty good – about the same amount as when I first released Tap That! Number. That number of installs, you can attribute to being in the “Just In” category. But this time, the downloads kept coming in. The next day there were another 300 installs. The day after, 500, then 700. By the 13th, this app had about 1,730 total installs.

By this time, there were so many people asking for invites that I simply wasn’t able to complete them all. Even with a plain-text list of email addresses, inviting someone to Google+ was (at that stage) a very manual process. I had to copy & paste every email address, click “Invite”, and then add them to one of my circles so they could see my welcome post. So I was hit with the same dilemma I had offering invites on the blog – how to cut down the number of requests, or prioritise them somehow.

The “Points” System

In the back of my mind, I knew there was some kind of advertising network that used incentive advertising. For those not familiar with the terminology – in “normal” advertising streams, the advertiser pays the publisher (app developer) when a user clicks the ad. For obvious reasons, you’re not allowed to encourage people to click these ads. But with incentive advertising, you are. Because you don’t get paid when they click an ad – you get paid when they complete an action (such as signing up, downloading an app, etc.). Looking around a little bit, I found TapJoy, which is a fairly well established incentive advertising network. The SDK is pretty easy to setup. You actually download the source files, and include them in your app TapJoy currently doesn’t offer a JAR library option, although I’d like to see this happen some time soon. Other networks such as AdMob use the JAR method, and it’s a lot simpler to integrate with source control.

Using TapJoy, I implemented a “points” system in my app. When someone downloads the app, they can submit their email address to request an invite immediately. But at this stage, they’ll be placed at the bottom of the queue. With about 2,000 invites to be processed, it could take a while to get one. If someone wants to get higher in the queue, they have to get more points. You can earn points by completing offers on TapJoy. This basically involves downloading a game, or “liking” something on Facebook. Simple tasks, mostly free, but the TapJoy pays me a small amount every time someone completes an offer. Using this method, I can hand out the first invites to people who are willing to put a bit of effort into to get one.

I’ve noticed that this system is a bit controversial. Some people see the money-making side of things, and say it’s all a scam to make profit. Well, sure – I’d love to make some profit from this app! It actually takes a lot of time to invite all those people. I don’t see anything wrong with offering people the option of paying (with their time) for priority access. I’ll still try to invite everyone, whether they’ve completed offers or not. Just the people with more points, will get processed first.

Basically I could choose between taking down the app from the Android Market due to high demand, or implementing this points system. So I opted to use TapJoy, as an experiment using incentive advertising. I actually included AdMob advertising in the same app, as a comparison. Didn’t really know what to expect, but it was a great chance to try a new system.

The Rise….

One day later, I got some pretty amazing results. Another 1000 downloads on the Android Market, 717 views of the TapJoy offerwall, and a total of $20 from TapJoy alone. In 24 hours, I made more from TapJoy than an entire month with AdMob. The eCPM for TapJoy was $28, while AdMob was about $0.10.

But I thought, maybe it won’t last. Maybe that was just a spike, and we’ll see some slightly more sane figures come out tomorrow. The next day there were over 2,000 page views, and total revenue of $56. Doesn’t look like it was a spike after all. The eCPM was very similar. So, given the huge success of the TapJoy experiment so far, I kept inviting people on Google+, so that I could justify keeping the app on the Market. I thought $50 a day was amazing, certainly considering the amount of effort it took to write the app. I’d be more than happy if it kept up the pace, and didn’t grow any further at all. But there was even more of a surprise in store. Take a look at the graph below (left hand column), showing the download figures for the “Google+ Invites” app:

And then look at the TapJoy revenue for the same period (up until July 17th): As the downloads shot up, so did the revenue. On the 17th of July, with 7,600 downloads I actually made $300 in a single day, just from TapJoy ads in this app! At that stage about 3,700 people had requested an invite.

….and The Fall.

But sadly, the 17th was my last day of triple-digit income. Not because of any changes by TapJoy, and certainly not due to lack of interest by users (in fact, I had just reached 2nd place on the AppBrain “Hot Apps” list). But just before mid-day on the 17th, Google suspended my app from the Android Market. And that’s it, really.

Once the app was suspended, all the charts dropped off completely. I had the app listed on a few third-party app stores (including SlideME and Amazon), but the number of actual downloads was miniscule. The Android Market was the only one that mattered.

It was a bit scary actually – receiving an email from Google that one of my apps has been suspended. I’d always been prepared in the back of my mind, thinking that if Google has a problem with it and wants to take it down, that’s fine. I wasn’t aiming to do anything sly, and did read the terms & conditions of the Android Market and Google+ to make sure that offering invites like this wasn’t illegal in some way.

But the actual email had absolutely no information about why the app was suspended. Not a word. Here’s the full text:

Subject: Notification from Android Market This is a notification that the application, Google+ Invites with package ID com.bb.plusinvites has been removed from Android Market due to a violation of the Developer Content Policy. Please review the Content Policies and Business and Program Policies before you create or upload additional applications. Note that repeated violations may result in a suspension of your Android Market Publisher account. For more information, or to contact us, please reply to this email, or visit the Android Market Help Center. Thanks, The Android Market Team

After re-reading the policies mentioned in the email, I concluded that the most likely cause for suspension was trademark concerns. I had been very careful in the Market description (and in the app itself) to include disclaimers, mentioning that my app was in no way affiliated with Google, etc. But the logo was a major slip-up. It’s quite possible that somebody could mistake my app for an official Google app at first glance, simply due to the logo. I should have been more careful with that, but at the time I didn’t lend it a thought. I think Google would be perfectly justified in complaining, if that was indeed the problem.

What I’m not so happy about though, is Google’s communication once an app is suspended. There are absolutely no details provided about the cause. In my case, I had identified an area which was probably the cause of concern. But how do I know they won’t find some other issue to complain about? The email mentions “repeated violations may result in a suspension of your Android market Publisher account.” Should I risk losing my entire account, by changing the icon, and fixing what I could only guess was the problem?

The actual liason (if you could call it that) with the Android Market team is a topic for another time. But to cut a long story short, I eventually got a hint that trademark infringement was indeed the concern, and that I could try uploading a new version that fixed this issue. But due to some “internal accounting issues”, Google claimed they could not re-instate my app. I had to upload a new version, with a different package ID. Basically I lost my entire user base for that app, and risked losing my Android Market publisher account if I hadn’t correctly guessed the cause of infringement. A pretty big gamble if you ask me.

I did take the gamble though – and uploaded a new version called “Social Invites Plus” with a completely new logo. It seemed to pass the test, and has remained active to this date. But it hasn’t taken off like the first app did – and I’ve lost all the ratings, comments and active installs from the previous version. I can’t even release an update telling people it’s been removed.

Conclusion

I’m not too concerned about the evanescence of the current app. It was always intended to be a kind of experiment – it just happened to be a very successful experiment. Recently Google set a limit to the number of Google+ invites you can send per account. I’ve now got 150 invites remaining, so obviously I won’t be able to continue inviting everyone (although I did get through a few thousand in the preceding weeks). This means, for all intents and purposes, the Google+ Invites app (“Social Invites Plus”) is now dead.

I made note on the Android Market right from the beginning that this was an unofficial app, and therefore holds no guarantees of continuity. I’ll try to invite everyone who’s earned points so far, in consideration of the effort they put in. But for everyone else I’ve posted a message explaining the situation, and will be releasing an update on the Android Market with more details. Not much else I can do until Google opens the doors to more users. Which will happen sooner or later – but who knows when.

Despite the abrupt ending, this was a very interesting and worthwhile experience – the first app that I could really call successful, and my first experience with incentive advertising networks. What are some of the lessons I’ve learned?