I use BigQuery to get data from Firebase, and I'm having some issues with data accuracy. Figures I get from the data in BigQuery are not matching the ones on Firebase dashboard.
I recently understood that Firebase does not look at all users, instead it considers only active users. So now I have filtered for active users by putting a filter for engagement_time_msec>0. My active users number is matching up with Firebase dashboard now (just 1-2 digits difference occassionally).
But my main problem is with the average engagement time! Firebase (and GA for Firebase) shows average engagement time metric under engagement overview. When you hover over it, it gives this definition.
"Average Engagement Time per active user for the time period selected"
However, when I get data through BigQuery and calculate this manually, my numbers are off. I am calculating Active Users as Distinctcount of user_psuedo_ID where engagement time>0, and engagement time is being summed up where event name = user_engagement. (I have converted engagement time msec to mins)
Average engagement time = SUM(Engagement time mins)/Active Users
This should give me an average engagement time per active user, but this figure doesn't match the one in Firebase console. I have tried so many methods, and I fail to understand what Firebase is doing at the back end to come up with these values.
P.s: I have also tried summing up engagement time without a condition on event name and that gives me an even greater average, making the difference between it and Firebase even bigger.
Please help!!