Game Design, Tips and Advice

(1200x600) eCPM Decay

After weeks, months of hard work, you have finally completed your mobile game. Everything is set, the red ribbon is in place and you’re ready to release it into the wavy waters of the digital sea, hoping it succeeds, bringing you fame and fortune along the way.

You smash the ceremonial bottle of champagne against the computer you used to build the app, and you press “Publish”. Then, after a week of solid stats, this happens:

ecp decayWhat happened?

Your eCPM, your effective cost per mille, or how much money you really are making from the ads served in your app, is decaying hard. What can you do about it? You can either hold your head in your hands as you gasp in despair, or you can get to work, slowing down the eCPM decay and pulling the maximum out of your products. But before I explain the various strategies you can employ, let’s first clear out a few basics, like what CPM, eCPM and other acronyms are, in the first place.

What is eCPM?

eCPM is short for Effective Cost Per Mille, and it relates to actual advertising revenue generated for those 1,000 impressions. Even though it’s a relatively new term, it has quickly established itself as industry’s universal standard of measurement and is being used to compare how well campaigns are performing side-by-side. Here’s what the eCPM equation looks like:


Image courtesy of Appflood:

First thing you need to do when calculating eCPM is to divide your total advertising earnings with the total number of impressions you have been given by the advertiser. The number you get is the amount of money you earn for a single impression. However, as impressions are paid out for every thousand, you have to multiply that number by 1,000.

The final number is how much you are earning on average from the campaign.

If you’re still unclear what the difference between CPM and eCPM is, here it is in a single sentence: CPM is a pricing and reach metric, while eCPM is a performance metric.

eCPM is only part of the equation

However, don’t be tempted to measure the performance of your advertising campaign solely on the eCPM. A website with millions of visitors which ends up with lower eCPM can still earn you more money than a website with less visitors, but with a higher eCPM metric. Other parameters, such as how many people visit a particular site are equally important.

What is CPM?

In the world of mobile advertising, abbreviations such as CPM, CTR and CPC are very common. They usually revolve around online ads, how much people view them and click on them, and how much money advertisers and ad networks earn from people’s actions. CPM is short for Cost Per Mille, with Mille being Latin for thousand. So in the shortest possible definition, CPM is the price of a thousand advertisement impressions. Visitors don’t need to click on the ad for the publisher to be paid. They don’t even have to *see* the ad – if they load it, it counts as an impression.

So, for example, if a website charges $5 CPM, that means an advertiser must pay $5 for every 1,000 impressions its ad receives. The CPM is used as a reach and pricing metric, and should not be confused with eCPM.

What is eCPM decay?

As you monetize your mobile app or game and your ad network of choice starts serving ads to your users/players, sooner or later you will come to realize that your eCPM is slowly (or sometimes, drastically) declining. The trend is also called eCPM decay, and is something many developers and advertisers are struggling to control.

Why does eCPM decay occur?

Most will agree – eCPM decay is inevitable. There are many reasons to it – sometimes the advertiser will promote low-quality creatives and provide you with a few clicks and very few installs. Sometimes, your app or game will hand out too many ad impressions, thus driving eCPM down. User behavior is also something that should be looked at, as users are more inclined during the first few views.

eCPM decay - single network vs. ad mediation

Season to be (un)jolly

Be wary of the holiday season. As I’m writing this article, we’ve basically entered the Christmas holiday season, which is that time of year when consumers are most engaged with advertisers and the content they serve. During this time, the competition becomes fierce, and mobile ads and advertisers scramble to fill target inventory during this time. In the weeks following the holidays, a significant eCPM drop is nothing unusual to experience.

If you have decided to incorporate multiple ad networks into your game to serve ads, you might also be experiencing what’s called campaign overlap, which is also often a reason for eCPM decline.

What is campaign overlap?

chartboost-interstitialIf you are using multiple ad networks, they might be serving you the same ad, a problem called campaign overlap. Many of the ad networks are working with the same advertisers and, as you might have imagined, the best performing ads could be, and often are, the same for all of them.

A network might stop itself from serving the same ad multiple times, but it is highly unlikely for networks to coordinate between themselves, meaning you will still end up with the same ad served too many times.

Adam Ben-David, VP of Supply Side Platform from Supersonic, a mobile ads company, is aware of the issue and believes the best way to tackle it is through ad mediation: “Campaign overlap and the effort to avoid it is the fundamental reason why developers use Supersonic’s mediation platform. Our ‘weighted’ optimization ensures that only the most relevant content with the highest eCPMs are served from a developer’s various ad sources, ensuring maximum ad revenue and user engagement,” he said.

He did, however, stress that sometimes repeating an ad doesn’t lead to lower engagement. Sometimes it can be quite the opposite: “Serving the same ad creative repetitively does not necessarily lead to lower engagement, perhaps the opposite, as it often takes several attempts to warm the user up before he or she engages at all.”

Slowing down eCPM decay

There is no escape from eCPM decay, that’s for certain. You can either throw your app into the digital wild and watch as it struggles for breath, or you can develop a plan and a strategy to make sure you get the maximum out of your product. Easing the effects of eCPM decay is absolutely doable and definitely something you should look into. There are a couple of things you can do in that respect: strategize on placement and timing; limit ad frequency; set up proper eCPM floors and be uncompromising in terms of minimising cost.

Keep in mind that these tips are not meant to be used all at once – the things you do to optimize your eCPM depend mostly on the product you have and its audience. Game genre and user engagement will have an impact on the eCPM decay. Sometimes, for example, limiting ad frequency won’t have as big of an impact as setting up proper eCPM floors. For that reason, you should think your strategy through for each individual product and set up a plan accordingly.


Think about your product: how much space does it have for an ad? Does the ad appear too often, in too many places? Is it hindering user experience? If that is the case, you can end up destroying your own produbreak prisonct, so be careful about where you place your ads. Games that offer short-length levels (a few minutes) often serve ads only after the player has finished a session, while others opt for rewarded video ads, which have proven to be extremely effective in terms of user engagement.

Limiting ad frequency

Timing is also of the utmost importance: if the ads appear at the most inconvenient moments (during the game, at the pause menu, etc.) not only will the user engagement drop, but the risk of players abandoning the app altogether rises. Pay close attention to how often the ads appear, and if you’re getting a campaign overlap.

Setting up CPM floors

When monetizing your app or mobile game, at one point you will also be asked to set up a minimum CPM, also known as the CPM floor. The CPM floor is the minimum acceptable CPM at an ad unit level. It represents the lowest possible price at which a bidder can win an impression on your app or game.

This is also a very important metric and should be treated as such. Setting up a low CPM floor, a high one, or simply trying to match it with the eCPM can all have different consequences on your monetization. A low-cost strategy might push you to later impressions, while a high one might have you ending up with significant decay beyond the second and third impression. Sometimes, matching the CPM floor with eCPM might have unwanted consequences, as you might appear too expensive for CPM advertisers. By matching these two metrics, you could cut out a lot of cleared impressions in the lower end, hurting your impressions count and revenue. So which of the three roads should you take? As with everything else, it depends on your product and your audience, but my general tip would be to be uncompromising in terms of minimising cost. In other words – avoid low-cost strategies and go for a more valuable first impression.

Here’s why: opting for a low-cost strategy, you will most likely be pushed towards later impressions. Those are quite often only viewed by reward farmers – players watching ads only to gain something in return (in-game currency or something similar).

There’s no stopping eCPM decay…

…but that doesn’t mean you should let it freefall. You can use the tips written above to create a controlled, sustained fall which will maximize the monetization of your app. You can do that through proper strategy and careful planning on how the ads will be served in your product.

Proper placement and timing of the ads are crucial, as well as well-balanced CPM floors to reach those lower-paying gigs and still perform nicely. Try avoiding low-budget strategies and unique rewards obtainable only through ads, as you will most likely end up with reward farmers that are a true eCPM killer.

Show us you care Tweet about this on TwitterShare on FacebookShare on LinkedInPin on PinterestShare on Google+
Game Design, Game Reviews

haber_icon‘I love it when a plan comes together’. Those must have been the words of boys and girls in the Luna Wolf Studios after they had completed Haberdashery.

Available on Google PlayAvailable on iTunesAnd what was their plan, you might ask? To make a hilarious and addicting game I guess, as that’s what they ended up with, anyway. And what better way to start building a hilarious game than to make a sheep your main protagonist?

Haberdashery is a free running 360-degree game in which a sheep is being chased by a dragon. The dragon, however, can never catch you, unless you hit an obstacle along the way.

What a pleasant surprise


The game does not lack humour

The first pleasant surprise was the environment – the sheep is running across something that resembles the planet from The Little Prince – a tiny speck of land filled with trees, stones, and other similar obstacles. I loved the way new obstacles appeared on the horizon, very clever.

The second pleasant surprise were the hats you collect along the way, and the way they change your game completely. Some hats will give you certain powers (like ramming through trees), while others will completely change the planet you’re running across. With a total of 30 hats in the game, that makes for a rich and engaging gaming experience.

The LOL is strong with this one

denis sazhin

Something along these lines, anyway Credit: denis sazhin

The third pleasant surprise was the amount of quality humour in the game. Each hat is hilariously crafted, brings fun changes to the game and is, without exception, followed up by a great comment. So for example, picking up the Emo hat will: 1) place some hair at the top of your screen, partially blocking your view; 2) add a black layer across the world; 3) add a “nowBaahdy understands me” message, which I found quite amusing and 4) the music changed to something that reminded me of Alice in Chains. If that was the developers’ intention then these guys win at life.

The fourth pleasant surprise came in a fact that not all of these hats were available right off the bat. You start with a total of four, and need to collect coins to invest and unlock new content. That’s a great way to keep players motivated and engaged in the game. I couldn’t wait to get my hands on the Hellraiser hat! I also liked the fact that you could buy coins for real cash through the store, in case you aren’t the patient type. The game is free to play, after all.

Gamble away

The fifth pleasant surprise was the addition of the slot machine mini-game. The slot-machine lets you win extra hats, however the feature was locked for me, with no explanation as to how I can unlock it. It took me a few minutes to find that you actually need 100 gold to play the mini-game.

The sixth pleasant surprise was the music. Audio is extremely important as it sets the tone (no pun intended) for the entire game, and missing the point with music can ruin the complete game experience. Haberdashery is spot on with the high-tempo, cheerful banjo song. Of course, the music will also change with certain hats, just adding to the list of reasons why you should try to collect all of them.


I really need the Hellraiser hat

What I disliked about the game (yes, that happened, too) was the placement of the message that pops up when you pick up a hat. It basically covers the entire upper side of your screen, exactly the place where you look for incoming obstacles. That means that sometimes you’ll lose the game as you failed to see an obstacle because there was this huge “TO WALHALLAAAAA” message across the screen. Fitting!

After spending a couple of hours with the game, I can understand why it has a 4.8 overall on Google Play Store and why the reviews there usually end with an exclamation mark. I see a bright future ahead of the hat-wearing, banjo-playing humorous sheep.

Show us you care Tweet about this on TwitterShare on FacebookShare on LinkedInPin on PinterestShare on Google+
Research, Resource

This article contains phrases taken from the machine learning and analysis world. Data scientists and algorithm engineers will feel more comfortable with reading it although it’s targeted at anyone who is interested in some deep data science learnings.

Detecting Fraud

Hacking applications such as Freedom, iAP Cracker, iAPFree, etc. allow users to make in-app purchases for free. With these kinds of hacks the player receives the coins, gems, levels or lives they purchased without paying any money. If the game developer did not implement any validation process on the in-app purchases, such as SOOMLA’s fraud protection, the purchases are recorded as real purchases in his system. As a result, the reported revenue may differ greatly from the real revenue (especially in popular games with lots of fraud).

We would like to make reports as accurate as possible, and to be able to communicate to the game developers the real state of their game. We use machine learning and statistical modeling techniques for our solution.

With help from a few big games in the GROW data network we were able to build a model that classifies each purchase as real or fraud, with a very high level of accuracy.

In-app purchase model features

The model uses a variety of purchase, user and item features.  The following table details a partial list of the features we computed:

Purchase User Item
Date of purchase Total number of purchases Total number of purchases
Time of purchase Total revenue Total revenue
Country from which the purchase was made Average revenue per day Average number of purchases per day
Currency in which the purchase was made Number of games the user played Average revenue per day
Whether the phone locale matches the country Number of games in which the user purchased Maximum number of purchases per day
Whether the currency of the purchase matches the currency in the country Whether the user was ever blocked by receipt verification Maximum revenue per day

Decision trees to the rescue

Decision trees, as their name suggests, are trees that help decision making. Each internal node of the tree tests the value of one feature, and leaf nodes are target classes. Given a new observation, the tree can be used to decide what class should be assigned to it.

In our case the tree can have two kinds of leaf nodes (classes): fraud or no-fraud, and the features are the ones detailed above. Examples for internal nodes can be “Total number of purchases > 100” or “currency matches country = true”.  To avoid overfitting the training data, tree-based techniques combine multiple trees to get a final output that is more accurate than each individual tree output.

Tree based classification algorithms have many advantages, to name a few:

  • Nonlinear relationships between parameters do not affect tree performance.
  • Decision trees implicitly perform variable screening or feature selection.
  • Decision trees require relatively little data preparation and are easy to interpret and understand.

We experimented with two tree-based classifiers. A random forest classifier is an ensemble of decision trees trained on subsets of the data, that outputs the class that is the mode of the classes output of the individual trees. Boosted trees combine multiple decision trees using the gradient boosting technique, fitting a weighted additive expansion of simple trees.

Another model parameter is the class weights, that have two forms, uniform in which all class get a weight of 1, and by-class that uses the relative size of the class out of the full population as the class weight.

Fraud classification performance

We measure the performance of our model by four measures:

  • Accuracy: ratio of correct classifications out of all test data.
  • False Positive rate (FPR): ratio of valid purchases wrongly classified as fraud out of all valid purchases.
  • False Negative rate (FNR): ratio of fraud purchases wrongly classified as non-fraud out of all fraud purchases.
  • F1 score: harmonic mean of precision and recall, a measure that comes from the information retrieval world, and conveys the balance between the other two measures.

Classifying valid purchases and users as fraud is a much worse mistake than missing a fraud purchase, thus we aim at reducing FPR to minimum, even at a cost of having a slightly higher FNR.

Our ground truth data includes purchases from 4 games. For the largest of them we have labels for 145K purchases. For both algorithms parameters were tuned using cross-validation.

Per game model

For the first experiment we built a different model for each game. The following table details the performance for different games and model parameters.

Game Classifier Class weights FPR FNR F1 score Accuracy
1 Random forest uniform 0.22 0.03 0.95 0.93
1 Random forest by class 0.10 0.08 0.95 0.92
1 Boosted trees uniform 0.09 0.03 0.97 0.96
1 Boosted trees by class 0.05 0.05 0.96 0.95
2 Random forest uniform 0.02 0.16 0.89 0.85
2 Random forest by class 0.01 0.16 0.91 0.82
2 Boosted trees uniform 0.01 0.11 0.94 0.84
2 Boosted trees by class 0.05 0.05 0.90 0.85

These results are very impressive! Per game model works very well with as much as 97% F1 score.

The second game has less ground truth data (it is a game with 100 times less purchases per month on average, and we got one month of purchases data from them), which explains the lower performance.

Boosted trees outperform the random forest algorithm, which is not surprising, since it is an optimization that normally gives you better accuracy with less trees.

Using weights tuned by the class size usually results in a lower FPR and higher FNR, with a slightly lower F1 score. As stated before, we care more about our false positive rate, so for following experiments we use boosted trees algorithm with non-uniform weights.

Cross-games classification

We have seen that we can get very good results when we build a model for a specific game. But we have ground truth data only for four games. What about the rest of the games?

To test that, the second experiment was conducted with a train set that contains data from one game and test set from a different game.

The above table shows the accuracy for the cross-game experiments. All scores are 79% accurate or higher! This is great news for all of the other games.  As expected, the highest scores are achieved when the train and the test set come from the same game data (70%-30% random split). The lowest scores are when testing on the 4th game, which is the smallest of them (200 purchases).

Another interesting result is the FPR scores in this experiment.


It also stands out that the model trained on game 4 is generating poor FPR scores. This is due to the small number of purchases, and the relatively low amount of fraud (54% compared to 77%-85% in other games). As game 1 has the largest ground truth data, models trained on the other (and smaller) games have a very high false positive rate, up to 30% of the valid purchases are classified as fraud. When training on other games we get much better results with 1-2% wrongly classified valid purchases.

This experiment has proved that data transfer between games works well in most cases, but can be problematic if your game has a very unique user behavior.  


Finally, we trained a model on all of our ground truth data and used it to classify all purchases in our data base. According to the results of of the classifier, 55.7% of purchases are fraud, and these purchases constitute 72.9% of the total revenue.  

Fraud percentage by game size - SOOMLA

These numbers vary between different games. We can see a general trend of highest fraud percentage with bigger games (games with more users), even though we also see relatively small games with up to 89% fraud. The differences can be explained by different economy models, or popularity of the game in different countries.

According to our model results, fraud is most widespread in Slavic countries. Russia, Ukraine and Belarus are on the top of the list, with over 90% of purchases being made fraudulently.

Fraud rate per country - SOOMLA

The model predicts that only 2% of the users have some valid purchases and some fraud. The other 98% of users are either fraudsters (always commit fraud) or not (all purchases are valid). Out of the 98%, over half are fraudsters.

Implications for game developers

Knowing which users are fraudsters enables game developers to adapt game play and take restrictive action to ensure minimum lost revenue.  Some options are:

  • Blocking in-app purchases altogether for a specific user.
  • Increasing game difficulty as a means of stalling the user’s non-legitimate progression made with hacked in-game coins.
  • Increasing ad frequency to maximize revenue from abusive users who will never pay.
  • Bricking the game e.g. disabling all gameplay with a prominent warning message to the user requesting an immediate in-app purchase deposit to unlock the game.

How can we improve?

The more ground truth we have, the better our classification results will be. Game developers and studios can get better reports and help us improve by giving your feedback or sharing your sales reports with us.

Questions? Contact

Show us you care Tweet about this on TwitterShare on FacebookShare on LinkedInPin on PinterestShare on Google+
Game Design, Game Reviews

number_escape_iconGame developers everywhere, take notice – this is how you make a mobile puzzle game.

Available on iTunesAvailable on Google PlayNumber Escape was built by SangMoon Joo for both Android and iOS and it basically ticks all the right boxes needed to make a great game.

Here are the elements I believe are key to creating a solid, well-rounded game, which are present in Number Escape: original mechanics, simplicity in both graphics and gameplay, new elements to keep the player interested longer, and game size. This one has it all, but first let’s see what the game is all about.

Mind Trainer

number escape ss 1

Original mechanics are key to success

Number Escape presents the player with either a 4×3, 5×4, 6×5 or 7×6 board, with each tile holding a number. You win the game by moving a rotating red square across all the boards and to the goal. However, moving about is not that simple – the number on each tile represents the number of times the rotating red square can pass over it. That means you need to think a few moves in advance and try the game out a few times before being able to complete the level. Now that we’re acquainted with the game’s basics, let’s look at the individual elements which make the game great:

Original mechanics

Nowadays, it’s hard to come across a completely unique gameplay mechanic. Mobile games are usually made by taking an already known mechanic (color matching, tile matching, pixel hunting, etc) and adding an unusual twist to it. Sometimes, when the developers are lazy, you just get a clone of something you’ve already played. Number Escape offers a completely new and unique puzzle experience, which is among the most important elements a game can have.

New elements introduction to keep the player interested

I’ve spoken about this on multiple occasions before – throwing everything you have at the player from stage one can do more harm than good. Not only will you intimidate the player by forcing him to adapt to numerous elements right off the bat, but you’re also leaving nothing for later. That means the player will get bored of the game much faster than you’d want, so keep your aces in your pocket and pull them out every once in a while. This game does it quite well, by offering higher numbers as the player progresses. At the start, you’ll have small boards with tiles offering one, two moves max. Later on, you’ll start seeing tiles with no moves allowed, as well as those where you need to move three or more times. It adds depth and keeps the player occupied longer.

Simplicity in both graphics and gameplay

number escape ss 2

Simplicity works wonders in puzzle games

The screenshot on the right represents the game’s home screen – the first thing you see when you run the app. Pick a tile and head straight into the game. This is a very important aspect as mobile games are usually built to be consumed on the go – while commuting, waiting in line, etc. Most of the time players only have one hand at their disposal. Obviously, there are many examples of comprehensive, deep mobile games that require a player’s full attention and both hands, but still – fast games with short levels and simple, original mechanics are a much safer and more quality way towards success.

Game size

This is especially important when creating a puzzle game. The replay value of such games is usually quite low, so if you want to keep your players in the game for as long as possible, you need to create enough content for them to stick around. Number Escape offers a total of 300 levels, which means you have a ton of gameplay hours ahead of you.

Room for improvement

Even though Number Escape is a great example of how to make a quality puzzle game, it still has room for improvement. There are a couple of things obviously missing that could, if implemented, add an extra challenge to the game, increase player retention and also improve the game’s monetisation.

Here are a couple of things that come to mind:

Levels can be locked

It strikes me as odd that all levels, no matter the difficulty, can be played from day one. Puzzle games usually lock higher levels and new elements, allowing players access only when they have achieved certain success in the game. This creates a sense of achievement and progress, which works wonders for player retention. Gamers that can easily visualise their progress will come back to play more.

Additional challenges like time-limiting levels

number escape ss 3

Levels could be locked to get a better sense of progress

This opens up the game to a completely different dimension. Puzzle games and time-based challenges easily go hand in hand, and with a game like this one, it can work quite nicely. What’s even better, having additional challenges also means you could create an in-game shop, where those challenges can be bought, traded and improved.

In-game shop could offer undo moves, extra time for time-based challenges

Which brings me to my third idea, the in-game shop. Looking at the game the way it is now, there is basically no room for an in-game shop. However, start locking levels to create a better sense of progress, and add a couple of additional challenges, and you have plenty of room. The game could offer undo moves (which are currently lacking), or extra time for time-based challenges. All of this could be, for example, fueled with rewarded ads which, in the end, also means better monetisation for the game.

All in all, this game is an extremely good example of how to make an amazing puzzle game for mobile devices. It’s not perfect, but it is dangerously close.

Show us you care Tweet about this on TwitterShare on FacebookShare on LinkedInPin on PinterestShare on Google+
Announcement, Open Source

Open Source

One of the perks of being an open source company is having a community of developers who not only use your product, but also contribute new and exciting features, ideas and bug fixes to it. Your product is constantly being reviewed, integrated and tested in various use cases, which leads to loads of (hopefully) great and positive feedback, but also (inevitably) reports of bugs and other issues the developers come across.

One of the duties of these open source companies is to take that feedback from the developers and make the best use of it. This both improves the quality of the product and keeps the developers happy.

SOOMLA & Open Source

SOOMLA is one such open-source company, and as such we try to do the most for our developers by implementing desired functionality and adding requested features.

Keeping Your Unity3D libs Updated

One frequently requested feature was to simplify the update process of Unity3D SOOMLA modules. Since importing a .unitypackage into Unity3D doesn’t override existing files, developers who wanted to update SOOMLA were required to manually find all of SOOMLA’s libs and files (which were scattered everywhere), remove them, and only then import the new updated SOOMLA libs. SOOMLA solved this problem with 3 new long-awaited features:

  1. Move all of SOOMLA’s libs into a Soomla folder – each supported platform (Android, iOS and WP8) in the `Plugins` folder now has a `Soomla` folder in it, containing all of SOOMLA’s libraries.
  2. Create a `Remove SOOMLA` script allowing a developer to remove SOOMLA entirely.
  3. easy as pieCreate a `Remove` script for each module – allowing the removal (and update) of a single module.

These features were made to ensure that updating SOOMLA is as easy as pie.

Integration Without Prefabs

One more feature to make SOOMLA’s Unity3D developers’ life a little better was removing the prefabs. Every integration required that the SOOMLA prefabs were dragged & dropped into the main scene, thus adding another integration step. As SOOMLA strives to make its integration as simple as possible, removing them was an important step towards an easier integration. The new release incorporates a new mechanism of instantiating the necessary game objects for event handling at runtime, allowing the removal of these prefabs, resulting in an simpler integration process.

spartonix_header_logoThis new update to streamlined integration was made possible with the help of Omer Leshem, founder of gaming studio Spartonix and a member of our developer community. This proves once again that developers can do more together!

Speak Up!

As always, SOOMLA is open to new ideas, so if you have anything you’d like to share, feel free to do so on our forum.

Show us you care Tweet about this on TwitterShare on FacebookShare on LinkedInPin on PinterestShare on Google+
Announcement, Unity

Unity Prefabs

Unity PrefabsRemember those SOOMLA Prefabs you were required to drag & drop into your main scene in order to receive and handle events? Well, they’re gone!

You now have a new way of initializing event listeners without those prefabs – by dynamically creating the game objects in runtime.

The new event system is available from the following versions:

  • Core v1.2.0+
  • Store v1.9.0+
  • Profile v2.2.0+
  • LevelUp v1.1.0+

Ever had problems updating SOOMLA?

That’s why we released a new version and we now have a script to easily remove SOOMLA from Unity, in order to add an updated version straight away. This change makes the whole process of updating SOOMLA much simpler and saves you time – you even have an option to remove and update only a specific module.

Are all your SOOMLA packages up to date?

There’s a new script that makes sure that all your packages are up to date, if they’re not you’re notified and all you have to do is click the link displayed, in the Unity Editor, and you’ll be downloading the latest version in no time!

A Few More Improvements

SYNC – Our Sync process has been fixed and improved and now the user’s balance is always synced between different devices.

HIGHWAY –  energy consumption has been improved to prolong battery life.

We’re constantly working on improving our products, drop me a line at if you have any comments or special requests.

Show us you care Tweet about this on TwitterShare on FacebookShare on LinkedInPin on PinterestShare on Google+
Marketing, Tips and Advice

You Need Email Addresses, You Say?

I’ve recently been working on email outreach. I’ve got my personalized pitch ready to go, but I’m missing one thing. The perfect email address. I’m not just looking for a generic email; I’m looking for a valuable employee email who is relevant to my

Most of my searches I’m pretty lucky and after digging around I get the email I want. I will say there are some people who are really good at hiding themselves and I give them kudos. In this day in age, it’s hard to truly hide yourself with such sophisticated tools to track people.

Not to Spam, but to Enlighten

Before we dive in let’s just be clear, use these tools for good, not evil. When I’m reaching out to leads I truly believe our service can and will benefit them. I don’t use these tools to spam, but to enlighten potential customers. Every email sent should be personalized and tailored to the recipient. If it’s not, then you should reconsider your email outreach process. Email outreach is generating valuable leads that will be genuinely interested in your service, not just shouting to the masses that you have a new product.    

Tools of the Trade

I use a variety of tools to find an email. Most are free or give me X number of searches per month. While by the end of the month I’m usually out, I still enjoy these tools and you can too as long as you don’t require significant scale which requires payment. These are the tools I use to assist me on my endeavors:

The Process

I first begin researching the company and if I stumble upon an interesting email I make note of it, but keep researching until I know that is the exact person I want to email.

While at the end of the day I’m trying to find the perfect email address, my search really begins with the company. I begin looking around, trying to figure out the structure of the company, who does what which leads me to my potential contact person. To show how certain steps work my example subject throughout the post will be our VP Marketing, Gur Dotan.

Know Your Company

Company Website

This may seem obvious, but begin your research at the company website. You will, of course, learn a lot about the company and you might even find the email you’re looking for.

Find the “Team/About Us” page. Read about the various team members and decide who is the best person to reach. If they list the employees and their job descriptions pay attention! This will give you a great starting point of who you need to target.

Also, if you can find the company’s social media pages, open them because you’re going to want to go over them.

LinkedIn – Details, Details, Details

Moving right along to my favorite tool, LinkedIn. Wow! Has LinkedIn helped me more often than not. It doesn’t always give me the email, but it helps me learn about the company and/or the person and that’s where looking at the details is important. When I begin my search in LinkedIn I have two objectives:

  1. Nailing the right contact person with the right role in a company.
  2. Exploring if LinkedIn connections permit a more personal reach out than a cold email. Maybe a coworker has a connection and can make an introduction.

I have found, that for the most part, professionals keep their LinkedIn profile up to date. There have been times I have someone in mind, but when I go to their LinkedIn account I realize they don’t work at the company anymore. It’s important to look at these details and read their job descriptions. You might have in mind that you want a Product Manager, but read their description and realize you actually need someone else in the company. Pay attention to their job descriptions and make sure they’re the right target.

I usually begin my LinkedIn search with the company page. I like to:

    • Read/skim the company page top to bottom. I re-familiarize myself with the overarching theme and mission of the company.
    • Review their location and see if they give a range of how many employees work at the company.
    • Members – check to see if you have any second or third connections, if so this is a great way to wiggle yourself an intro or connect on another level.


Once I’ve reviewed the company page, I find my target and hone in. Each LinkedIn profile is set up differently, so it’s important to go over the various sections to find the information you’re looking for. When looking at a personal LinkedIn account:

    • Review current and past positions.
    • Go over job experience and descriptions (the descriptions can be eye-opening and tell you if you’re even researching the right person).


In Gur’s account, he has the relevant information in his summary, rather than his job description.

Facebook – Did you remember to add your email address?

Most companies list an email on their Facebook page under the “About” section. While this might be a generic email address, it is a good starting point and might even show you how their emails are structured.

soomla FB

You also want to review their latest posts and make sure they’re recent. If they haven’t posted since 2013, then sending them a direct message on Facebook might not be the best avenue to reach out.  

Make sure you pay attention to what they’re posting about. Note if they’re posting about any major events, such as conferences they’re attending or an event they’re hosting. If so, it’s unlikely they’re answering emails or, if they are, it could be at a slower rate. For example, if you look up, our VP Marketing, you’ll find that he was on vacation a earlier in the week and know not to start emailing him.


Let’s Find those Email Addresses

You have now done your research, you’ve got a target in mind, yet no email. This is when the real searching begins. There are a ton of tools that can help you find the email address of your target person.

1. Your Email List – Email Addresses at Your Finger Tips

The very first email list I go to when searching is our MailChimp list. If you don’t use MailChimp, that’s fine, just go to your email list and search. What would be better if the person I’m trying to reach has already signed up! It doesn’t happen often, but I have found team members from that company signed up for our newsletter, which is a great sign! It usually means they’re interested in your company and you can begin by reaching out to that individual. Which could then eventually lead to an introduction to your target.


2. WHOIS data  

WHOIS data is publicly available data and is usually collected when registering a domain. Any WHOIS tool such as will generate the information you’re looking for. It’s not my favorite tool, but it has proven useful. Most professional companies will have their domain secured and registered with privacy protection, but I have occasionally found a few relevant emails.

3. Google – Why Not Google Email Addresses?

Well, it doesn’t hurt to just Google it. It’s quick easy, might won’t work, but it doesn’t hurt. Have a name? Have a domain? Type them it into Google and see what you get. You might not get an email, but some other sources that can lead you to an email.

Google Gur

4. Twitter Advanced Search – (at) (dot) your way to email addresses

It might be surprising, or not, that a lot of people will just ask for emails via Twitter. Use Twitter Advanced Search to help you find an email address.

  1. “All of these words” – search (at) (dot)
  2. “From these accounts” – add Twitter handle of said company

It will then pull up tweets from that company with any (at) (dot) and potentially give you the email you’re looking for.


5. Mixrank – Email Address Generator, For a Price

Mixrank is an awesome tool. We pay for the service, but it helps generate targeted lists of potential leads. You can create lists from specific keywords or categories. We use it in a variety of ways from looking at specific games to looking at various companies in our industry.

To find Gur, I would go to our main page, contacts and search for Gur Dotan. He then pops up and I have his email.


6. MailTester – Test Email Addresses Before they Bounce

Maybe you have an idea what the email address is, but you don’t want to send an email just to have it bounce. MailTester lets you do exactly what it says, test the address. Put your the email address in their finder and see if it’s right.


7. Email Hunter – Email Addresses by Domain

Email Hunter, another life saving tool, collects and organizes email addresses all over the web. I use the Chrome Extension and it works wonders. I have a little button at the top of my browser and when I’m on the site, I click it and it compiles all the emails for the website.

Email Hunter

On LinkedIn, an Email Hunter button pops up on every account page and can generate an email (usually).

Gur_Email Hunter LI

8. Rapportive – Email Address Finder for Anyone

So you’ve gone through your tools, but still don’t have an email. Rapportive, a tool acquired by LinkedIn, shows LinkedIn profiles when you have the correct email. If I have a first name and a domain, I use Rapportive and play with different email options such as:


When it’s a match, you get a popup on the side of your email (like below) and you know you’ve found the right email.


9. Anymail Finder – Can it Find the Email Addresses You Need?

Still can’t find that email? There have been times I know the name of the person, have the domain, but don’t want to go through Gmail and/or Rapportive just guessing. Anymail Finder, does the guessing for me which is pretty handy.

Anymail finder

Keep Calm and Find Email Addresses

You are now equipped with a variety of tools to help you find the email address of a potential lead. While these tips will take you far, there is no 100% way to find an email address unless it’s given to you directly. Take your new found knowledge and use it wisely.

Show us you care Tweet about this on TwitterShare on FacebookShare on LinkedInPin on PinterestShare on Google+
Game Design, Game Reviews

solitaire_iconThe first thing I thought after running the Legacy of Solitaire 3D game was: “Ooohhh, shiny!” Here is my review of something I can only describe as a card game that wants to become a puzzle game when it grows up.

Available on Google PlaySo Legacy of Solitaire 3D is essentially the old and well-known card game. Older folks will remember it as one of the four card games available in the earliest versions of Windows, and yours truly, who played Solitaire with actual cards as a kid, feels extremely old right about now.

There’s not really much to say about gameplay, as it doesn’t stray away from the original game – it uses a single deck of cards, split into seven columns. The goal is to create four batches of cards, sorted from the lowest to the highest in a single colour.

solitaire ss 2It has the easy mode and the hard mode, with the hard mode having you draw three cards from the deck instead of the regular one. So, nothing out of the ordinary here.

But here’s where the game goes from your usual card game to something completely insane, and why I said right from the start that it actually wants to be a puzzle game.

What the…?

The Legacy of Solitaire 3D features really cool 3D graphics, a *campaign* mode, a full-blown map of something like a pirate island, and a progress bar with the player moving about the island.


Well, that escalated quickly.

If I ignore the fact that there’s absolutely no point whatsoever in having really cool looking 3D graphics, fancy colours, a pirate map and a campaign mode in a simple card game like Solitaire and just pay attention to what I see, I can only conclude that the game looks fancy as hell.

But I can’t shake the feeling that someone wasted a whole lot of talent and invested some serious hours into a project people will have a hard time appreciating – all the flashy stuff doesn’t hide the fact that this is *just* an old card game.

To make things worse, it has stages and levels – each one actually being the same game, albeit somewhat more difficult as you move along the way. Or maybe that’s just me being a miserable Solitaire failure.

Monetisation twist

What I did like about the game is how it handled monetisation. The game gives a limited amount of hints and undos, and if you want to earn more, you’ll have to watch a rewarded video ad. Besides, after every level (and every restart), a video ad is played, with an option to skip it after five seconds, which is decent.

solitaire ss 2There’s also a full-blown shop where players can buy undos and hints for real money, as well as a pair of new worlds.

All in all, it’s a good game. It looks really, really nice, which is something I would have never expected from a game such as Solitaire and I fear it might have been great talent thrown in the wind. If this was the developers’ test to see if they can make a full-blown puzzle game with stages, levels, boosts and more – congratulations, you’ve passed. Now replace the Solitaire with some puzzles and you’re good to go.

Show us you care Tweet about this on TwitterShare on FacebookShare on LinkedInPin on PinterestShare on Google+
Announcement, Game Design

With virtual economy being the most popular choice for mobile freemium games business model, you probably will want to have one of those in your game. Luckily SOOMLA provides you with both the Store bundle for an easy IAP integration and now with an easy way to customize your economy.

Update your virtual economy on the fly

Introducing the Virtual Economy Manager, a new GROW dashboard section you can access in order to review, manage and deploy your virtual economy. The Virtual economy screen allows you to update your virtual economy without releasing an update to the market (App Store or Google Play).

First of all you will need to have a hard coded economy configured in your game. checkout the knowledge base to see how it’s done. Then as soon as your device syncs with the Grow network, refresh the economy screen to see your economy. From there on any change you make to the economy from the dashboard will be synced to your game. Now you can create and delete your economy’s categories and currencies as well as create new virtual items and currency packs.

Managing virtual item inventory

add-virtual-goodVirtual items divide into 5 categories: Single Use, Single Use Pack, Lifetime, Equippable and Upgrade. You can create them all using the add virtual good button:

  • Single Use The most basic and common kind of virtual good, can be purchased by your users multiple times. No limits! Examples: bullets, hoverboards, “save me”, 30-second speed boost
  • Single Use PackSometimes, you’ll want to to sell packs of Single Use goods. To support these cases, we’ve created the Single Use Pack. Examples: ammo packs, 3 “save me”s.
  • LifetimeA Lifetime virtual good can only be bought once and then it is kept forever. Examples: “Remove Ads”, double speed, new car.
  • EquippableAn Equippable virtual good is a special type of Lifetime virtual good. In addition to the fact that it can be purchased once, it can also be equipped by your users. Equipping means that the user decides to currently use a specific Equippable virtual good.  Examples: characters, weapons, outfits.  This type of good is commonly used in first person shooters where the player switches back and forth between different weapons.
  • UpgradeAn Upgrade virtual good is a virtual good in an upgrade sequence belonging to another virtual good. The associated virtual good can be of any type (Single Use, Equippable, etc..).  Examples are anything that can be upgraded on a dimensional scale: speed, power, energy.  You’ll see this a lot in racing games where the game progression depends a lot with upgrading your car’s tires, engine, gear etc.

Items can be purchased with either a virtual currency defined in your economy or with one of the market places (App Store, Google play, etc.). Once you made all your changes, don’t forget to deploy your new economy by clicking on the deploy economy button that will be displayed as soon as you have pending changes.


If you want to discard your changes after you already deployed your new economy click on the Delete Economy button. The economy will be synced right back with the hard coded economy the next time someone will load your game on his mobile device.

Developers using GROW already have the virtual economy management available, as always for free, in their dashboard.  We encourage you to try it and send your feedback our way.

Show us you care Tweet about this on TwitterShare on FacebookShare on LinkedInPin on PinterestShare on Google+
Game Design, Game Reviews

power my robot iconI recently played a mobile game called Power my Robot, essentially a puzzle game that takes advantage of all the different hardware capabilities of today’s smartphones and combines them with the traditional gameplay design. Available on Google PlayAvailable on iTunesThe result is a simple, addictive mobile puzzle game you’ll love having on your phone.

It was created by the Warp Lemon studio, an indie dev duo also behind the Android game Grid Shuffle. This game, built for Android and iOS, can be described as a pinball game without the need for perfect reflexes.

Tilting the ball around

power ss 1The premise of this puzzle game is simple – you launch a ball, just as you would do in a pinball session, into the playing field. However, instead of trying to keep the ball afloat for as long as possible, you actually need to guide it into a pre-designed slot, while the level itself tries to stop you or make things difficult in different ways.

The launching of the ball is a gameplay element in itself, as you can choose the force with which you’ll shoot it, as well as it’s trajectory (sort of). Moreover, the game uses the smartphone’s gyroscope as a secondary means of control – once the ball is sent into the field, you can tilt the device to guide it more.

This ‘guiding’ also reminds me of the days when I used to play pinball – it’s not extremely effective and it’s not designed to be – you can only give the ball a slight nudge in a direction, as much as gravity allows you. Pretty much the same as how you’d push a pinball machine around when the ball is stuck, or seesawing between life and death.

Let me introduce you to some new elements

There’s one thing that indie game studios usually forget about, something that’s usually crucial to the game actually being any good, and that’s keeping the player interested for an extended period of time. The best way to do it is to keep a couple of aces in your sleeve – don’t introduce all the gameplay elements you’ve implemented at once. Spread them around as the player progresses, so that he/she is constantly being surprised with new developments.

Power my Robot does it in the greatest of ways. There are a total of three stages to the game, with 20 levels each. First, you’re not allowed to open another level if you haven’t cleared the previous one, first.

Second, you’re not allowed to open a new stage before clearing the entire previous one. Third, with almost every new level, a new gameplay element is introduced. And fourth, once you clear a stage and open a second one, you’re greeted with such a changed environment that it genuinely feels like a completely new game.

Story or no story?

power ss 2I’ve recently discussed how story can be an important factor in a game from both sides – the player’s and the developer’s. If you’re building an RPG, where character development and plot twists are essential, then having a good story is crucial. On the other hand, if you’re building an arcade or a puzzle game (hint, hint), creating an extensive story can drain a lot of time and resources, only to be left with something completely redundant, something the player will pay zero attention to.

Power my Robot got dangerously close to crossing that line and into the redundant territory, but kept clear just enough for its story to be considered a good fit in my opinion. The balls you shoot are actually packs of batteries – you need to guide them to a battery slot and that way power your robot. Once you fit enough batteries (essentially once you finish your levels) and power the robot, you’re allowed to move onto the next one.

That’s pretty much it regarding the story, and it’s just enough to spice things up and not overdo it.

Visuals, audio

The visuals are also nice. Stages are colour-coded, and the levels feature just the right amount of details and blank spaces to avoid clutter. All of that is topped off by perfectly-fitted audio, something rarely seen nowadays. The music is in the style of retro-electro, 80s electronic music, which sits nicely with a robotic-themed game.

All things considered, I can easily say that Power my Robot is a well-built, solid puzzle game. It is fairly big and uses various tricks to keep user retention high. It’s smooth, with nice graphics and mind-boggling puzzles. It’s one of those games that will most likely stick around on your smartphone for some time.

Show us you care Tweet about this on TwitterShare on FacebookShare on LinkedInPin on PinterestShare on Google+



SOOMLA - An In-app Purchase Store and Virtual Goods Economy Solution for Mobile Game Developers of Free to Play Games