How is user_engagement event generated in firebase analytics? - firebase

I have seen a param named firebase_screen_class (along with engagement_time_msec, firebase_event_origin and firebase_screen_id) in the user_engagement event in bigQuery, it contains the name of activity classes in my app. Please, can you explain these params and how is the user_engagement event generated?
I also wonder whether this can be useful to get the quantity of impressions or screen views of the activities in my app.

The user_engagement event is triggered when a user interacts with the app for a minimum duration.
This can be controlled using the setMinimumSessionDuration() method call, also the timeout for a session can be controlled using the setSessionTimeoutDuration() call.
For tracking screen view it is recommended to integrate Firebase with GTM. Take a look at this tutorial for implementation details.

Related

Where can i check the logs of GA4 Automatically collected events? (notification_open event)

What I want to know is, the number of 'notification_open' event divided by the message ID.
In this page, i can see the event has 'message_id' parameter.
https://support.google.com/analytics/answer/9234069?hl=en
But where can i check the logs with these parameters?
In GA and Firebase Console, i can see the total number of events.
But Is there any way to check the events with the parameters?
Thank you.
Those data are available in BigQuery export. You just have to link your Firebase app to BigQuery. From there, you can access your raw analytics data along with the parameters you're looking for.

iOS: Issues with switching from Google Analytics to Firebase Analytics

I am using Google Analytics for years for my iOS apps and was truly satisfied with it. For my regret Google is sunsetting Google Analytics later this year so I am switching to Firebase API so I can keep tracking my apps. I already done most of the integration work and can see the events appearing in Firebase console. However, I can't see custom parameter values but only event count.
For example, sending event named add_book and adding parameter named isbn with value of 1234, I will be able to see in the console only the number of times that add_book arrived and also that it contains an isbn parameter. However, it seems there is no way to view the value (i.e. 1234) of the isbn parameter. I registered the isbn parameter for the add_book event as required. Am I missing something?
Does having the full functionality of the sunsetting Google Analytics (including advanced filtering + regex filters, etc.), means I should use both Firebase Analytics and BigQuery together?
By the way, I linked Firebase Analytics with BigQuery and exported the data as suggested by Firebase Analytics, but I can't see any Analytics tables yet in BigQuery. Do I need to allow several hours before I can view the exported data?
As of March 2019, Firebase Analytics is not so easy to use or test when setting it up (in comparison to Google Analytics). The main steps for setting up event parameters are:
Send your events with their event parameters. Send at least 80-90 events of one type, otherwise the parameters will appear as zero or "not set", until you reach 80 individual events.
The events will not display in the website until after one day. So wait for 24 hours.
When the events appear on the website, you must register their event parameters, with the '3 dots' menu -> "Edit Parameter Reporting" - Like this:
Then:
(Image credit: Firebase Analytics custom events params and Firebase Analytics. Can not add custom parameter to event )
After registering the event parameters, you must wait another 24 hours to see the parameters displayed on the website.
More info:
https://www.reddit.com/r/androiddev/comments/9zbvk4/alternative_to_google_analytics_not_firebase/
https://www.tatvic.com/blog/firebase-analytics-reporting-tips-overcome-limitations-favorite-mobile-app-analytics-tool-google/
In your event overview from Firebase Console you can enable parameter reporting for individual events. The option is found in the 3 dot overflow menu.
You can do that for up to 10 unique text parameters and 40 unique numeric parameters.
Beyond those limits or for more control BigQuery is the way to go. And yes you need to wait for your first data in BigQuery. They populate a new table with one days data every day once.

Sending custom event data to Google Analytics

I need to track events in Google Analytics from a server through the Measurement Protocol. I can do this just fine, but my problem is that I want to send additional/custom data along with the event. Specifically, I want to send a UUID along with the event so that it is possible for me to fetch data from the Google Analytics API in the future and correlate events with rows in a relational database.
Is there any decent way to send custom data along with events? I looked at using the event value, but it must be an integer, and it is not intended for things like this. The event category, action, and label are reserved for other purposes.
I am not that proficient in Google Analytics, so the solutions off the top of my head would be:
Send an additional event containing the UUID in the event label or something like that. Seems like a bit of a hack/workaround to send two events, with one being used exclusively behind the scenes.
Perhaps using a custom dimension or metric. I am not 100% sure about the implications of this and if that's a decent approach or not.
So basically my question is: what would be the best way for me to send a UUID along with a Google Analytics event from a server, taking into consideration that I cannot use the event category, action, and label for the current event? Is there any other way in which I could link events retrieved from the Google Analytics API to rows in a database?
So let's say I trigger a "Completed Order" event to GA, and I also have orders in a MySQL database. So what I want to do, is to link an event to an order row in the database.
There are several things that you can do and it pretty much depends on what you want to do with the information you are storing. For starters, all your requests should include the uid field with the value being the user ID within your system. This way all Google Analytics data will be calculated on the same user. Note: this is an internal value used within Google Analytics and you won't be able to see it.
Second, I would create a custom dimension of the name user_id and store the user information in that. You will then be able to use this information within your reports to see what each user is doing. Note: it's against TOS to send user name, email, or any other PII (personally identifiable information) to Google Analytics. But you can send your internal user ID.
I have done both of these in the past and found it to work quite well.
More info on User-ID.

Firebase Analytics multiple table events

I am using Firebase Analytics to send some custom information from inside of the app iOS and android app. For some reason, when i see the values inside of Google BigQuery, I see the data was pushed twice so I have too many repetitive values. How could I stop it from doing that? On iOS, I will sometimes see it posted 3 or 4 times. Here is a quick snippet from the android side:
mFirebaseAnalytics.setUserProperty("user_email", user.getEmail());
mFirebaseAnalytics.setUserProperty("location", locationValue);
When you set user property the value is persisted and uploaded with every subsequent data upload. If you like to record something that happens at given moment in time you should log an event.
See Set User Property documentation for more details.

Is it possible to create a virtual pageview from an event using a custom filter?

I've released a mobile app (Android) which I track using Google Analytics. As my experience with Google Analytics is little, I did some mistakes by not knowing when to use events versus virtual pageviews.
My app has a login and a signup screen and I'd like to track the conversion rate of users signing up for an account. The app tracks the page views (/Account/Login and /Account/Create Account) and the actual login and account creation as individual events (Category: Account, Action:Logged In and Account Created).
So here's my problem: In order to do a nice funnel analysis, I should have created virtual pageviews instead of events if the user logs in or creates an account. Though I can create a goal based on events it will not tell me the drop off rates in the individual steps the user takes. Only the funnel visualization can do this AFAIK.
Is there a way to automatically create page views using custom filters in Google Analytics? I've tried to setup a filter like this:
Field A -> Extract A Event Category Account
Field B -> Extract B Event Action (Account Created|Logged In)
Output To -> Constructor Request URI /Account/$B1
Field A Required Yes
Field B Required Yes
Override Output Field Yes
Case Sensitive No
However, that doesn't seem to work. I do not see any additional page views or any other changes. Any suggestions?
(Of course I could release an update to the app and I will probably also do this soon, but the above solution would help me with my experiments right now - without having to alter the source code every time I have "a new idea" how to improve the analytics data)
Unfortunately I've found that it's impossible to achieve this without updating the mobile clients. However, moving forward I will take a closer look at Google Tag Manager which allows much greater flexibility.

Resources