Warning: Creating default object from empty value in /home/rask/philippseifried.com/blog/wp-content/themes/platform/includes/class.layout.php on line 164

Warning: Creating default object from empty value in /home/rask/philippseifried.com/blog/wp-content/themes/platform/includes/class.layout.php on line 167

Warning: Creating default object from empty value in /home/rask/philippseifried.com/blog/wp-content/themes/platform/includes/class.layout.php on line 170

Warning: Creating default object from empty value in /home/rask/philippseifried.com/blog/wp-content/themes/platform/includes/class.layout.php on line 173

Warning: Creating default object from empty value in /home/rask/philippseifried.com/blog/wp-content/themes/platform/includes/class.layout.php on line 176

Warning: Creating default object from empty value in /home/rask/philippseifried.com/blog/wp-content/themes/platform/includes/class.layout.php on line 178

Warning: Creating default object from empty value in /home/rask/philippseifried.com/blog/wp-content/themes/platform/includes/class.layout.php on line 180

Warning: Creating default object from empty value in /home/rask/philippseifried.com/blog/wp-content/themes/platform/includes/class.layout.php on line 202

Warning: Creating default object from empty value in /home/rask/philippseifried.com/blog/wp-content/themes/platform/includes/class.layout.php on line 206

Warning: Creating default object from empty value in /home/rask/philippseifried.com/blog/wp-content/themes/platform/includes/class.layout.php on line 224

Warning: Creating default object from empty value in /home/rask/philippseifried.com/blog/wp-content/themes/platform/includes/class.layout.php on line 225

Warning: Creating default object from empty value in /home/rask/philippseifried.com/blog/wp-content/themes/platform/includes/class.layout.php on line 227

Warning: Creating default object from empty value in /home/rask/philippseifried.com/blog/wp-content/themes/platform/includes/class.layout.php on line 321

Warning: Creating default object from empty value in /home/rask/philippseifried.com/blog/wp-content/themes/platform/includes/class.layout.php on line 321

Warning: Creating default object from empty value in /home/rask/philippseifried.com/blog/wp-content/themes/platform/includes/class.layout.php on line 321

Warning: Creating default object from empty value in /home/rask/philippseifried.com/blog/wp-content/themes/platform/includes/class.layout.php on line 321

Warning: Creating default object from empty value in /home/rask/philippseifried.com/blog/wp-content/themes/platform/admin/class.options.metapanel.php on line 56

Warning: Creating default object from empty value in /home/rask/philippseifried.com/blog/wp-content/themes/platform/admin/class.options.metapanel.php on line 56

Warning: Creating default object from empty value in /home/rask/philippseifried.com/blog/wp-content/themes/platform/admin/class.options.metapanel.php on line 56

Warning: Creating default object from empty value in /home/rask/philippseifried.com/blog/wp-content/themes/platform/admin/class.options.metapanel.php on line 49
Lessons learned on the App Store – part 3 | philippseifried.com

Part three of my series on various things we learned about selling on the iOS App Store. (Part 1, part 2)

Don’t pay for AdMob clicks!

We’ve tried buying ads on AdMob for all three of our games, and, like just about any other account on the web that we’ve read said, the results were abysmal. It wasn’t for lack of trying to be smart, either:

We restricted the geographic locations to US/Canada/UK/Australia (because why pay for Chinese clicks on an English ad), we restricted the target group to what we thought were our core demographics, and we experimented with different ad texts (we figured if we could get only geeks to click on our “CellShades” ad and scare everyone else off, our conversion rate per click would be so much higher). All to no avail. Our click-through rate was always in the low to mid 0.x%, but our conversion rate after the click-through was so low that for every $50 we spent, the bump in downloads was negligible (as in practically not measurable), even with our free app “CellShades“.

My conclusion is that AdMob may have it’s place if you have a huge marketing budget and you need to generate just enough extra sales to make it from position 26 to 25 in the charts. As you can generate a lot of impressions for little money, it may also be worthwhile to use AdMob to A/B test your app’s name and icon. I’ll share our experience with that in another post. But for an indie dev on a budget, buying ads to sell your game is a complete waste of money.

Setting your app free for a day will result in massive downloads

When you set a paid app to free, a slew of app shopping sites will automatically pick up on the fact and spread the news over the web and social media sites. The effect can be in the tens of thousands of additional downloads over the next couple of days, with download numbers quickly tapering back to normal free app levels over the course of a week or so.

The effect is repeatable, but if the intervals between repetitions aren’t very long (several months to half a year, it seems to me), its intensity will gradually fade away. Repeating the experiment after two weeks, for instance, probably won’t produce a significant amount of downloads. Also keep in mind that some sites will offer a complete history of your app’s pricing, so if you do this frequently, potential customers might pick up on it.

Don’t expect the additional downloads to significantly increase sales after you switch the app back to paid, though. The people who visit automated price drop reporting sites don’t seem to be particularly willing to pay for apps they see there that have reverted back to full price.
Also, as the downloads you get are very untargeted, a lot of developers have reported that the users who download your app when it’s free are statistically more likely to leave negative reviews in the App Store (something we have not personally experienced).

So why do it? In-app purchases are one good reason. Another one would be that if you have the kind of app that people like to show off to their friends, the amount of additional word of mouth might well make it worth it.

Read up on App Store SEO!

Users searching the App Store can contribute a significant portion of revenue over your app’s lifetime. Whether or not your app is among the results for any particular search depends on your title, the keywords you specify in iTunes Connect and the names of any in app purchases. Interestingly, your app’s description text does not contribute to its search engine placement.

Apple only gives you 100 bytes for your app’s keywords and you can only update them with new versions of your binary. Make the most of them! People have experimented with different keywords and shared lessons about SEO on the App Store, so read their accounts (here’s an interesting four-parter: part 1, part 2, part 3, part 4)!

Use commas (instead of commas and spaces) to separate keywords to save room. All other things equal, shorter keywords are better than longer ones. Use small updates to your app to optimize your keywords and periodically check where you rank for any of your search terms. Use services like http://www.appcod.es/appsearch/ to see what keywords your competitors might be using.

It’s also worth pointing out that your keyword ranking depends on factors such as how many downloads you’ve recently had (and your app’s ratings), so if you’ve previously optimized out a popular keyword because your rank was too low, and your app picks up steam, you may want to reconsider.

User behavior tracking is easy!

There are plenty of services on the web that let you add tracking code to your iOS application and give you statistics on how users interact with it. If you’re writing a game, how many people get through the first level after the tutorial? Is there a particular puzzle at which people tend to give up? If you change the upsell screen in your lite version, or the description of your in-app purchase, will more or less users make the purchase?

When we started out, we refrained from tracking user behavior, because it seemed like a lot of work. As it turns out, you can sign up for a free service and add the relevant functionality in an hour or two. We’ve been using the free service of Playtomic ourselves, a cross-platform API geared towards games, which has the nice benefit of also being compatible with C++, Flash and Android applications. There are other services as well, but I haven’t yet tried any of them.

Playtomic is by no means perfect: you have to resort to creatively naming your tracking events in order to do A/B testing (i.e. showing different portions of your users different versions of the same thing – such as an upsell screen –, and measuring the difference in reaction), and I really miss the ability to assign attributes to users and track them separately based on them (for instance, I’d like to track the behavior of pirates, new users, power users and users that pay for an iAP separately). The service has also had some downtime and a few instances of quirky reporting in the three months that we’ve been using it, but I’d chalk that up to it being relatively young.

On the upside, the analytics are updated on a nearly real-time basis, the API is dead simple to add, and you can’t beat the price of free.

 

2 Responses to Lessons learned on the App Store – part 3

  1. Ben says:

    Amazing post, its really hard to understand the App Store as its changing all the time and everything but transparent.
    I started using AppAnnie straight away!

    Thanks for sharing!

  2. Mo says:

    Hi,

    Wow, I really appreciate all the info about the marketing. I am almost done with my app and your info is really timely. Thanks so much for sharing.

    Mo

    Ps: I really think that your app name will better as something Genes like GenesLab or something like that. It will be more appropriate and easier for people to understand it right away. CellShades maybe to esoteric for some. My 2 cents of course. Cool app by the way!

Leave a Reply

Your email address will not be published. Required fields are marked *

*


+ four = 7

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>