We started to implement manual_screen_view for Android in June 2021. Faced problem about double screen_view events. It was fixed and released around the 12th of July. The last release before the problem appeared was on the 16th of August.
Everything was fine until the 26th of August. Since then our engagement times started to rise significantly and way out of proportion. As an example, we've highlighted a screen called "Logo intro". This is Splash screen and takes around 5 seconds before moving on to the next screen. Why is the average engagement time 1m 33s and then varies from 6mins to 40 sec.? There are way more examples, but this is a nice illustration.
graphic
table
We spoke with Firebase support and sent them screenshots from DebugView. Everything is perfectly fine with events and params. "Logo Intro" event is sent, then "Watch" event with previous "Logo Intro" and engagement_time_msec is around 6 second.
log intro event
watch event
watch event previous screen
watch event engagement_time_msec
We try to contact with Google Analytics support but haven't get any answer yet.
It is very important to understand this metric "Average engagement time". I have start to understand that metric when I was looking for how it is counted. In GA4 interface the note in question mark is very sad. This is from docs:
Average engagement time is the sum of user engagement durations divided by the number of active users. This metric shows the average engagement time per user. Google Analytics also shows the average engagement time per session, which is the sum of user engagement durations divided by the number of sessions. (https://support.google.com/analytics/answer/11109416)
In other words, the metric doesn't say what is average time spent in the mobile app for one session. It says how long on the average the users stays in your mobile app in the time period. E.g it says this "Between 1.9.2021 and 31.12.2021 users spend with your app 6 min on average. They dedicated 6mins of their life on average with your mobile app between the time period"
Rather than looking at implementation, which seems okay to me, ask some questions:
Have you released any new cool feature, that your users were looking forward to?
What about your average session duration, did it change overtime? If so, how and explore why.
Related
I already have a service that sends how much time by minutes a user was online or offline every 15 mins and only after the state has changed from the previous one (online to offline or vice versa). So, basically, I can see the minutes count as a value when selecting a parameter, for example, ONLINE_TIME (in screenshot called TIME), and see events in the last 30 mins with values of how much time the user was online by minutes.
My main goal is to see in Firebase, how much percent time of the day users was online and offline. Any ideas on how could I achieve this? Thanks.
I want to make android application to tell me what is the possibility to walk up at fajr time (its prayer time for Muslims), I read about sleep stages and knew that there are 4 sleep stages (Awake, light, deep and rem), each stage takes a duration I want to calculate if this certain time is between the light stage or not, its technically simple but how to do it programmatically.
All these sleep cycles are determined mainly by heart beat per minute, so you can create a android watch app which monitors heart beats or you can see if the users smart watch has any APIs which lets you access these informations for example fitbit API https://dev.fitbit.com/build/reference/web-api/
Depending on this and the users FAJR time you can derive your information.
Google Analytics (using iOS SDK version 3.14 and it's built in sessions tracking) is reporting a significant percentage of app sessions as 1 second.
Maybe users are launching an app to view a page and (effectively) then instantly leaving the app, but that seems unlikely (that it should continue as the top use case. You think such users would stop using or uninstall.)
Initially I suspected this was related to "background fetch" but when I look at a prior incarnation of the application (that did not have background fetch enabled or used) I still see these (seemingly) bogus sessions also. That application (pre iOS9) had no universal links.
The (obvious) reason I don't want to see these sessions (especially if from automated action not user action) is it removes all value of "user behavior"; i.e. loyalty, recency and skews "average session length". These are the main reasons I want to use GA, i.e. to see if folks are using it more/valuing it more.
My questions:
What might these sessions be caused by? Are they bogus?
If bogus, how can I stop them?
Can I ensure new "background fetch" code doesn't somehow trigger them?
Some things I've considered / looked into:
I am seeing a similarly large set of "short sessions" on an Android application (this application's peer) and again with extremely high numbers. I've been wondering if this was a result of a web searches & site links, with those site links automatically loading the app, and the a (very) quick user "move on". (Universal linking is something the new iOS application is working towards, but doesn't see much of yet.) Given it is not that on iOS I am starting to doubt that it is that on Android.
There is a "optOut" option on GA. That feels like a sledgehammer solution to this walnut problem. It is also a persistent setting, which feels risky to use for a transient situation. I could attempt to toggle it at applicationDidEnterBackground / applicationDidBecomeActive (and will if it is deemed the solution) but worry it could have negative side-effects.
One can have multiple trackers. I am planning to attempt one for human foreground activity and one for background operations (which might allow time /event tracking when in background, w/o impacting human user tracking numbers. That said, I don't know / believe this is the cause of the bogus sessions. )
One can manage sessions manually and also customize the sessions interval timeout, but I don't see why this application should need any custom behavior. It is a normal application.
The application isn't reporting crash totals to match these numbers; it is a generally well liked 4/5 star app w/ few crashes.
Google Analytics measures duration as the time between interactions.
This means that in order to be able to measure duration, Google Analytics needs a minimum of two interactions to measure between. But they still need to collect data on one-interaction Sessions, and from the reporting perspective, every session starts the same - with an interaction. It's just that some don't go any further. To account for this, Google Analytics keeps a running total of Session duration.
When a user first interacts, that total is set to 0.
31 seconds later, they interact again. That total is updated to 31 seconds.
10 seconds later, they interact a third time. Total is now 41 seconds.
35 seconds later, they quit. This is not measurable, and hence not an interaction. Google Analytics waits faithfully for 30 minutes, before deciding that they aren't coming back.
Your total Session Duration is recorded as 41 seconds, as that was the last point at which you checked in. There's no way of knowing that you stuck around an extra 35 seconds.
This isn't an issue if you looked at 4 or 5 pages, but if you had only looked at 1 page, we would have been left with a Session Duration of 0. This is what happens with every 'Bounce'; every Session with only one interaction is measured '0' seconds long.
Throw into that a handful of people who interacted 8 or 9 seconds later, and you have an average of 1 second for the '0 - 10' category.
Turns out the problem was inside the Google Analytics SDK. A new version has been posted:
[Google Analytics SDK issue with short sessions][1]
I'm using Google Analytics in an Android Application. I have registered few events using EventBuilder. For me it took almost a day to show that events in Google Analytics web portal. But in iOS it shows the event builder hits within 10 to 15 minutes of time. How its happening? Am I missing anything?
EDIT I'm not talking about RealTime tracker. In that we can see the traffics and locations. I'm talking about Events.
Dispatch settings
There are different default settings for Android and iOS. It sends event in batch mode once time in 30 minutes (or different time frame).
Check out documentation
https://developers.google.com/analytics/devguides/collection/android/v4/dispatch
https://developers.google.com/analytics/devguides/collection/ios/v3/dispatch?hl=cs
Website usage
Time required for data processing depends on amount of hits sended to UA account. Full data-processing usually tooks between 4 hours to 1 day. So you don't miss anything.
Some data are accessible faster, like events, default dimensions, etc., but custom dimensions and dimension breakdowns tooks longer time.
Thanks for your help. I was doing a silly mistake while viewing report. By default Analytics will be show data till yesterday. By changing the date to today at Right top corner in portal displayed today's events. Minimum time it took to display the data is 15 to 30 minutes. May be it might vary depends on the number of hits.
I've created an app for the market on Android and ready to be released in the market.
I have used Google Analytics to track custom events that'll help me in upgrading the ap in the future.
I wanted to know how much data will Google Analytics consume to report back the events that I have defined?
My concern is it should not consume a significant amount of data for reporting that would adversely affect the app from a end user's perspective.
Does anybody know the consumption of data by google analytics in tracking?
Can it be reduced by increasing the dispatch period?
The data sent to Google Analytics is typically very small in size so as long as you aren't over tracking your app (reporting the location of every touch, silly, but I've seen it) you shouldn't have anything to worry about. If you do want the limit the data sent you can set a sample rate on the reporting to only send some events back to GA.. This will reduce your accuracy if you only have a small pool of active users but it is required by Google if you are reporting more than ten million events per month.
The most important thing to consider with GA is your dispatch time for battery life. If your app isn't already constantly accessing the internet then every time you report to GA you just drained a bit of extra battery by activating the wifi or cell antenna of the device.. the cool down on these is about 60 seconds so if your dispatch is set to 60 then you would slowly drain the users battery for no good reason.