Sunday, April 20, 2014

Android Income Report: March 2014

It's been a while since I published my last income report, so I decided to prepare one for you as an Easter present. In fact, the times when I would open my ad statistics every day and analyze them meticulously are long gone. To be honest, I wasn't really sure how much I was making a month these days (at least not exactly) before writing this post. It's been helpful for me as well to realize where most of my revenue comes from and what I should do to maximize it. Let's see the results together.

Ad networks and ad types I use

In my apps I have AdMob banners and interstitials as well as Airpush smart wall ads and AdBuddiz interstitials. Why I chose these? AdMob was just the most obvious choice - they are very reliable when it comes to payments and they have very detailed statistics. Unfortunately, they don't offer so many ad types (banners and interstitials only) and their CPM is not the best as well. I decided to try Airpush and AdBuddiz, because their ads are quite pretty and they promised high rates for each click. They actually are decent, although definitely not as good as advertised. You'll have a chance to see the numbers below. I haven't been paid for them so far, because I only just realized that you need to fill some forms with payment details first, but I believe that I won't have any problems with it.

Statistics

Here are some numbers that might interest you. With some simple math you can figure out how much you could earn with a similar app or what kind of ads make the most revenue. I decided to skip the paid apps, because they generate less than $10 a month for me.

AdMob
revenue: $52.04
requests: 109,142
CPM: $0.51 (max: $2.75, min: $0.07)
fill rate: 93.9%


Airpush
revenue: $37.66
requests: 18,652
CPM: $2.02
fill rate: ?

AdBuddiz
Note: the values below are approximate, because AdBuddiz doesn't offer detailed statistics (only those visible in the screenshot below).
revenue: ~$7.5
requests: 14,503
CPM: $1.21
fill rate: ?

Total
revenue: $96.9
requests: 142,297
CPM: $0.68

Conclusions

My income increased in the past couple of months from less than $20 to almost $100. In fact, I'm seeing a slight (around 20%) growth in April as well. This is definitely a good thing, but the fundamental question stays the same - was the app development really worth my time and effort. So far the answer is "no", at least if we take into account only the money. What else did I gain? Experience in Android programming; some apps I can show my family, friends and... prospective employers; I got to know other interesting people from the business; I received a free license for TexturePackerPhysicsEditor and tPacker; finally I feel very proud that people download my apps and find them useful and fun - it's a great feeling and it gives me a sense of purpose.

Will I continue making apps? Of course I will! I still quite enjoy it and I feel that every time I make one, it's much better than my previous creations. As to the money factor, I could probably improve it by trying different ad networks and replacing (at least to some extent) AdMob - which isn't always the best option when it comes to generating revenue. I should also update my old apps, because they use old ad API's and display banners/interstitials in very inefficient ways (CPM=$0.07 is definitely very bad). As a matter of fact, I'm planning to release a big update to my metro app in a couple of days. It will feature some cool improvements and I'm really excited to see what will happen afterwards. I can't wait to give you more details about it, but unfortunately it's out of the scope of this post, so you'll have to wait a little bit more.

Before I finish, I'd like to wish you Happy Easter! Spend some time offline with your friends and family, and have a break from whatever you do on the everyday basis. I'll see you in a while- relaxed and ready for new challenges.

Monday, April 7, 2014

Google Code Jam - Learn to be a better programmer

In three days Google Code Jam starts! It's an annual programming contest held by Google, started in 2008. It serves them as a means of finding new talents to hire. For most, however, it's a great occasion to test their algorithmical skills and have some fun with other geeks. I've already signed up. Have you?

If you're still undecided or you just think that the knowledge of algorithms is not important, you should definitely give the subject a closer look. After all, a company such as Google rarely takes ill-conceived decisions, and they find new workers based on their ability to understand, analyze and design algorithms. In my opinion, being familiar with at least the basics in this subject distinguishes professional programmers from self-taught hacker wannabies (and I don't mean that it's bad to learn how to code at home). Other than that, it opens your mind on the world of deep understanding why some libraries have been designed in a particular way and which data structure you should use in your app. Finally, it is fun (at least for me and for a bunch of other people) and gives extreme satisfaction whenever you find a solution to a unique problem.

Anyway, I'm not here to try to convince you that learning algorithms is useful. I want to give you some resources that you can use to practice and learn. I'm pretty sure you'll find them quite interesting.

First of all, you should take a look at the Google Code Jam's practice section. There you can find all the problems from previous contests and you can try to submit your own solutions. You can also read the analysis of each problem, which is a great way to learn, when you're not able to solve something yourself.

The biggest site I know is Timus. It's run by Russians and it contains more than a thousand problems. They can be grouped by type, difficulty, or just by their adding date. Oh, and they're still adding new ones. You submit your code and it runs on the server against multiple test inputs. If it's fast enough, doesn't use too much memory, and, what is probably the most important, produces correct answers, you get an "Accepted" result. Easy enough? Perhaps with the easiest problems. Then they become much more challenging...

Other interesting site that has consumed loads of my time and has given me sleepless nights is Projec Euler. It's different from Timus, because it offers problems that are more mathematical in nature. They don't expect you to upload your code - an answer is good enough. This way, you can use whatever programming language you want or such software as Excel, Mathematica or Matlab. Sometimes a pencil and a piece of paper is enough. After you've solved a problem, you can see other people's solutions, which might be quite surprising and inspiring... and you see how they code and structure their programs, which is very educative as well.

Lastly, I would like to tell you about a site I was using during my university years - Usaco. Their training section was great, because it gave you hints if you had a hard time solving a problem and it showed to you the exact test case your program was failing to cope with. This way it was much harder to get stuck. They had a nice system, in which you had to solve all the problems from a section to be able to get to the next one. Each section gave you slightly more difficult problems as well as a theoretical introduction of a new algorithmical technique. I have to say that I haven't used this site for a long time, and I can't even remember my password, but I'll try to recover it in one way or another, because I used to like it a lot.

I hope you agree with me on the importance of algorithms now and that you'll choose a training site for yourself (if you aren't using one already). Who knows, maybe Google is going to contact you as well. I've had recruiters contacting me based on my good ranking on such sites, so it's not just an urban legend. I even put some information about them in my CV. It's always nice to find out that your interviewer uses the same site that you do... and even nicer to see that he's lower in the ranking than you ;)

If you use any other interesting sites, please let me know. See you on the Google Code Jam eliminations this weekend and feel free to brag in the comments section if you do particularly well.