Uproar Blog

Crafting convenient mobile apps for your life.

Archive for July, 2009

Choose your App Store Keywords & Application Name Carefully

without comments

After submitting the 1.2 enhancement to Gratuitous, we noticed some changes in iTunes Connect around the meta data you specify for your app and thought we’d share for the benefit of other iPhone developers.

Yesterday, TUAW ran a story about how Apple has recently allowed developers to add keywords to their application to help the search algorithm within the App Store.  The keywords, specified in iTunes Connect for each version of your application, are a comma delimited list of keywords in which the total length of this string cannot exceed 100 characters (note: after this article was published Apple reduced the limit from 255 to 100).  We haven’t been too impressed by the search algorithm within the App Store so it is encouraging to know that Apple is trying to improve the relevancy of the search results.

App Store Keywords for Gratuitous

App Store Keywords for Gratuitous

On the left you can see the keywords we used for Gratuitous.  Should the keywords be organized by most relevant/important to least?  Are the relevancy of your keywords diluted with the more keywords you apply?  Unfortunately, we don’t know.  Other than a small blurb in iTunes Connect announcing the change, there is no additional information on this new field.

After finishing the submission for the upcoming Gratuitous 1.2, we noticed something interesting.  The new keywords field above was dithered and couldn’t be edited.  Looking further, the application name was also now dithered and couldn’t be edited.

app-store-app-name

Previously, you were able to update your application name display within the App Store at any time.  We took advantage of this when Gratuitous was initially released when we realized it wasn’t being returned for the search term tip calculator.  Updating the display name within the App Store to “Tip Calculator – Gratuitous” had an immediate positive effect to our search result ranking.

Last week, we changed our application name within the App Store back to simply “Gratuitous”.  We were curious if this would affect our search result ranking and frankly, it is the name we’d really like use.  Prepending the name “Tip Calculator” just doesn’t look good to us.  However, changing the name back to “Gratuitous” had an immediate negative effect on our search result ranking (so much so that Gratuitous isn’t returned in the first 150 results for the search term tip calculator).  Now that the application name can only be set once per version, we’re forced to wait until the 1.2 update is approved before our name reverts back to “Tip Calculator – Gratuitous”.

Thankfully, we already had 1.2 in the pipeline when these changes occurred.  Some developers have initially set the keywords field wrong (like not comma delimiting the terms) or want to modify it only to realize they will need to release a new version of the application in order to do so.  Releasing a new version of your application just to modify these two fields is a high burden for developers and introduces noise (in the form of a new app version) to your consumers.

In a perfect world, your application name should be set just once and set to your actual application name, not something to improve the search juju.  Additionally, keywords wouldn’t be necessary and the App Store search algorithm would return relevant results regardless of special terms developers set to try and improve their ranking.  Unfortunately, this isn’t the App Store we currently live in so remember to choose your keywords and application name carefully.

Update: 8/1/2009: Apple just updated the developer program portal news with information on keywords and app names that matches what we found and reported earlier in this blog post.

Written by kevin

July 30th, 2009 at 6:05 am

Google App Engine on Google Apps Domains

with one comment

At Uproar, Objective-C isn’t the only thing I do.  Recently, I’ve been hacking away on a Java Google App Engine project (more on this later…).  After deploying the app, the following exception was thrown upon hitting my app’s URL:

Uncaught exception from servlet
java.lang.ClassCastException: java.lang.IllegalArgumentException cannot be cast to javax.servlet.ServletException
	at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:754)
	at org.apache.jsp.xxxxxxxx_jsp._jspService(xxxxxxxx_jsp.java:107)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
	<snip />
	at java.lang.Thread.run(Unknown Source)

This was confusing as my app worked fine when running locally.  Some googling uncovered this Google App Engine issue.  If a RuntimeException is thrown in your jsp, Apache Jasper attempts to cast it to a ServletException (which it is unable to do on app engine).  However, this is really just masking the real issue which for me was found when I read comment #8 in the issue:

I needed to add Google App Engine as a service on my domain's Google Apps page, and add Guestbook as an app.

This caught my eye because my app was configured to run under my own Google Apps domain (upon creating an app, you have to specify whether it will authenticate against Google’s appspot.com or your own Google Apps domain).  After enabling the app service under my domain, all is well and my deployed app engine service now works as expected.

Written by kevin

July 27th, 2009 at 7:08 am