In both the user and developer forums for the Windows Marketplace for Mobile, I've seen a lot of questions being raised on why a particular application doesn't show up. Some think of it as a bug in the Marketplace, but it's not. Here's an explanation.
Why Won't my Application Show in the Marketplace?
I've answered this question a few times for a few developers in the past few days. In all cases, the applications were in fact present in the Marketplace. The reason the developer could not see the applications were that there were special requirements specified that prevent it from showing up when a user is not logged in or a user doesn't have a compatible device on his/her account (read the User section below for details). There seems to be a misunderstanding when specifying the requirements for an application. The requirements section for an application is asking what features must be present in the device for the application to be usable. It is not asking what attributes of a device the application can use. I will use Bing Maps as an example. Bing Maps can work with a GPS device. But if the user does not have a GPS device in his/her Windows Phone, then the application will still work from either cell tower based location or through the user manually setting their location. Because of this, the GPS requirement doesn't need to be specified for the Maps application. I've seen developers specify the Keyboard or D-pad requirement because their application will work with these. But their applications don't require these attributes since they can also rely on the SIP (Soft Input Panel) or the touch interface. Applications with some requirements will not show up unless a user is logged in with a compatible device on their account. Superfluously setting requirements could lead to lower visibility and sales for one's apps.
Some users have complained that they see an application when they first go to the Marketplace website but after logging in, the Application disappears and can't be found through a search or from their device. Or there may be some applications that the user can only find when he or she is logged into the Marketplace. When you are not logged into the Marketplace, the interface shows you applications that don't have certain requirements set (example: Applications that don't require GPS, Bluetooth, WiFi or a hardware keyboard). Applications like this would work on a majority of Windows Mobile phones. If an application requires a certain capability, then it will only display when you are logged in and a compatible device is associated with your account. An application may disappear when you log in if the application has some requirement that conflicts with your device. One example is Monopoly. It works on QVGA and VGA devices but does not work on WVGA and WQVGA devices (those are the compatibility restrictions at the time of this post, that may change in the future). In the USA market, you can see Monopoly without being signed in but if you sign in and have a Touch Pro II on your account, it will disappear from view.
So why did Microsoft do things this way? The idea behind this is to minimize the number of applications that a user sees that he or she cannot purchase. The practice is rather standard. In the iPhone App Store device, compatibility is based on whether or not the device has a cellular radio (as iPod Touch devices do not) and whether or not the device supports OpenGL ES 2.0 ( such as the iPhone 3Gs or latest iPod Touch model). If I have a first generation iPod touch, I will not be able to find applications that require phone capabilities when I search from my device. The Android App store does things in a similar manner, one won't be able to find certain applications that are not meant for their device.
I've seen some complaints about no applications being available at all. As mentioned back in March, the Windows Marketplace for Mobile will initially be available in 29 markets. If you live outside of the initial 29, then the Marketplace application may show no applications for you.