Discrepancy in active usage Fabric vs Firebase - google-bigquery

For an Android application, I am tracking active usage on both Fabric and Firebase. Since the most recent release I am noticing significant discrepancies between the number of daily active users.
From the Fabric docs I understand that active usage is defined as:
The number of unique app installations across all devices that were
active on a specific day. Note: Foreground activity must happen for a
device to be active.
Firebase groups active users based on user engagement with a minimal session duration of X seconds (typically 10 secs):
An active user has engaged with an app in the device foreground, and
has logged a user_engagement event.
A possible reason for the discrepancy could be that firebase triggers a first_open event when an app is updated which would mean that users are added that have only updated but not engaged with the app.
However, looking at user_engagement and first_open in bigquery
I can see that they provide different estimates (user_engagement exceeding first_open events). In this case filtering on user_engagement is equal to the number of active users in the firebase dashboard.
Did anybody experience similar discrepancies? I have had contact with both Firebase and Fabric but this did not resolve my issue. Importantly, it is not within a small margin of error, Firebase active users are 4-5 times bigger compared to Fabric.

Related

What is this called? Login to other websites through your app

There is an app that allows users to pay their bills in one place they are asked to log in to their accounts with various billers. Then it retrieves their bill amount and due date and makes it available in the app. My question is what is the feature of allowing users to login to other platforms through your app called? An API or something else?

Chat Conversion Not Displayed in View - QuickBlox iOS Setup

Chat conversion not become visible after I changed my QuickBlox account. Before developer has setup chatting for my iOS application with his personal QuickBlox account so I require to switch it with my company QuickBlox account and later on I can do purchase of plans without any barrier.
After this change actual send messages didn't become visible on both side devices before this was working properly after my account change it get stopped in working. I was getting few errors on log related to this so please check:
Though multiple users get created in account so definitely connection with QuickBlox has been establish as per my thinking but message passing not working.
In chatting view, I have sent many messages but nothing appear on screen, remain as it is blank.
After spending 2 days with this problem, I found solution for this problem. Posting here as an answer so that other users will not consume more time for this problem.
At QuickBlox dashboard, you have to enable retrieve users list permission so that other user can get list of others information. By default this flag set to disable so you have to enable it. Here is screenshot for the same:

Incorrect Event Users count on Answers

I currently have a Point of Sale application that allows for a user to login, make a purchase, and logout on an iPad. Each device supports multiple users, but I am noticing incorrect counts for "Event users". I am tracking logins, signups, and setting the Crashlytics userIdentifier property. What else do I need to do make sure Answers is properly tracking this information?
For example, I have had 30 users login to my application and go through the purchase flow, but Answers states that there have only been "2 Event Users".
Mike from Fabric here. An event user in this case would be connected to the device that is sending the event, not the user logged into the app which is likely the source of the disconnect.

Firebase User Engagement Calculation

I am trying to wrap my head around the Firebase User Engagement Calculation. I am doing a lot of debugview testing now, and as the online documentation states (https://support.google.com/firebase/answer/6317485), Firebase is firing the user_engagement event by default on a periodic basis within a session while the app is in the foreground.
What I have seen thusfar is that user_engagement is fired quite reliably in the beginning and end of an engagement (this can be occurring multiple times in a specific session).
Scenario:
Say for instance I started my session and exited the app, but returned again within the the same 30 minutes time slot. The session_start won't fire again, but only user_engagement. This is quite clever, because I can actually then query first and last engagement experienced within this scenario.
My question is:
How would I actually then query the difference between the beginning of a user_engagement and end of the user engagement ? Currently engagement_time_msec allows me to measure: The additional engagement time (ms) since the last user_engagement event (https://support.google.com/firebase/answer/7061705?hl=en), and not since the beginning of the user_engagement. What if I wanted to measure engagement from the first engagement and last engagement, assuming my specific scenario describe earlier. The idea of this question is to ask how would an example query look like to address this question.
Since I posted this question, I found it would be a lot wiser to look at Session Duration and not Duration between User Engagement Events.
As far as I know, one can not update settings of the user_engagement event, but one can however determine when a session should start (after 0, 5, 10, 15, etc seconds) and b) when a session should end (after 10, 30, 60, etc minutes of inactivity).
To help you get started here is great examples:
How to calculate Session and Session duration in Firebase Analytics raw data?
Session Calculations
Session-Duration Distribution-table in Firebase
Sessions-per-User Distribution-table in Firebase
Important: a Firebase session starts by default after at least 10s since a user_engagement event was triggered (and a session ends after a period of at least 30 minutes of no triggers of user_engagement). And so, whenever users use your app for a period of less than 10s, you will accrue user engagement without a session. This typically means that you will have higher active user base in your dashboard, than users which started a session under your Firebase Events'-tab.

Mixpanel user tracking- track registred user from different device

I am using mixpanel user profile tracking.
1 : If a new user, say A , visit my site and go through some pages without sign-up. That time mixpanel is tracking events to a unknown profile.
2 : Then the user A, sign up in my site and placed an order.
That time mixpanel is tracking previous events and the events after sign up also to a the same profile. (mentioned in above point).
3 : Then the user comes to my site using his mobile, then he go through the pages without login
That time mixpanel track the events to different a profile.
4 : The user then logged in in his mobile and continue to place order.
Then the mixpanel track events after the login into the previous profile mentioned in the 1st and 2 nd step.
My problem is I would like to re-map the tracking done in the 3rd step also to the profile which is used to track in 1st and 2nd step
There are 2 routes
1-) Queue anonymous events: the idea would be that instead of sending Mixpanel the events when the user is still anonymous, you save them either on the device (if it's a mobile app) or on your server. Then, when the user logs in, or creates the account, you can flush the stored events since now you know who the user is. As you might realize, the downside is that if the user never logs in or signs up, then the events are never sent (unless you build a mechanism in your server to flush them in that case).
2-) You could so as you currently do, but when the person goes to step 4, and logs in, before changing the ID to the correct one, you could create a People profile with the anonymous ID, mark it with a flag that it's an orphaned profile, and save the correct ID for it. That way, you can schedule a task to look at those profiles every so often, export their events, and import them back with the correct ID. That would essentially duplicate the data for those events, but you would have the full history with the correct ID. You could also try to filter events based on the "orphaned" flag later on, but it does mean you will always have to have it mind.