Firebase: Can user be analysed individually? - android

I am developing an application in Firebase. Earlier i was using parse. Parse creates an install object on installation which is then added to the server database.
I have not been able to find anything similar in case of Firebase. So does Firebase has any database with installation properties like the date installed, updated, timezone and version?

Firebase provides developers to analyze the user data, FCM Analytics has been built so wonderfully that you can get every small detail like :
1.the count of different versions of the app installed
2.the device model names.
3.the different OS versions which the app is running on
4.geographical count of the app installs in various countries and many many details
It also provides a facility for crash reporting,by simply adding a dependency in your build.gradle, developers can get a detailed crash report and the full stack trace with line numbers.
Developers can also set something called the user property with which they can analyze the different user usage patterns.
And many more features, all in one single console.
For better understanding you can go through the docs for FCM from the below link:
https://firebase.google.com/docs/analytics/

Related

Fabric Crashlytics - Aggregate data from different projects

I have several customized Apps which have different package name/bundle ID. Crash data will be sent to different apps in Fabric Crashlytics dashboard (I guess they have different package name), even if the crash data are same(same type, same exceptions...). My question is: is that possible or is there a way to get the aggregated crash data from these Apps? Thanks.
Mike from Crashlytics and Fabric here.
If you want multiple apps to flow into a single "parent" app on your Fabric dashboard, then here's what you need to do.
First ensure that the parent app has been added to your Fabric dashboard. Then you want to use something like this, depending on the kits of Fabric that you're using:
Fabric.with(new Fabric.Builder().kits(new Crashlytics(), ...).appIdentifier("parent app identifier").build());
One important note is that if you're using Proguard or Dexguard, de-obfuscation will not work correctly on crashes from the child app. Second, currently this only supported on Android.

Has anyone gotten Google Play's "Tracked Channels (UTM)" campaign tracking to work?

The Google Play Developer Console offers the Tracked Channels (UTM) view under User Acquisition → Performance which should be able to show a breakdown of which tagged links users clicked to get to the store listing, etc.
I have generated several different links to my app using the Google Play URL Builder, e.g.:
https://play.google.com/store/apps/details?id=com.vandenmars.colortrek&referrer=utm_source%3Dso%26utm_medium%3Dlink%26utm_campaign%3Dlink%26utm_content%3DTBk
I did a couple of tests last week where I opened the Play Store using these links and installed the app on new devices immediately from there. Still, the Tracked Channels (UTM) list shows no entries.
A bit more background that may be relevant:
My app itself does not use the Google Analytics SDK and does not register a receiver for the INSTALL_REFERRER intentI would assume that the Play Store handles the links directly without requiring app interaction, especially since it can track store listing views that don't lead to installs, but maybe this is incorrect? Or maybe the store disables tracking based on the app manifest?
I opened the links in Chrome on my PC and clicked "Install" thereMaybe the links only get tracked if they are opened in the Play Store App on the actual device? Seems strange, but I am running a test on that right now, the data just hasn't updated yet.
The tagged installations I did were on days that have been processed alreadyIt sometimes takes Google a long time to update the "Performance" data, but the data I can see already includes this Sunday and the tests were done on Friday. So, unless the UTM tracking data takes even longer to get processed, it should already show up.
Do I need to enable something somewhere for this to work? Or am I doing something else wrong?
UPDATE 1:
Meanwhile, one entry has started showing up in the Tracked Channels (UTM) list. Unfortunately, as the help-text states, "UTM-tagged links that have a single store listing visitor [...] are included in the “Other” category." So I have no idea which of my test links it is, if any. The entry is only showing as a Store Listing Visitor, but not as an Installer.
The last day included in the stats is Wednesday (supposedly), which is also the day when I did the test of opening the link directly in the Play Store app on a device for the first time. I did install the app during that visit, but it was after I had uninstalled a previous installation.
So, here's what I learned from this:
It doesn't look like there is some on/off switch for UTM tagging that I need to enable.
Including the Analytics SDK and registering an INSTALL_REFERRER is not strictly needed for just the tracking of Store Listing Visitors, but it might be needed to track Installers/Buyers.
There may be a difference between visits to tagged links from a PC vs. from the Play Store app on a device.
This leaves the following questions:
Are UTM links only tracked by the Play Store app, or also by visits to http://play.google.com/...?
Does an app need to use the Analytics SDK to forward information about installs and purchases to the Play Store, or do these get tracked independently of the app like the store listing visitors?
Is only the first installation of an app on a specific device counted under Installers, or is a fresh install after an uninstall also counted? How about after a factory reset of the device?
Bonus question: Is there a way to expand the "Other" category? :)
UPDATE 2:
Now I'm back to square one: 3 days ago, I opened more test-links on different devices (including the one that I thought was the one that showed up last time), directly in the app store, installing the app immediately. The data shown includes everything up to and including two days ago, so these visits and installs should be tracked by now. Yet, the list does not show any additional entries beyond the one from update 1 above.
So, either I have absolutely no clue what should be going on, or this whole tracking system is one giant buggy mess... Some things I've read in random forums suggest the latter, but maybe I am missing something, too?
UPDATE 3:
This is getting stranger and stranger. Now, all of a sudden, I see an entry showing 14 store visits and 10 installs for "zedge/android"! Why would someone make their own utm tagged link for my app?!? On top of that, none of my other tests have ever shown up (still just the original entry under "Other") and I don't even see the 10 installs in the statistics... Looks like this whole thing is just plain broken... Correction welcome.
We're in the same situation too now. No Google Analytics set up, need to run some ads this weekend, so I'm going to try to use UTM tags to track the app installs.
There may be a difference between visits to tagged links from a PC vs.
from the Play Store app on a device.
Found this in their documentation
"Note: Over-the-air and web (play.google.com) impressions aren’t
tracked on your app’s User Acquisition page at this time."
If you want, send the link over and I can test it out.
Before direct user to Google Play app page, send GET request with UTM params to your own site. Register this site to Google Analitics. It will count page visits only.
I am going through the same problem. I wanted to test if the UTM source and UTM campaign from the new Dashboard required some SDK or API installed in the app itself. So I contacted Google Play Devs, I asked specifically if we needed Google Analytics and their response was:
this not the case and also there is nothing further that you can add to the app itself.
I did try downloading my own app and sent the link over to a couple of dozen people (bare in mind that the app does have a Google Analytics setup, but it is from 2016, so old version) with the following link
Power my Robot with UTM links setup
I put random words, and all the visits and downloads on both UTM Campaign and UTM Source showed under "Other" and not the words I put. I managed to get around 20 downloads from this link.
However, after questioning Google why it was showing under "Other" and not the word I put in the link, they said it is because of a minimum threshold, which they don't know the amount.
As mentioned above, I used this form to get the Google Play with the UTM tags.
And also, I agree with a comment above, that Apple simply works. From the campaign section in the dashboard, you can open the "Link Generator" and they specifically say that the minimum amount in order to show the number is at least 5 installs using the link in order to protect users' privacy. Google Play can learn something from Apple in this case.
I will try to keep this updated if anything changes on my stats. And feel free to click on the link above and install the app, open and then de-install, just to build up the numbers and see if I can cross the threshold and discover what is the minimum amount they require.
I confirm that the Google Play Store UTM tracking doesn't work with your configuration, as I have the same (no Google Analytics SDK, but firebase-core) and I can't see any installation listed in the Acquisition view of the Play Store.
I note that the Play Store documentation part about UTM tag has a link to an url builder on the Google Analytics Guide, so may be the solution in to install GA SDK.
Have found google page that suggest how to build url with utms: https://developers.google.com/analytics/devguides/collection/android/v4/campaigns?hl=es#google-play-url-builder
This is an example:
https://play.google.com/store/apps/details?id={application_id}&referrer=utm_source%3D{source_id}%26utm_medium%3D{medium}%26utm_term%3D{term}

parse.com is there one Installation object per device?

I have an iOS app builded on Parse. I use push notification so I use the Installation table. My problem is that, when I use the same user account on two different devices (two different iPhones), there is still only one Installation entry in the table. My thinking is that there should be one entry per device, as each will have its own token?
Do you know if there should be 1 Installation entry per device OR 1 per user account?
According to "Managing Push Subscriptions with Installation Objects" when a device registers for push notifications via the client SDK, the push service works behind the scenes to manage the device’s subscriptions.
This subscription you can view and modify through “Installation”
objects, each of which corresponds to an installation of your app on a
device.
Installation objects are automatically created and modified when SDK push methods like subscribeToChannel and unsubscribeFromChannel are called, and are fetched by the getSubscribedChannels SDK method.
I would also want to comment that looking at my own tables on Parse I have a new row in Installation table for every new version (appVersion) of my app
See this link for an explanation of how the Installation class works by Héctor Ramos from the Parse team.
This gist of it is:
The Installation class contains objects that are just that - unique
installations of your app. When you delete the app from the phone,
then reinstall it, this corresponds to a new installation. If the app
is restored from iCloud, though, the same Installation object will be
used.
You will probably want to track IAP data in the User object instead,
then link users to their installations. A user can have more than one
installation, if they install the app on an iPhone and iPad, or if
your app is available for Android, too.

How to limit access to an activity for some users only using Parse.com on android?

I'm creating an app where I store on a parse.com database the GPS coordinates of stores. I'm also able to see markers on a map corresponding to these stores.
I'd like to be able to give access to some of my friends to the activity that allows us to add new stores. The regular user would only be able to see them on a map and not add them. Should I only start the intent if the current user is included in a list ?
Is there a better solution using Parse.com ACL ?
Arnaud
If you don't have user login and you don't want to overcomplicate things I see 2 solutions:
Build a specific app versions for your friends which will include activities for adding stores.
or
Hardcode device ids of your friends who should be able to add stores and using TelephonyManager check if it's the right device.
More flexible solution is to keep table with device ids in Parse.com and check them when app is launched for the first time. This will give you ability to add admins without releasing a new version on the market.
This is exactly what build flavours are for, see here for further details.
The approach is to extract feature-specific code into different flavours, and then assemble different versions of your app. This could be as simple as a different property configuration (allow_adding_stores) or as sophisticated as a specific activity.
Another typical usecase would be to build a separate debug version of you app (e.g. connecting to different servers or writing specific log statements).

Application-Integrated "Send Feedback"

I'm looking for an .jar or library project that will allow users of my application to easily send feedback from inside the application about their experience.
As asked in this question, I am looking for something similar to the crash reporting tool used in Google Plus, that allows the user to get in contact with me, besides leaving bad reviews.
Some not-quite there solutions that came up in answers to other questions:
ACRA : Application Crash Report for Android (functions as a crash reporting tool)
Hockey Kit: Helps distribute betas, nothing related to send feedback to developer.
Does a library like this exist? Is there an easy way to gather user feedback from within the application?
For a full-featured user support service, you can have a look to Capptain: http://www.capptain.com/
But with ACRA you can also trigger a report programmatically. You could call the method handleException(new UserRequestedException()) when the user selects an option in your preferences screen, for example.
You would then filter your ACRA reports spreadsheet for all stacktraces containing UserRequestedException.
UserRequestedException would be a custom Exception that you would implement.
The NOTIFICATION mode can be configured to display a form containing an e-mail field and comments field. The e-mail given by the user the first time is saved in the apps preferences.
A bit late to answer your question, but you might want check out this: http://www.android-feedback.com/ . Its an in app feedback / support system. Its not live yet, but the beta stage is going to start in a few weeks. (and beta testers get bumped to the premium/paid plan once live)
Edit: Disclaimer: its my project
i think you need to use a tool like instabug it provides you a way for collecting bug reports and feedbacks about user experience and also you can talk back to them
As of this date (27th April 2018), HockeyApp can handle this issue. It enables users to send In-app Feedback to developers, which then developers can access through a Dashboard.
Check out: www.hockeyapp.net
The problem I've had with implementing HockeyApp, is that, the feedback form requires the user to add unnecessary details like name, email, etc. I can't seem to find a way to add these detail programmatically.

Categories

Resources