There is Google Analytics, Firebase and loads of other analytic services which can capture the user events on mobile hardware and send it to an online dashboard. But AFAIK, none of these services log the events against each user i.e. although i will have a overview of user usage pattern of my app but when it comes to a particular user, I won't know for sure the events and clicks generated by him.
I understand this might be a bit of too much information for the services to handle and also might involve some rolling over some privacy fences.
But If i really feel compelled to record the events for a period of say 30 days, is there a suggested way to do it?
Is there any service in the wild that provides this ?
You can use intercom service to achieve event tracking against the users'. But intercom is not a free service you need to pay for it to use it. You can try out the trail version and can verify how events are logged.
Related
We are using Firebase today for crash logging and some debugging. However for the production app we are looking for the best way to achieve the following scenario;
Customer calls in with a problem, it might be with one of the embedded devices the app communicates with or the app itself.
Agent logs in to a service, selects the user account (AWS Cognito) and fetch a human readable log of the latest actions and settings done on that particular users account.
Are any of the known services today made for this to happen in an easy way? Seems most is focused towards debugging, but this is more a production intent and to be able to help customers in a better way.
You can introduce Firebase Analytics to the app and then distinguish user by setting user ID: https://firebase.google.com/docs/analytics/userid
I think you'll need some work on adding the analytics logs for the actions in the app you want to track
I want to track events on user who uninstall my game. I want to know how many levels user passed before they uninstal my game. Is there.any way to get list od this kind of users and see analytics for each user separately?
What firebase tools should I use to get thise informations?
Im using android.
Thanks in advance
The best approach it's to use Firebase Analytics for Android with event logging which automatically log app uninstall using the app_remove event.
You can find a complete list of automatically logged event for both Android and iOS here
Moreover you should save events everytime the user passes a level in your game or performs an action you are interested in.
After some time you will have enough data to know exactly where most
people stop playing the game or uninstall it and you can start corrective actions trying to prevent this (or at least affecting some of them)
NOTE: answer updated thanks to Frank Van Puffelen comment
Use simple google analytics and define event method from it or also you can use firebase analytics to track your app performance and log.
I am curious as to how users are exploring my app. I only want to track an event the first time it happens. For example, the first time a user beats level 1 I want to send an event.
Is there a way to easily send an event once with Google Analytics, or do I need to use SharedPreferences and manually track if I have sent an event before? (this is what I currently do)
I am unsure what keywords to search for this so links and tips are appreciated!
I know that when app crashes a bug report is sent to my developer console.
Now I'd like to add a statistics usage function: for example each week app gathers my app's preferences settings and send them to my dev console. This way I could see what users like more and, on the other hand, what has to be improved.
Is it possible with some android function? I know I could do something like send an email, or make an hidden connection to my server but I'd like a more "standard" way (moreover these hidden methods could not be liked by some user)...moreover error logs are sent so there IS a mechanism, problem is if I can attach to it or not
Well, it's not the developer console, but you can use Google Analytics for that. There is an API to use it with Android, explained here: https://developers.google.com/analytics/devguides/collection/android/
It's up to you, what exactly you're gonna track, but it's very easy and for dealing with the statistics you have all the power of Google Analytics at hand.
EDIT: For best results with least effort, you should use the EasyTracker library, which makes sure that communication with the server is done in a separate thread; otherwise you will experience 'hickups' in the UI.
As Google stores your purchases of Android apps, I was wondering if they are somehow offering a webservice that can be used to check if a certain app has been purchased. To me this seems the most secure way of distinguishing free and paid users from within my app.
It would not only defeat piracy, but would also allow for managing a database of legally registered users, by a one-time check through this service.
What are your solutions to this matter?
Google provides a library for you. See here.
Note that this has been compromised in unprotected apps, so you should use something like ProGuard. The link above contains more information.
Finally, keep in mind that the Android Market is not the only app market for Android out there. Amazon has their own DRM.
At this particular moment there is one way to check.
The Android Market authenticates purchases through Google Checkout, but Google has not implemented the Checkout API to synchronize Market purchases. So calls like that check the status of an order do not work. Maybe Google doesn't want dev's to get a hold of customer emails? Either way, I do not know why it does not exist, it seems to me that if Google simply made this service available we could implement a far more superior security system that would better utilize the methods of obfuscation. As it is at the moment, a hacker can simply look for a specific class like the ILicenceService and hook it.
The only way at the current moment is to download a list of current purchases. You can do this using an authenticated http call. The drawbacks to doing this are pretty large though. First, the list it provides only extends back 31 days (so you've got to make sure you keep everything). Second, you would have to call and parse at least every ten minutes. Actually faster than that, most users want to play their games when they buy them. Third, if your service, or server goes down, that is precious information that is being requested almost instantly by your users.
I don't know how many dev's are currently utilizing this process, I considered it, but am just going to keep complaining to Google for a better method.
You could piggy back off of the LVL. I have just implemented a similar system.
Perform Check via LVL.
On success make a post to your own web server and store whatever details you need, i.e. DeviceID etc.
You could also perform checks to your own server even when the LVL check fails and allow things like trial periods etc.