Tapjoy, me, and violating TOS.

Cuadros started out as a native iOS app. At the time, I used Tapjoy for monetizing and to provide some of the back-end functionality. I have never been a big fan of their interstitials ads. Some are very long and mostly videos. But as rewarded videos they are great.

What people might not know about Tapjoy is that they also provide other free services when you monetize with them. They can keep track of your virtual currency. You can send them substractions and additions and they can also deposit any video rewards directly to the user.

They have some very cool analytics that I have never seen in any analytics package. Some examples of this are that they have retention curves and categorization of users based on expected return.

You can also target your users with messages (non-advertising in-game alerts) based on tags, parameters, segments or events. You set up these alerts by uploading static images and then overlay buttons over them in the control panel. These alerts can be also localized and the API will display the appropriate one based on locale. They even do push notification that you can set up to run on the same parameters I mentioned above.

All of this sounds like an advertisement, but I promise I am not getting paid for this, Tapjoy will probably never read this, and I am probably violating TOS.

Well going back to the main story. I didn’t regularly reach the threshold for payment disbursement, but they allow you to transfer whatever amount for use in incentivized advertising campaigns. So that is what I use to do.

Recently I have been getting e-mails from Tapjoy that my advertising campaign was coming to an end because I only had $4.56 in the account. I have been ignoring these e-mails because in my head I don’t use Tapjoy. When I moved my apps to Corona they did not have a Tapjoy plugin available and I wanted to avoid the mistake I did in Marmalade where I felt compelled to support a half-dozen plugins that I had created and provided for free.

At the same time, I was getting strange support ticket. Some were about how they downloaded the apps to get diamonds but still like the game and others about how they expected x amount of virtual currency but got nothing.  I would say thank you for the first and sorry to the second and then I would give them a few hundred virtual currencies in my game for their troubles. Although I knew that the virtual currency they were talking about had nothing to do with my game.

Everything clicked about a week ago. I wondered if the Tapjoy campaign was still running. This would explain both the e-mails about my campaign running out of money and players feedback that they were not getting their virtual currency. Since Tapjoy is not integrated into my apps the people who downloaded my apps for virtual currency would not get their virtual currency.

I turned off the campaign and I created a very simple plugin in case I ever want to turn it back on. I also documented the creation of the plugin on youtube.


LTV and Cost of acquisition

I a few years back I read a story or blog post stating that not all paid app users are the same. The story went something like this: you can buy two users at $2.00 but one user would bring you back $3.00 for his/her lifetime of playing while the other users would only bring you back $1.98. With one user you would make money and with the other, you would lose money.

What if you could track each user as they install your game all the way through to when they stop playing your game? You could then know for example that the average lifetime value (LTV) of a woman acquired via Facebook ads is higher than the same type of user acquired via Google Ads. There are services / APIs that do just that and after reading the article, I figured this was the ticket to actually making some money with my hobby. Because I thought that if I can spend $1.00 and get even $1.30 back then I can make a business out of that.

I tried two services both available to Corona users and both free to a certain point. One of them was AppsFlyer. They charge .05 per non-organic installs. The other service that was available to me was Tenjin. For the free plan, you get 1M events. The AppsFlyer pricing seemed at first a very steep price especially when I usually bid for users at .15 or lower, but I figured if this scheme actually makes me money it would pay for itself. I can give 0.05 cents per install to AppsFlyer if that install brings me in .30 or even .20.  Interesting enoughAppsFlyer has never charged me a single cent. I don’t know if my volume is so low that it would cost them more to send an e-mail or they only charge you after you reach a certain threshold.

Both APIs are very easy to set up and both customer services are excellent. I think Tenjin customer service is a bit better, but it might be just the size of the operation. With Tenjin, I felt that I was in contact with the actual team running the show. This is just my perception and maybe it was an illusion but that is how it felt. When you are paying exactly $0 dollars for a service and you getting e-mails and phone calls from the actual engineering team trying to help you out, it feels special.

If this was one of those over-hyped marketing blogs, this is where I tell you how well it all worked out and how I made my first million. The reality was completely different. I think both services are excellent and I plan to add Tenjin back into the mix soon.

Here is the problem I encountered and maybe there is a simple solution, but one I could never figure out. I would spend $5.00 a day on Facebook for iOS version of cuadros and according to Facebook and the services that would result in 15 installs. Sometimes one would say 14 and another would say 13. When the services would calculate the LTV of those 15 users, I would undoubtedly lose money. According to the services they would bring in let us say $3.00. So I just lost $2.00 on those 15 users on that day.

When you looked at the revenue for any particular day for cuadros across platform the revenue would be far more than $5.00. Usually between $10 and $20 and sometimes in the low $70s. Of course, there were more users than the 15 installs that were attributed to Facebook. The Android version would get an additional x organic installs and the iOS version would get an additional x organic installs. Those were “free installs” because apparently, I didn’t pay for them.

So why pay for the paid users? I am losing $2.00 a day on the paid users! Guess what disappeared when I stopped paying for those 15 users, the rest of the organic installs not only on iOS but also on Android. I have run this experiment multiple times. Even advertising on Android will result in some installs occurring on iOS. Advertising on a completely different app in your portfolio might cause organic installs in other apps in your portfolio. Maybe it should have been obvious, but advertising is like dropping a drop of ink in water it disperses and touches many molecules.

In no way does this mean that the services are useless, they provide other data that should be extremely useful in more capable hands, and maybe this dispersion doesn’t matter with bigger budgets.