Advertising – is it a waste of money?

26 08 2008

Last two months has been really busy and I haven’t put much attention to advertising. Actually, I haven’t done it at all. Until yesterday.

I hate advertising because I always feel like the only one that earns money is the Ad Server.  Even if clicks or impressions are not soo expensive it is hard to turn them into profits. Why? Games are either too cheap or too expensive.

But I read a book about AdWords and it gave me some inspiration. I also noticed that Pony World has quite good visitor to download ratio – over 40% of visitors download the game. With that ratio maybe it will not to that hard to turn AdWords into profits?

I created two ad variations for selected keywords and set up a daily budget of a little over $10. And today I got the results (that’s what I love about AdWords – almost instant results).

My ads received 90 clicks total: 51 for ad variation #1and 39 for ad variation #2. CTR for those ads: 1.55% for #1 and 1.22% for #2. Not so bad,  especially one you show it by keywords: the best CTR is 10.38% and the lowest one is 0.77%. The lowest one represents most of impressions and clicks.

Because that’s just 90 clicks I don’t know if it’s profitable yet or not, but we can do some estimations. Let’s go to Google Analytics and check if those clickers download the game. This is where we face first disappointment. Only 19.48% of clickers downloads the game. It’s still much better than what I had for Runes of Avalon campaign where only 11% of visitors downloaded the game.

If Pony World Deluxe has 1% CR (download to sale) then I need 100 downloads to sell one game. And I need 513 clicks to get 100 downloads. 513 clicks will cost me over $68. And I get only $17 out of each sale, so each sale makes me a loss of $51.

Judging just by those numbers you can for sure say that advertising is a waste of money. And it is if you do it wrong. It is if you aim short term. It is if you don’t tweak your ads, your game and your game description web page. It is if you don’t increase your visitor value.

It takes time to turn advertising into profits. Most people are not patient enough.

I made some tweaks to my ads and will do for at least few more days. If I can see improvements then I’ll keep advertising until I make a profit or run out of money :D

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Reflexive – portal, e-commerce and DRM provider

29 04 2008

If I would have to name developer friendly portals, Reflexive would be on one of the top positions. Now, after release of Runes of Avalon 2 I can say that they are not only a portal that let’s you earn quite good percentage of sales price.

Do you need an e-commerce provider? Well, if you sell on your own for sure you need one. I use eSellerate, some use Plimus, a lot of developers uses BMT Micro and many others. But this may change… because if you set up affiliate account and sell your own game through it you can earn 90% of sales price, which usually is $19.95. That’s one of the lowest rates in the industry.

But that’s not all. Since they wrap your games (without putting Reflexive splash screen) you don’t have to worry about DRM. Forget about home made solutions, forget about Software Password.

And last but not least, you can use it as hosting service. No more worries about bandwidth.

The best thing about using Reflexive?

Read the rest of this entry »

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Cross-selling statistics from

19 11 2007

Cross-selling is one of the easiest way to maximize your revenue per order. Cross-selling is not only the easiest, it’s also effective technique. I started using this technique in August 2007 and I wish I have started using it earlier. Here are stats from from August till mid November.

I created 7 cross-selling groups. I’ve selected suplementary games that are similar to primary item (the first one that visitor puts into the shopping cart). Here is the list of groups and their effectiveness:

Maggie X – 13.6% effectiveness.
Runes X – 0% effectiveness!
Maggie X – 14.3% effectiveness.
Runes and Path of Magic – Windows – 50% effectiveness.
Path of Magic and Runes of Avalon – Windows – 13.8% effectiveness.
Runes and Path of Magic – Linux – 90% effectiveness.
Path of Magic and Runes of Avalon – Mac – 14.81% effectiveness.

Thanks to this technique I made $577.92 more than I would without using it (before I started cross-selling I had only 1 or 2 orders with multiple products). The best thing about it is that I didn’t have to pay a penny for it to get this extra revunue.

Effectivenes depends on suplementary game. It is a great way to sell sequels or level packs. It doesn’t work if you sell game for kids with puzzle game (that’s why Rune X had 0% efficiency). It works better if primary game is more expensive than supplementary game (50% of Runes of Avalon ($19.99) customers ordered Path of Magic, but only 14% of Path of Magic ($9.99) customers ordered Runes of Avalon).

Now, while I was writing this article I found out that Runes of Avalon for Mac was set up with wrong cross-sell group (Runes X). That mistake probably cost me around $200. Remember, always test your sales machine. If it is not set the way you want it to be set you will most probably lose money.

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Track full order datails with Google Analytics and eSellerate (or Plimus, BMT, etc.)

13 11 2007

You can have Google Analytics anabled and working great, but if your e-commerce service is located on 3rd party domain, then you lose a lot of important informations, such as referral site, visits to purchase, days to purchase, etc. If you use the trick described below you will be able to track all this useful informations. I made it to work with eSellerate, but I am sure it can be done with Plimus, BMT and other e-commerce providers.

First of all, all your buy now links have to call a script that will save Google Analytics cookies to database. To match visitors with cookies we will use visitor IP. The script that will set the cookies on e-commerce domain will delete database entry right after retrieving it. It is not a perfect solution, but it will work in 99.999% (how many orders do you expect placed within few seconds from the same IP?). So instaed of calling:

you call

Mygame.php has to include save_GA_cookies.php script and then redirect to real e-commerce address. save_GA_cookies.php script looks like this:

// this script should be called before you redirect to e-commerce shopping cart
// it saves Google Analytics cookies to database along with User IP

// include your database engine

$dbga = new clsDBAnawiki();$IP = $_ENV[‘REMOTE_ADDR’];

$utma = mysql_escape_string($_COOKIE[‘__utma’]);
$utmb = mysql_escape_string($_COOKIE[‘__utmb’]);
$utmc = mysql_escape_string($_COOKIE[‘__utmc’]);
$utmx = mysql_escape_string($_COOKIE[‘__utmx’]);
$utmz = mysql_escape_string($_COOKIE[‘__utmz’]);
$utmv = mysql_escape_string($_COOKIE[‘__utmv’]);
$utmk = mysql_escape_string($_COOKIE[‘__utmk’]);

$dbga->query(“INSERT INTO an_ga_cookies(ga_ip, ga_utma, ga_utmb, ga_utmc, ga_utmx, ga_utmz, ga_utmv, ga_utmk) VALUES(‘$IP’, ‘$utma’, ‘$utmb’, ‘$utmc’, ‘$utmx’, ‘$utmz’, ‘$utmv’, ‘$utmk’)”);


Then you need to insert into your e-commerce html template following line:

<script TYPE=”text/javascript” src=”” mce_src=””>

set_GA_cookies.php reads GA cookies from database and sets them on e-commerce domain via JavaScript. The problem is that you need a SSL domain address otherwise your shopping cart will show unsecure site message. The good news is that this domain doesn’t have to be on your server or your own domain, though you will need to tweak my code to make it work on 3rd party server.

Here is the code for set_GA_cookies.php:

// script generates JavaScript code that sets Google Analytic cookies on

// include your own database library

$db = new DB();

$db->query(“SELECT * FROM an_ga_cookies WHERE ga_ip=’$IP’ LIMIT 0, 1″);

$jscode = ”;
while ($db->next_record()) {
$utma = $db->f(‘ga_utma’);
$utmb = $db->f(‘ga_utmb’);
$utmc = $db->f(‘ga_utmc’);
$utmx = $db->f(‘ga_utmx’);
$utmz = $db->f(‘ga_utmz’);
$utmv = $db->f(‘ga_utmv’);
$utmk = $db->f(‘ga_utmk’);
$id = $db->f(‘ga_id’);

$jscode = “setCookie(‘__utma’, ‘”.htmlspecialchars($utma).”‘, 30, ‘/’, ‘’, false) \n”;
$jscode .= “setCookie(‘__utmb’, ‘”.htmlspecialchars($utmb).”‘, 30, ‘/’, ‘’, false) \n”;
$jscode .= “setCookie(‘__utmc’, ‘”.htmlspecialchars($utmc).”‘, 30, ‘/’, ‘’, false) \n”;
$jscode .= “setCookie(‘__utmx’, ‘”.htmlspecialchars($utmx).”‘, 30, ‘/’, ‘’, false) \n”;
$jscode .= “setCookie(‘__utmz’, ‘”.htmlspecialchars($utmz).”‘, 30, ‘/’, ‘’, false) \n”;
$jscode .= “setCookie(‘__utmv’, ‘”.htmlspecialchars($utmv).”‘, 30, ‘/’, ‘’, false) \n”;
$jscode .= “setCookie(‘__utmk’, ‘”.htmlspecialchars($utmk).”‘, 30, ‘/’, ‘’, false) \n”;


if (!empty($id)) $db->query(“DELETE FROM an_ga_cookies WHERE ga_id=$id”);


function setCookie(name, value, expires, path, domain, secure){
(expires?';expires=’+new Date(+new Date()+expires*864e5).toGMTString():”)+
<? echo $jscode; ?>

That’s it. I used PHP, but you can use any other web language to do that. Commands are self-explanatory, so I am sure you’ll be fine. Just in case you don’t want to copy the code from this page you can download zipped scripts.

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...