Looking new baas for player tracking!

Hello Guys!

I would like to know which baas is best for AIR apps, for tracking users and logs! Previously we were using Flox and as its phasing out soon, we are looking for an alternative! We have both apps and games in out portfolio.

Thanks & Regards
BM

1 Like

Hello,

well first for people not into those things let direct them to this excellent introduction by cloudflare

What is BaaS? | Backend-as-a-Service vs. Serverless

Backend-as-a-Service (BaaS) allows developers to focus on the frontend of their applications and leverage backend services without building or maintaining them. BaaS and serverless computing share some similarities, and many providers offer both, but the two models have several differences.

so BaaS, Faas, PaaS, etc.

personally I will resume it like that “hu ho we don’t know too well that server thingy so let delegate everything to a 3rd party service”

because off course maintaining scaling etc. backends require quite a bit of work

in Flox is phasing out - a Post Mortem, they explain quite well the choices they made and why

but Flox phasing out is not the first horror story in BaaS

Remember Parse?

acquired by Facebook in 2013 and shut down in January 2017

Remember StackMob?

acquired by PayPal in 2014 and shut down in 2014
eg. PayPal closing down backend service StackMob mere months after buying it

Firebase got a better story

acquired by Google in 2014

and not shut down
and on mobile even replaced the Google Analytics SDK (see Google to Sunset Support for Google Analytics Services SDK, Transitions Mobile Analytics to Firebase)


“as is” I would say none
you might replace parts of it but not all of it and with various pros and cons

if your main concern is about tracking and analytics
personally I would say go with Google Analytics
and shameless plug advise to use as3-universal-analytics
because of that Google Analytics Services SDK

Why you may want to use as3-universal-analytics library instead of other libraries:

  • focused on doing one and only one thing:
    send analytics data using the measurement protocol to Google Analytics backend
  • simpler, easier to compile (SWC vs ANE), smaller in size, less conflict, less maintenance, etc.
  • It will work where the ANE can not:
    • Online/Local SWF files
    • Desktop Adobe AIR
    • Standalone Flash Player executable
    • Command-line/Server-side Redtamarin
  • It does not need to be updated wether an Android/iOS versions change or if a SDK is updated/deprecated
  • It will work wether a particular Google SDK is supported or not

to a certain extend it could also track errors

try
{
    // an error is thrown here
}
catch( e:Error )
{
    tracker.exception( e.message, false );
}

you might track logs with custom events but it is not really made for that, anyway it is mainly analytics and so the cons are that it will not manage authentication, object storage, etc.

but you would probably be fine with Firebase too, I don’t use that because I do need those kind of API to work also on the desktop and on the command-line, and Firebase is mobile only.

All in all the problem with BaaS is that you’re depending on a 3rd party service and if this one shut down you are without a solution sadly, and I would say the same with any other cloud solution like GCP, AWS and Azure (for ex: they have been rumours that Google could shut down GCP).

So if I was in your shoes, I would first take control of the server backend and I would proceed like that

  • take a list of every single Flox API you are actually using
    you are probably not using 100% of them
  • make a list of priorities, if you use 10, select the 5 most important ones
  • implement your own REST API on the backend and copy/clone the Flox API calls
  • on the backend either delegate to another 3rd party or implement what you need
    eg. maybe use Google Analytics for analytics, use XYZ for object storage, etc.

and yep I know it is a lot of work, but I would say it is the price you pay when using a BaaS to “earn time”

In any case, even if you were to decide to replace everything with another BaaS you would have to rewrite all those API calls

2 Likes

@zwetan thanks for the reply!

We used flox for games - Leaderboards, Analytics but most importantly to track players and player logs!
Many of our users used report bugs and crashes & we were able to use flox logs to track down the bugs! Its every easy to search player logs of a particular user using player-id.

Regarding GA - we are already using it & but unfortunately we are not able to track users using user -id or device -id. The user explorer simply just returns black result!

We have found alternatives for Leaderboards(PlayFab) & Database (Firebase) but no player tracking & logging available!

Thanks & Appreciate your support!
GM

OK well … still be careful about BaaS

like that it seems that something like Firebase will last “forever”
but things are evolving pretty fast on the server-side

it went from MBaaS to BaaS and FaaS/serverless followed

but …

things like Apache Thrift or GraalVM could “destroy” BaaS in the long run.

anyway good luck porting all those API

1 Like

As long as there are alternatives, I dont have any problem with evolution!

On the other hand I would like to know how other devs are currently handling user/player logs???

I could comment but it would turn into a rant so I’ll pass

short story, tracking user logs is overkill and imho should never be activated by default

rant ? not sure what you meant by that!
but if theres any 3rd party tools I would definetly like to try it out!

yes a rant because I find all that very wasteful

for 1x users
let’s activate the log tracking by default
for every single class definitions
save it to disk as plain text
but also send it to a 3rd party service to “log it”
etc.

let’s say this generate 100KB logs per 1 hour
and send 100 log message to a 3rd party service

now imagine this app is used by 1000 users
that’s 100MB of logs generated
and 100000 log messages sent to a 3rd party service
all that for only 1 hour

now imagine those users use the app 5 hours per day
that’s 500MB of logs generated
and 500000 log messages sent to a 3rd party service
all that for only 1 day

etc.

that’s what I call overkill and wasteful

and for what?
for the remote use case that if a user got an app crash
then someone can go trough all those logs to find out
“oh yeah it is happening here”

so yeah it is the worse case scenario, I’m not saying you’re doing that
but I see way too many people doing that