Some time ago, we started work on a small project called Cave Diver.

Blatantly inspired by a certain other popular game, Cave Diver was our test bed to figure out connectivity, social gaming and small game advertising.

After Nuclear Dawn and Dark Matter, both of which suffered greatly for their lack of a successful marketing plan, we decided to write a quick little toy that would allow us to play around with the various advertising options out there, and figure out which worked best, or at all.

We timidly peeked at the colossal amount of human traffic that Facebook produces, and it’s not unlike contemplating a dive in a five-hundred-metre waterfall that’s made of piranhas instead of water. We checked out the app advertising services out there, and tried good old by the numbers display advertising.

The game was released as a Facebook Canvas app, as well as on iOS and Android natively. We tested various performance and advertising indicators, and tried to learn as much as we could from a total test budget of 5000 euros over the game’s development costs.

Today, we present a rundown of the lessons we learned, so that you may laugh at our mistakes, and then make them yourselves, because we know no one ever learns anything.

  • Facebook advertising is more complicated than you’d think.

    Displaying ads in your application in Facebook is not straightforward.To start with, banners and static ads on your app page are useless. Gaming sessions will last anything between 2 and 45 minutes (or longer, but we’re sure all the 90+ minute outliers were relatives), and you’re not allowed to refresh the ads manually from within your Facebook Canvas code. This is not a Facebook limitation so much as it’s standard practice for advertising networks.

    It means that you’ll get a single impression for each VISIT to your app, instead of for every session/play interval, and that’s just going to murder your revenue.Secondly, you’ll have to rely on ‘creative’ solutions such as popups, which are by now universally reviled on every planet in the cosmos, cute ‘app walls’ inside your game, and other tricks which, when we tried them, made absolutely no impact on your advertising.

    If you want display advertising in your app, you’ll have to manually code ad spaces inside your app, run your advertising network’s Javascript calls, hope Facebook lets them through, and pray that no one updates their APIs before lunch.We learned that Facebook monetization is anything but straightforward. If you want to make money from you Facebook app, in-app purchases are the way to go. Adverts are too much trouble, and when they do work, their earnings are as low as 2 cents per 1000 users.

  • Ignore Facebook’s documentation

    This is a bonus hint. Save yourself time, and skip Facebook’s outdated, confused, contradictory documentation. Download their Github projects, grab the one that applies to your development platform, and see how they do things in there. The online documentation refers to three different versions of the API at once, and most of its information is just plain wrong.

    If you don’t believe us, try to ask for “public_profile” user information in your app. Go ahead, we’ll get popcorn.

    If you don’t succeed, don’t ask Facebook support – their response times are atrocious, their replies are obtuse, and in the end most requests are ignored because the platform is supposed to behave that was “by design”.

  • Don’t advertise on Facebook

    We don’t have a problem with Facebook, we swear. The next point will totally be positive about them. Since we’re on this point, however, don’t advertise on Facebook.For a whopping total of 2800 euros over the course of a month, Facebook delivered a handful (just under three dozen) followers, all of which are suspiciously activity-less gentlemen and ladies who each like 4000+ products on Facebook. If you are one of these people, please email us privately, because we don’t believe you exist.

    Said budget was not a massive investment, and it wasn’t tied to great expectations, but faced with a few hundred game impressions only, and a very limited amount of likes, it went to reinforce our previously held opinion that the Facebook advertising platform as it stands is far too easy to exploit, and that it’s small developers who end up paying for the costs of feeding all those click farms in Whateverstan.

  • Use Parse

    (Sadly, Facebook dropped Parse support since this article was written, so never mind Parse).

    .Parse is a cloud-based data storage and retrieval system operated by Facebook. It allows you to dump any kind of information on its code, and it will be automatically locally cached, synchronized and saved to the cloud when possible.

    By using Parse, you’ll save yourself the trouble of installing, setting up, maintaining and protecting your own player data database.

    It’s operated by Facebook, it plugs into most major development platforms, and works on Web, Windows, OSX, iOS and Android projects. It’s a massive life saver, it can run net code, PHP, its own code and apps, and it’s free at the lowest tiers.Parse may get a little expensive a little fast if your app becomes popular because it charges you for the number of operations per second your users perform, but with a little optimization at your end, it was a rare ray of light in the development hell that Facebook services are.

  • App advertising services are scams

    When we released Nuclear Dawn, we worked with The Redner Group to market the game worldwide. Jim Redner and team were heroes, soldiered on tirelessly, and got us on all kinds of outlets, and even into a couple of print publications.

    We figured that services such as Appshout would serve a similar purpose, but for a budget price.

    For the non-budget price of 650.- euros, Appshout produced a stuttering, two minute video that didn’t show any significant features, had to be made to notice that the stuttering was unacceptable (their response was the long-winded equivalent of “LOL we didn’t see that”), then proceeded to plaster the game’s press releases to sites that the Internet itself didn’t know existed, and had to be nagged into giving us the promised campaign report, which came to “We posted online”.Save that money for clever advertising, or for a more personal approach – get an actual PR manager person.

  • Don’t make platform assumptions

    We went into Cave Diver looking firmly towards iOS, and ended up making most of our revenue from Android devices.

    The reasons are fickle and mysterious, since both platforms received an equal share of our initial AdWords campaign (which ran to just about 430 euros), but for some reason the game really resonated with Android players, and showed almost no activity on iOS.

    Perhaps the asinine way you have to wait up to three weeks to patch your game on iOS had something to do with it, because on Android we were able to patch most issues within 48 hours including Google Play propagation time, and on iOS successive versions were delayed by five to 25 (!) days.

    Perhaps the game just had an Android vibe. Fact is that you hear so much about how iOS is the big platform that we were surprised when Android essentially became our only platform.

  • Be clever with your advertising

    Google AdWords was a star – in spite of generating a little more crud than we’d have liked, it delivered consistent results with its campaigns, and showed near to no spam activity.

    Facebook advertising was a mess of spam and useless clicks that generated zero engagement.Apple iAd just basically didn’t want to take our money. Couldn’t get it to work satisfactorily.

Based on our experience with Cave Diver, the positives we took are that social gaming is not a necessity, and may well be unsuited to the style of your game. Advertising on huge, closed platforms without competition is a bad idea, and trusting a faceless company to advertise your game is an equally serious mistake. Watch your initial investments and adapt your plans based on first response – it’s usually the correct response. Involve players from the first day of development, and work with a PR person you can bounce ideas off, and who has a physical address so you can stalk them if they mess up.