App Sales, What’s Hot – What’s Not – #1: Category Featured

If you are selling on the App Store you might start wondering on how you will sell your Apps.

Well, some people won’t think but just put their App in the store and wait what happens (I am such a guy ;-)

But afterwards I made some observations I would like to share, especially because there are so few developers that share their experience with the Store.

I will split my observations into different posts to make it 1) easier to read and 2) to allow myself to pause between posts :-)

I will write about the following conditions and events:

  1. Category Featured
  2. New and Noteworthy listing in iTunes Category
  3. “Free for one Day” Promotions
  4. in the Spotlight / in the “What’s hot section” on the iPads App Store
  5. What’s new listing on the iPad and iTunes
  6. Keyword optimization
  7. TV Popularity of an unrelated show
  8. Visual Quality (yes, you heard me!)
  9. Ranking Positions (Top 10 – Top 100)

Not necessary in that exact order. I might sort the list after everything is written and published.

These conditions and events have been made with three different Apps totally unrelated to each other.

So. Let’s begin.


#1 – Category Featured

jQuery Reference is a nice small App to lookup all import jQuery related stuff without opening a browser or searching google. Basically it is a searchable list of the jQuery function listing and its documentation.

The App has been released on Apr 14th shortly after the iPad has been launched and Apple was still playing with the App Store functionality.

In the beginning it climbed into the Top 25 of its category, which wasn’t too hard because there were not many iPad Apps. After a few days it slowly lost its ranking and finally went into something below 100. It came back between 9am – 8pm PST into the rankings when people were buying it.

All numbers for sales and rankings are for the US Store only!
Excluding the rest of the world keeps the stats clean from unknown factors or random customers in some distant countries.


Ranking

On May 5th I noticed a spike in the ranking in its category “Reference”. The App was in the “Featured” Apps on top of its category.

Within hours it jumped back into the top 50 at, this time because of it was “Featured”:


The ranking got a bit more solid for the following two weeks until it was removed from the featured listing.

Screenshots: Category Featured

This is how the featured looked like on the iPad. When someone opened the category “Reference” he got a list of featured Apps on top.
The App was three screens next to the center on the category “Reference” on the iPads version of the App Store:

 

Sales Numbers

If rankings are affected, sales must be too, because only sales can push you up in the rankings.

Well, here are the true sales numbers:

 

Keep in mind that the sales statistics are compiled only once a day on the end of the day. The sales numbers are in units.

The average of 4 sales per day increased to 6 per day which is a 50% increase. The percentage should not be applied to other Apps, the sales numbers are too low to read too much into them.

 

Interesting is also what happens after the featured status was gone. Here are the sales numbers for four weeks after that:

The sales average dropped back to an average of 4 per day and the ranking went down to below the top 100.

While this looks and sounds like nothing was really going on, looking at the big picture of the revenues of that timeframe everything becomes clearer:

The sales were constant in the featured time compared to very random sales before and after. The week following the feature the sales were still a bit higher, which might be caused by the higher rankings. After that sales dropped very fast to zero.

I plan to submit an update with some minor enhancements to see how much influence it has.

 

Conclusion

Conclusion? It’s nice to have such a small category feature and it makes a difference but it won’t make you rich.

There were only 3 million sold iPads after the analyzed time (wasn’t it 3 million after 80 days? correct me if I’m wrong!), making possible customers still very rare.
But when I first seen the feature I was thinking about hundreds of possible customers buying my App – well, the next day told me otherwise: two more customers ;-)

It seems that Apple has dropped the Category-Features in many categories, maybe because it was too much work and too less revenue ;-)
The game section appears to be the only one left which such a Featured-Listing.

 

Oh, and if you are curious about the App, you can find it here: jQuery Reference :-)

Leave a Reply

V8 vs. Spidermonkey

About a year ago I decided to go with v8js to use javascript code within php because it was so much easier to handle.

Today I benchmarked a problem related to the v8 engine and just out of curiosity I ran the same test with Spidermonkey.

A simple A/B Test:

  • A = define a JS Function and call it it in a loop
  • B = define a JS Function once and call it in a loop

The results for V8 were:

Runs 10 100 1.000 10.000 100.000
A 0.0048ms 0.0018ms 0.0159ms 0.4257ms 4.9063ms
B 0.0004ms 0.0011ms 0.0072ms 0.1733ms 1.8506ms

It was not really surprising that the one-time-definition was faster.
I tried exact the same with Spidermonkey:

Runs 10 100 1.000 10.000 100.000
A 0.0016ms 0.0276ms 0.2141ms 1.8415ms 18.483ms
B 0.0011ms 0.0039ms 0.0713ms 0.8591ms 8.4125ms


Huge difference compared to V8!


Here’s the test code:

V8 Test:


<?php
$runList = array(10, 100, 1000, 10000, 100000);
$jsFunc = 'function myTestFunc () { return {foo: "bar"}; } ';
foreach ($runList as $runs ) {
$start = mstime();
$js = new V8Js('Test');
for ( $i = $runs; $i > 0; $i-- ) {
$js->executeString($jsFunc, 'Test.Context');
$js->executeString("myTestFunc();", 'Test.Context');
}
echo "#1: " . (mstime() - $start)." ({$runs} with re-definition)<br />";
unset($js);
$start = mstime();
$js = new V8Js('Test');
$js->executeString($jsFunc, 'Test.Context');
for ( $i = $runs; $i > 0; $i-- ) {
$js->executeString("myTestFunc();", 'Test.Context');
}
echo "#2: " . (mstime() - $start)." ({$runs} without re-definition)<br />";
unset($js);
echo "<hr />";
}
function mstime() {
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}


Spidermonkey Test:


<?php
$runList = array(10, 100, 1000, 10000, 100000);
$jsFunc = 'function myTestFunc () { return {foo: "bar"}; } ';
foreach ($runList as $runs ) {
$start = mstime();
$js = new JSContext('Test');
for ( $i = $runs; $i > 0; $i-- ) {
$js->evaluateScript($jsFunc, 'Test.Context');
$js->evaluateScript("myTestFunc();", 'Test.Context');
}
echo "#1: " . (mstime() - $start)." ({$runs} with re-definition)<br />";
unset($js);
$start = mstime();
$js = new JSContext('Test');
$js->evaluateScript($jsFunc, 'Test.Context');
for ( $i = $runs; $i > 0; $i-- ) {
$js->evaluateScript("myTestFunc();", 'Test.Context');
}
echo "#2: " . (mstime() - $start)." ({$runs} without re-definition)<br />";
unset($js);
echo "<hr />";
}
function mstime() {
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}



I just wanted to share the following complaint:

WS only captures the visible part of the web page, the rest is blank.

Please fix this or I’ll have to write a scathingly negative review and give you zero stars.

(Running iOS 5 developer preview.)

Yours, [..]

Remember: iOS 5 is just a Developer preview right now (a few days old) and scheduled to be made public in the next months.

Time Machine Interval

Time Machine is a great way to backup all files and restore to any point in time, by default it creates a new backup every hour.

Normally this won’t hurt the performance but if you have many small files on your disk or huge portions of your data change very often, it will slow down the whole system.

You can change the intervals to reduce the slowdowns. To backup only every 6 hours, open your terminal and:

sudo defaults write /System/Library/LaunchDaemons/com.apple.backupd-auto StartInterval -int 21600

The interval is in seconds.

To setup more sophisticated schedules you can also try a free tool called TimeMachineEditor (http://timesoftware.free.fr/timemachineeditor/).

Archived Apps in XCode and where they are

Archived Apps in XCode are a great way to submit new versions to iTunes Connect because they are automatically grouped, tagged and re-signed in the process – you don’t need to manually find the compiled App, zip it & upload with the Application Loader.

If you start at a new Mac without data migration, you can simply copy the folder with all archived App versions to your new users library.

You can find it here:

/Users/<USERNAME>/Library/Application Support/Developer/Shared/Archived Applications


Or, if you develop at different Macs, symlink that folder to your Dropbox to have them accessible everywhere :-)

Analytics for iPad, Release 1.6

Today the 1.6 Update was submitted to Apple. Originally this update have been scheduled for the first week of November but was put on hold to be released with the iOS 4.2 version to have the least possible problems when everyone upgrades their iPad :-)

It contains only a few but very cool new features:


The new features are:

  • Support for Multiple Accounts – often asked for, here it comes!
  • Advanced Segments – take a better look at your reports by switching and comparing subsets of data
  • Open Reports in other Apps like iBooks – any App that supports PDF Files can receive reports for later usage
  • Print your Reports! – Support for AirPrint is now built in


Improved was the following:

  • The general speed of the website listing updates and report downloads was improved
  • Goals have now names instead of numbers


Also one bugfix is included:

  • Some users with special characters in their password had trouble logging in


In addition to the Update of the Free Version including its Premium Upgrade, there was also a full blown premium Version submitted to the store. That version is exactly the same but meant for everyone who has disabled In-App-Purchases and can’t get the premium upgrade.


2010/12/05 – Today the update hit the store, watch out for update notices in iTunes or the App Store to get it on your iPad!

Detect iPad and iPhone using Javascript

I’ve got some people asking for a simple Javascript-Detection for iPad’s.

It’s simple, just take a look at the browser identification:




Example:


It basically searches in the browser information for any occurence of “iPad” or respectively “iPhone” and returns true if found.

Here’s an example of Safari’s identification on the iPad:


Switch to our mobile site