Showing posts with label Android. Show all posts
Showing posts with label Android. Show all posts

Thursday, September 11, 2014

Developing a Simple Android Wear Application: Part 1

This post will walk through the steps involved in creating a simple Android Wear application. I will be using the Balloon Pop Android app as the code example.

In order to get started you need to have already completed the following steps:
  1. Download the Android SDK
  2. Configure a Wearable device or Emulator
  3. Install the latest platforms and tools (either ADT/Gradle)

image 1: main app layout
The application is comprised of two modules: app and wear.

The app portion is primarily required in order to deploy the application on Google Play.  It simply contains one Activity with a basic layout that notifies the user of the fact that it is a wearable application. (see image 1) 

The most important part of the module is that it includes the wear app as a dependency, this way the wearable app will be automatically installed when the main application is installed. You can read more about your packaging options here.

The wear portion contains the activities and game logic that run on the actual wearable device.  It uses the wearable support library in order to take advantage of two UI components: the BoxInsetLayout and the WearableListView.

The BoxInsetLayout is very useful for supporting both rectangular and circular devices because it allows you to define boundaries for its elements.  We use it for the "Addition" and "Subtraction" views so that all three balloons are displayed in the viewable area.


Part 2 will cover the WearableListView provided in the support library. This post was based on the Balloon Pop Android application available on Google Play.

Thursday, September 4, 2014

Balloon Pop for Wear: Our First Wearable App

We recently released our first application for Android Wear: Balloon Pop for Wear.  We are very excited to be among the first developers to make something designed for wearable devices that kids can enjoy playing!

Balloon Pop is a math and counting game that currently features three modes of play: Counting, Addition, and Subtraction.

In the "Counting" mode you are presented with a number of balloons that you have to *POP*, when you get it right you move on.

In the "Addition" mode you are presented with a simple addition math problem. Then you have a choice of 3 possible answers. *POP* the balloon to see if you are right.

In the "Subtraction" mode you are presented with a simple subtraction math problem. Then you have a choice of 3 possible answers. *POP* the balloon to see if you are right.

Each mode has nice graphics and vibration features to reinforce when your child gets the answers right!

This game is **AD-FREE**, so please give it a try and leave us some feedback. We are interested in knowing what other modes you would like to see in the future.

Monday, December 2, 2013

Sivart Technology's Word Crank is Approved for Google Play for Education

We were recently notified by Google, that our word game, Word Crank, has successfully passed review and is approved for inclusion in Google Play for Education!

What is Google Play for Education?  "Google Play for Education is a destination where schools can find great, teacher-approved, educational apps and videos on Play Store. Teachers can filter content by subject matter, grade and other criteria." -- Google

We are so excited to have this opportunity and look forward to seeing what results!

Wednesday, July 31, 2013

Google Play Games App Overview


Last Wednesday, Google released the Google Play Games App.  According to Google:  "[it's] is the easiest way for you to discover new games, track achievements and scores, and play with friends around the world."

What I really enjoy about the app is the ability to easily see all of the games that I currently have installed that include the Game Play Services.  Previously you basically had to just look at the developer's release notes to find out if they had incorporated Game Services.

Furthermore, the release of this app is definitely an opportunity for developers who may have been sitting on the fence on whether they should give the Game Services a try.  You essentially get free exposure for your game by integrating with Google's service.  This could also really drive engagement, as each game the user plays is displayed prominently with a badge showing the current number of achievements they have won.

The interface is very simple and clean.  You have several pathways to discovering new games and new people for your Google+ circles.  Have you downloaded the new Google Play Games app yet?  What are your first impressions? Leave comments below.

Wednesday, June 19, 2013

[Android Tips]: Play Store 'staged rollouts' with Google Analytics

Recently the Google Play Store has added the ability for developers to release a new version of their application's apk progressively by means of staged rollouts.  According to Google this allows you to "get feedback on your new app or app update early in its development and make sure your users are happy with the results."  With the release of the latest version of Word Crank, our flagship game, we decided to take advantage of this new feature.

Staged Rollouts


We released version 1.5.0 of our application to 20% of users initially and then monitored the results in Google Analytics.  In order to distinguish the engagement of the users on the latest version of the app from the others, we created two new custom segments in our primary Dashboard view.  The first segment included all users with version 1.5.0 of the application and the other segment included all other versions of the application.

Custom Segments

 

Once these segments were created we monitored the statistics for a few days and then gradually increased the percentage of rollout to 100%.  This is an extremely useful tool in making sure your new release increases user engagement and the desired traffic goals of your application.

Have you tried staged rollouts?  Leave a comment below.

Monday, June 10, 2013

[Android Tips]: Getting users to +1 your app

In order to improve your application's ranking in the Google Play store, you should get users to +1 your app.  You can do this using GooglePlayServices and the PlusOneButton Android UI element.  Here is a simple layout file that includes the plus one button:

[code]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="10dip"
android:background="@android:color/black" >

<com.google.android.gms.plus.PlusOneButton
xmlns:plus="http://schemas.android.com/apk/lib/com.google.android.gms.plus"
android:id="@+id/plus_one_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
plus:size="tall"
plus:annotation="inline" />

</LinearLayout>
[/code]

It creates the following User Interface Component:
google_plus_button_layout

 

 

Then in your MainActivity's onResume method you can check to see if the layout is visible and then initialize the button:

[code]
@Override
protected void onResume() {
super.onResume();

if (plusLayout.getVisibility() == View.VISIBLE) {
// Refresh the state of the +1 button each time the activity receives focus.
mPlusOneButton.initialize(mPlusClient, APP_URL, PLUS_ONE_REQUEST_CODE);
}

}

[/code]

 

The APP_URL is the link to your app on the Google Play Store

The PLUS_ONE_REQUEST_CODE is any integer value >= 0

Building on the AppRater code base, you can modify it to set a flag when you want to show the plus_button_layout to the user, similar to the following:

[code]

public class AppRater {
private final static int DAYS_UNTIL_PROMPT = 1;
private final static int LAUNCHES_UNTIL_PROMPT = 4;

public static void app_launched(Context mContext) {
SharedPreferences prefs = mContext.getSharedPreferences(PreferenceConstants.PREFERENCE_NAME, Activity.MODE_PRIVATE);
if (prefs.getBoolean(PreferenceConstants.PREFERENCE_SHOW_PLUS, false)) { return ; }

SharedPreferences.Editor editor = prefs.edit();

// Increment launch counter
long launch_count = prefs.getLong("launch_count", 0) + 1;
editor.putLong("launch_count", launch_count);

// Get date of first launch
Long date_firstLaunch = prefs.getLong("date_firstlaunch", 0);
if (date_firstLaunch == 0) {
date_firstLaunch = System.currentTimeMillis();
editor.putLong("date_firstlaunch", date_firstLaunch);
}

// Wait at least n days before opening
if (launch_count >= LAUNCHES_UNTIL_PROMPT) {
if (System.currentTimeMillis() >= date_firstLaunch +
(DAYS_UNTIL_PROMPT * 24 * 60 * 60 * 1000)) {
editor.putBoolean(PreferenceConstants.PREFERENCE_SHOW_PLUS, true);
editor.commit();
return ;
}
}

editor.commit();
}

}

[/code]



*** Download our first game: Word Crank today for free: Available on iOS and Android***

Saturday, May 4, 2013

[Android Tips]: Uploading Images to a Remote Web Service

upload

In order to upload images to a web service that requires a Multipart request, the below code will create the file part object and include it as part of the MultiPartRequest entity. I store this method in a separate class and call it statically from within an AsyncTask.  This type of functionality is particularly useful for when you want to upload a user's profile photo and store it on your remote file system.

The following Apache libraries are required:

  • commons-codec.jar (version used: 1.3)

  • commons-httpclient.jar (version used: 3.0-rc4)

  • commons-logging.jar


[code language="java"]
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.multipart.ByteArrayPartSource;
import org.apache.commons.httpclient.methods.multipart.FilePart;
import org.apache.commons.httpclient.methods.multipart.MultipartRequestEntity;
import org.apache.commons.httpclient.methods.multipart.Part;

static boolean doImageUpload(final byte[] imageData, String fileName) throws Exception {
String responseString = null;

PostMethod method = new PostMethod(<remote url>);
HttpClient client = new HttpClient();
client.getHttpConnectionManager().getParams().setConnectionTimeout(100000);

FilePart photo = new FilePart("file-data", new ByteArrayPartSource(fileName, imageData));
photo.setContentType("image/jpeg");
photo.setCharSet(null);

Part[] parts = {photo};
method.setRequestEntity(new MultipartRequestEntity(parts, method.getParams()));
client.executeMethod(method);

responseString = method.getResponseBodyAsString();
method.releaseConnection();

if (responseString.equals(<successful response>)) {
return true;
} else {
return false;
}
}
[/code]

Have you done this a different way?  Leave a comment below.

*** Download our first game: Word Crank today for free: Available on iOS and Android***

Monday, March 18, 2013

Seems People Like Word Crank

Just a few quotes from some of our players:

[caption id="attachment_348" align="aligncenter" width="620"]user reviews of Word Crank User Reviews of Word Crank[/caption]

Monday, October 15, 2012

Why I love the new Google Developer Console

Today Google released the preview of their new Developer Console to everyone.  I love it!  Why you may ask.  Well as someone who checks the statistics and ratings everyday of several applications, it's much easier to read and navigate.  The layout and design of the tables is very clean, allowing one to quickly get an overview of the current state of each application.



The new design allows you to quickly move between the statistics, ratings, app description, and apk uploads.  Previously you had to navigate between tabs and do a lot of extra clicking to get to similar pieces of information.



Yes, the new layout is very refreshing and I look forward to the other features that Google has in store for us developers.  What do you think?  Leave comments/feedback.

Monday, October 8, 2012

Game Development: Using Google Analytics to track user flow

Recently we have begun to take advantage of the flow visualizations available from Google Analytics for analyzing user behavior in Word Crank.



What is a Flow Report?
"Flow Reports in Google Analytics illustrate the paths visitors take through your website...In one graphic, you can see how visitors enter, engage, and exit your site. " -- Google Analytics

One aspect of these diagrams that I especially appreciate is the ability to compare two different time frames and see how the user flow differs.  I really recommend this if you include a new feature in your application and want to see what impact it has on user behavior.

How to Compare Two Dates:

  1. Select Compare to Past

  2. Choose a second date range

  3. Choose similar time periods ( full months or weeks )




Happy flow reporting!

Monday, September 3, 2012

Being Amazon's Free App of the Day: The Results

On Monday, August 27th, 2012, Word Crank Elite was the Free App of the Day in the Amazon App Store.  We were very excited about being given the opportunity and promised to share the results (find out how this opportunity came about, here).  So overall, we feel that the promotion was a success.  We were able to increase our game's visibility in the App Store and received some valuable feedback.

 

Here are a few statistics from the past week which help highlight the impact on our traffic:








Aug. 27 - Sep. 2


Visits: 50,677

Unique Visitors: 14,201

Pageviews: 38,010

Pages / Visit: 0.75

Avg. Visit Duration: 00:11:17

Aug. 19 - Aug. 26


Visits: 1,508

Unique Visitors: 251

Pageviews: 1,169

Pages / Visit: 0.78

Avg. Visit Duration: 00:15:16

Based on the above table you can see that we had a huge influx of traffic; an increase of over 33x. We also saw an increase in the number of downloads of the free version of Word Crank, in the other app stores, Google Play and iOS.

What was unexpected to us was the number of negative comments related to the use of OpenFeint in the game.  On Google Play we have 4.4 stars, but on Amazon with so many people complaining about the use of OpenFeint we have only 2 stars.  That is unfortunate as we thought that OpenFeint was allowing users the ability to compete with friends and gain achievements.  From what we have been able to find online, there really is no basis for such negativity.  However, as OpenFeint was recently bought by GREE we were already considering alternative scoring solutions.

So what were our major takeaways?

  • we should allow users the ability to choose which game level they wanted to start with, 3, 4, or 5 letter words (this will be included in version 1.3.5)

  • we should start the difficulty level at "Bonkers" (this will be included in version 1.3.5)

  • we should move away from use of OpenFeint (TBD)


We will share some additional statistics within the next few weeks, as the impact of these types of promotions can have lasting effects.

Wednesday, August 8, 2012

Gimmie AR

You’re moving to a new place and are concerned that your furniture won’t fit.  That king size sleigh bed that you purchased and just can’t live without now seems to eclipse the space of your bedroom that reminds you more of a dorm minus the smell of stale pizza.

Instead of going for your measuring tape while crying inside over leaving behind a bed the size of your first car, you whip out your phone confident that if it’s physically possible, you’ll bring all your items.

With a simple scan of your mobile device around your room you’re able to take accurate measurements, place furniture, and get a 3D rendering of what your room will look like with all of your actual furniture.

In the nutshell, this illustrates what augmented reality is.

[caption id="attachment_297" align="alignright" width="150"] An example of Augmented Reality[/caption]

For the analytical mind, it can be defined as a live, direct or indirect, view of a physical, real-world environment whose elements are augmented by computer-generated sensory input such as sound, video, graphics or GPS data.

The abridged version - a view of reality (what you see) modified (augmented) by computer generation.

Augmented Reality “AR” has been around for years although many aren’t acquainted with its application.  Hollywood has been using the technology in the creation of countless movies.  What use to take millions of dollars and months of work can now be done with a computer and just a few minutes!

You may not be familiar with augmented reality but you’ve probably heard of its counterpart, virtual reality.  Difference being virtual reality replaces what you actually see, while augmented reality enhances it.  This technology will change how we view the entire world. 

Envision a world where a surgeon has at their disposal their patient’s vital signs and full medical records.

Or a navigation system that goes beyond providing just directions but gives information on weather, terrain and even traffic patterns all on your windshield.

No longer will your business card only encompass your contact information, but now can include a 3D reproduction of your product or even a video of services offered.

AR is not some gimmicky technology like “flying cars of the future” but is already being implemented by some of the top companies in the world.

Phones with the Android and IOS operating systems already contain applications that feature AR in a more embryonic version.

We have truly only scratched the surface of what may be the next revolution in technology.

Friday, July 13, 2012

This Week @Sivart Tech: July 13, 2012

It's been a while since we've done a "This Week..." post, but we have been very busy recently; especially this week and wanted to share.  Happily we announce the release of our newest application, Budding Baby, which is available for FREE on both the Google Play Store and the Amazon Market!

Budding Baby's Description:
Keep track of your baby's growth and developmental milestones for the first 24 months of their lives. Budding Baby provides a month-by-month list of baby's milestones and fun ideas that you can do to interact with your baby.

Receive a monthly notification to stay up-to-date with what your baby can do now.

Interact with other parents using the Budding Baby Comments feature. Via Twitter you can share ideas of games and activities that you and your baby can enjoy.

Please download it and give it a try! Please leave any comments below, we always welcome feedback.  Thanks.

Wednesday, June 27, 2012

Using the Android Monkey tool

Android comes with a command-line tool (Monkey) that allows you to stress-test your application.  Monkey generates some random user events and will stop and report any errors that it encounters. It is very useful in helping to flesh out some not so obvious bugs that could be lurking in your application.  Below is an example of how we used it to test one of our applications under development.


cmd> adb shell monkey -p com.sivart.buddingbaby -v 200


Results:
:Monkey: seed=0 count=200
:AllowPackage: com.sivart.buddingbaby
:IncludeCategory: android.intent.category.LAUNCHER
:IncludeCategory: android.intent.category.MONKEY
// Event percentages:
// 0: 15.0%
// 1: 10.0%
// 2: 15.0%
// 3: 25.0%
// 4: 15.0%
// 5: 2.0%
// 6: 2.0%
// 7: 1.0%
// 8: 15.0%
:Switch: #Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10000000;component=com.sivart.buddingbaby/.SplashScreenActivity;end
// Allowing start of Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.sivart.buddingbaby/.SplashScreenActivity } in package com.sivart.buddingbaby
:Sending Pointer ACTION_MOVE x=-4.0 y=2.0
:Sending Pointer ACTION_UP x=0.0 y=0.0
// activityResuming(com.android.launcher)
// Rejecting resume of package com.android.launcher
:Sending Pointer ACTION_DOWN x=47.0 y=496.0
:Sending Pointer ACTION_UP x=29.0 y=503.0
:Sending Pointer ACTION_DOWN x=255.0 y=143.0
:Sending Pointer ACTION_UP x=255.0 y=143.0
:Sending Pointer ACTION_DOWN x=295.0 y=659.0
:Sending Pointer ACTION_UP x=290.0 y=649.0
:Sending Pointer ACTION_MOVE x=-5.0 y=3.0
:Sending Pointer ACTION_MOVE x=0.0 y=-5.0
// Rejecting start of Intent { act=android.intent.action.MAIN cat=[android.intent.category.HOME] cmp=com.android.launcher/com.android.launcher2.Launcher } in package com.android.launcher
:Sending Pointer ACTION_DOWN x=74.0 y=803.0
:Sending Pointer ACTION_UP x=74.0 y=803.0
:Sending Pointer ACTION_MOVE x=3.0 y=-2.0
:Sending Pointer ACTION_UP x=0.0 y=0.0
:Sending Pointer ACTION_MOVE x=-4.0 y=2.0
//[calendar_time:2012-06-22 22:19:07.777 system_uptime:307227]
// Sending event #100
:Sending Pointer ACTION_MOVE x=4.0 y=2.0
:Sending Pointer ACTION_DOWN x=309.0 y=694.0
:Sending Pointer ACTION_UP x=322.0 y=694.0
:Sending Pointer ACTION_MOVE x=0.0 y=-1.0
:Sending Pointer ACTION_DOWN x=294.0 y=319.0
:Sending Pointer ACTION_UP x=294.0 y=319.0
:Sending Pointer ACTION_DOWN x=118.0 y=497.0
:Sending Pointer ACTION_UP x=119.0 y=493.0
:Sending Pointer ACTION_DOWN x=137.0 y=284.0
:Sending Pointer ACTION_UP x=124.0 y=295.0
:Sending Pointer ACTION_DOWN x=258.0 y=403.0
// Rejecting start of Intent { act=android.intent.action.CHOOSER cmp=android/com.android.internal.app.ChooserActivity } in package android
:Sending Pointer ACTION_UP x=273.0 y=403.0
:Sending Pointer ACTION_MOVE x=-5.0 y=-5.0
// Rejecting start of Intent { act=android.intent.action.CHOOSER cmp=android/com.android.internal.app.ChooserActivity } in package android
Events injected: 200
Dropped: keys=0 pointers=0 trackballs=0 flips=0
## Network stats: elapsed time=6268ms (6268ms mobile, 0ms wifi, 0ms not connected)
// Monkey finished


Have you used Monkey successfully?  Leave a comment below to share your results.

Sunday, April 22, 2012

Adding a Application Rating Dialog to your Android Game

UPDATE: Also get users to recommend your app via Google+

In order to increase the number of engaged users who were rating the Android version of Word Crank, we used a small piece of code from Android Snippets that shows a dialog to the user after a number of predefined uses to rate your Application. What were the results?

There were 0.2 App Ratings/day previous to adding the App Rater Dialog, after adding the App Rater dialog we went to 0.33 App Ratings/day.  That is equivalent to a 65% increase in user app ratings by making such a small change.  We felt that this was an important change as user ratings can help increase your placement in the Android Market.  Also, we were hoping to get more positive ratings as the dialog only appears after a user has played the game at least 3 times.

So why not give it a try in your game?  Let us know your results in the comments below.

Monday, March 5, 2012

Android Market Publisher Statistics Gets an Update

Last Thursday when logging into my Publisher account on the Android Market, I was pleasantly surprised to find out that Google had updated the available statistics.  Previously, the available data was very limited; focusing primarily on Active Device Installs.

The new statistics page now exposes the number of daily uninstalls, active installs, and user installs.  It also provides a comparison of your application's numbers versus other apps in your same category.  This additional information was very useful in seeing how Word Crank stacked up to other apps in the Brain and Puzzle category.



Word Crank Daily Installs



Word Crank Daily Installs by Version



Word Crank Installs Compared to Other Brain and Puzzle Apps

Have you found the new format useful?  Leave a comment below.

Friday, November 18, 2011

This Week @Sivart Tech: November 18, 2011

So this week we have been busy working on our December release of Word Crank.  This release will include some exciting new features.

First, we are implementing the Game Feed feature that is new to OpenFeint, which will allow users to find out more about what the other users of the game are doing.  This will include changing their profile pictures to conquering one of the many levels.  We hope that this will be a fun way to become more engaged with our game.

Next, we have several graphics changes that we hope will give the game more appeal and make it more polished.  And with any new build that we work on, performance improvements and bug fixes are the standard.

Also we are excited that our Android downloads are continuing at a steady rate, adding more than 1,000 new downloads over the past week!

Sunday, October 16, 2011

A Word Game That Does Not Try to Save the World

So what makes our products unique?  One of the rules of marketing is to know your product and be prepared with an elevator speech.  You know, a 30 second pitch prepared, the time of a typical elevator ride about your product and what sets it apart from all others.

So here goes:

Introspectively speaking, due to experiences in life unique solely to us, our acuity is shaped causing anything we create to be different from anyone else.  And blah…blah…blah…

So now that we’ve cleared the air and have identified on a cosmic scale what makes our product unique, looking on a more rudimentary scale, what motivated the creation of Word Crank?  Put simply, a desire to find a word game that we would actually play.

We’re not intimating that there weren’t any good word games out there, because there are.  We were simply looking for a game that combined elements of Word and Arcade style gaming that we both would be interested in.

You see although being siblings, we have two different backgrounds and stakes in our product.  Here comes the very exciting history lesson: 

Our CTO is a computer programmer by profession, and has single-handedly coded all of our projects. Her objective when creating a game centers on playability and usability.  The code has to work and memory allocation is central around enhancing the user’s experience.

The CEO’s experience with coding begins and ends with formulas for excel worksheets.  With a background in business and an avid “gamer”, for him it just has to pop and be fun.  “No chipped paint” as Walt Disney articulated around his reason for creating Disneyland.  It just has to look good!

Combine these and you get Word Crank our very first release.  A word game that’s not buggy, has a very expansive dictionary and does what it’s supposed to do (in our developer voice).  But then it does something else.  It creates an atmosphere with a beautiful UI (User Interface).  A word game with elements of grunge, hip hop, pop, and action!  (Guess whose voice added this)

You see, both voices played a major role in the creation of Word Crank.  We combined programming principles which allow our game to play smoothly and feel effortless.  We also brought arcade to our game by not just allowing you to make the word C-A-T and get 50 points, YAY *sarcastically* but we brought engaging music, cool animations, and some serious themes.

We thank all of our 5k+ downloads on the Android market and are excited that overall reception has been positive with only 6 users rating below 4 stars (send us a message on what you’d like to see to change that to a 4/5) We’re going to keep making cool apps that people like and promise to never take ourselves too seriously but remember it’s just a Word game that doesn’t try to save the world.

Wednesday, October 5, 2011

A.A.R.F.!! Another Amazing Review Finished!!

Sorry for the dog bark but we @ Sivart Technology are so excited that another review for Word Crank has been done.  Check out the YouTube video done by macrover180:

http://www.youtube.com/watch?v=m6KcGrzcPXI

Such an awesome Camera btw!!  A complete facelift of Word Crank is coming to try to keep up with it's siblings on the way (3 more games in the works!!)

Tuesday, September 6, 2011

Advertising your Mobile Game's Fan Page with Facebook

So recently we have decided to advertise our Word Crank Fan Page using the Facebook Ads capability.  Taking advantage of social media to promote your Android or iOS application is becoming the standard among the majority of game developers today. Almost all of the top hundred apps have a Facebook presence, so we of course jumped on the bandwagon to help promote our game.

The Facebook Ads infrastructure allows you to target certain demographics for your ad campaign.  What's unique about advertising with Facebook is that you have the ability to target potential users via their interests and likes.  Not with that being said we initially targeted users who liked things such as, "music", "gaming", "reading", etc.  We believed that these users would be more likely to become fans of Word Crank.  However, we saw very low click-through-rates for those users.  The next stop was to just target anyone, regardless of their interests and the clicks started coming through.  Below are the results for the past few days with the new adjustment in targeting.



We were able to get 14 new "likes" out of the 34 people who actually clicked the ad.  Before this we only had 1 new "like" from the Facebook Ad Campaign.  We are happy with the results, and since this is a new game we will have to give it some time to see what impact the Facebook Fan Page is going to have on our marketing efforts.  One downside of the Facebook generated ad however,  is that you don't have a lot of flexibility in the layout and colors.  They use a standard template for all of the ads, so you have to be creative with the picture you choose and its accompanying wording.  I hope that soon Facebook will allow for more layout options.

Please feel free to ask questions/comment.  Thanks.