I need a guide about Screen Tracking in Firebase - firebase

I am trying to set Screen Tracking in my App.
As far as I understand, It requires each different window to track user's activity.
Here is my question.
Can I set different Screen Tracking code in Pop-up window(Example: Store Pop-up)? Or do I need to make a whole- different window to track user's activity properly?
Thank you.

You can manually track screens by calling Analytics.setScreenName(screenName, screenClass: screenClass).
For more on this see the Firebase documentation on tracking screenviews. You can also find examples in other languages there.

Related

Best practice for screen/page tracking across Web and Mobile app using Google Analytics

My product consists of a website, an iOS app, and an Android app. All of them are having the same set of screens.
I try to set up them so that I can see combined analytics data (e.g. average engagement time on each screen, screen view, interesting app event) in Google Analytics. I wonder what is the best practice to achieve that.
I set up a GA4 property with 3 data streams for Android app, iOS app, and website. I let Android app and iOS app manually send screen_view event with the same screen name. This way it is possible to see analytics data like avg. engagement time from Android/iOS combined.
But for website, gtag.js uses page_view and it logs 3 informations: page_title (default=document.title), page_location (default=location.href), and page_path (default=location.pathname).
In GA dashboard > Engagement > Screen and Page, they provided data filters of 4 possibilities:
Page title and screen class
Page path and screen class
Page title and screen name
Content group
It seems I have the following choices:
Let my website to manually send page_view with page_title=screen name that app is using. Then I can see combined engagement data using Page title and screen name option.
Let my app (iOS and Android) to send screen class as page path. Then use Page path and screen class.
The 1st choices is more feasible for me, but still require a lot of effort. Is there any other solution to achieve this?
Another option is to come up with own event - it requires a lot of effort. Such as event name page [name: <anything from app/website>].
Anyway from my experience I recommend to use built-in events page_view, screen_view for better manipulation across GA4, BigQuery, DataStudio. GA4 interface is built for such events.
For naming screens I recommend to create (at least) google sheet documentation with 3 columns (at least) - Web, Android, iOS. At the end you will end up with amazing GA4 capabilities. Think about Pareto principle 80/20, it is not required to log all of the interactions.

Flutter/Dart/Firebase - Reduce unnecessary data loading

I tried searching my specific problem but I could not find any suitable solution.
I would like to thank everybody in advance for your help.
I am currently developing an iOS app.
The App represents a user profile which can be updated by the user.
Everything from the authentication, registration and the possibility to update your user data works fine with the help of Firebase. Now I would like to optimize some code.
So the application has 2 Screens, HomeScreen and EditScreen.
(Besides the Screens needed for registration and login).
To keep my question short:
How can I reduce the amount of data which is loaded from firebase?
Example:
1. User is on the HomeScreen, to build the view his image loads from Firebase Storage
2. He wants to edit his Image and therefore switches to the Editscreen, where his image will be loaded again
3. After changing his image, the new image will be uploaded to Firebase Storage and he can see his new image on the Editscreen
4. If he now switches back to the HomeScreen his new image will be loaded again from Firebase
Is there a good way to reduce the amount of loading?
Like caching the image between step 1 and 2?
As there is always a little delay in displaying his image.
Thanks!
Sadly I am not allowed to share any code.
You can check out the flutter_advanced_networkimage package. It will cache your photo upon load. For everything else, you should just move your profile object (or whatever it is that calls for the firebase user's information) above those routes and pass it down through your widget tree through arguments or state management.

Firebase Dynamic Link Click Count

We are planning to integrated firebase dynamic link to track content sharing and referrals in our app.
Firebase provides analytics data for how many times a user clicked on a url as mentioned here.
Since we are going to generate these links programmatically for referrals, is there any way to do a more granular tracking ?
Like if I want to see how many times all the links generated were clicked.
Or something like how many times a link with a particular parameter was clicked.
I tried looking through firebase docs but I don't think these usecases are covered there.
And if thats correct, what is a better way to track this ?
If you want to collect the analytics data for programmatically created dynamic links, you'll have to use REST API. Though, I also think that you can use BigQuery but I haven't tried this before. Collecting the data via Firebase Console is not yet available.

Know what the user does when a specific error happens using Google analytics?

I have a website that sells products and I'm using google analytics to know some statistics about the website. Sometimes, errors happens for various reasons and purchases doesn't go through. You then have to refresh the page and try again, then everything works. The website displays the message telling the user to refresh and try again. I'm curious how many people actually do that. My question is, is it possible to know what users do when this error happens? Do they refresh and try again? Do they close the tab or do they do something else?
The question is quite broad at this moment, but there are a couple of improvements to your measurement setup, that can help you to investigate this customer behavior.
What I would do, is to implement an event tracking to indicate, that this error has occurred. You can find details about event tracking in this guide. Although I suppose, that your users are not likely to enter the website at this page, it might be a good practice to set the non-interaction flag of the event, as it is not actually generated by a user interaction.
I'd also create tracking for page reload, either by creating an other event for this, or by adding -reload suffix to these repeated pageview URLs. You can find good resources for this on SO as well, e.g. this one.
If you have a special URL for this error page (e.g. purchase-error.html instead of purchase-success.html), it is also easy to track the exit rate specific to this page.
Besides of Google Analytics, you might also want to set up heatmap or screen recording tools to understand this behavior. Hotjar, Lucky Orange are a few examples. (No affiliation.)

How to use analytics screenviews in a website?

I'd like to track screenviews in my website, is this possible or are screenviews just meant to be used on apps? If so, how can I do it? Let me give you an overview of my situation.
I am restructuring a web site. Some of the pages that used to live under differents urls are now living under the same, with a hash id to denote the particular area of the page the user is in. So, for example, http://www.example.com/topics/topicA, http://www.example.com/problems/topicA and http://www.example.com/equations/topicA, are now in http://www.example.com/topics/topicA#content, http://www.example.com/topics/topicA#problems and http://www.example.com/topics/topicA#equations.
Now, I'd like to keep track of users visiting these areas. My initial idea was send a page view when the url is loaded and send a screenview each time the user clicks on the button to change the area of the page (i.e. #content, #problemas or #equations). For doing so, I used something like ga('send', 'screenview', {'screenName': 'content',});. As I couldn't see the screenviews in reports, I played a bit, setting the app name, the app id, the installer id etc before sending the screenview, for example:
ga('set', {
'appName': 'myAppName',
'appId': 'myAppId',
'appVersion': '1.0',
'appInstallerId': 'myInstallerId'
});
ga('send', 'screenview', {'screenName': 'content',});
So I can't see the screenviews in the real time reports (though I can see the page views). I can't see them in the regular reports either. I decided to create custom reports with dimensions Page and Screen name. There, I see sometimes screenviews are tracked (I think it happens when I set the appid etc before sending it, but not sure about this point).
Are screen views adecuate for tracking this behaviour or should I use just events, as I'm not on an app at all (just a responsive website)?
By the way, I am using Drupal 7 but that shouldn't make a difference.
Thanks in advance for your time and I hope I am making my question clear enhough.
Technically speaking its probably possible to send both pageviews and screenviews to the same Google Analytics web property.
The problem you will have is seeing the information. The way the Website is set up its either application or web account, Screenviews or pageviews. The reports are different, and you cant swap between them.
So you could send screenviews to a web site web property but you would never be able to analyse it on the website you would have to use the API to rip the data out. That and you would be analyzing apples and cars. Screenviews and pageviews are different they cant be analysed together.
Because of this web property's should be kept separate one for application (screenviews) one for web sites (pageviwes).
You should in my opinion do this using events.
+1 for an interesting question that made me think :)
Is possible, actually in BigQuery you can reach both data and see how this interact, both will have the same schema and will be stored in the same dataset(it is linked the raw data view). Even in the same sessions, you can send pageview and screen views having funny results.
But there is some important consideration when you implement this.
You need 2 different views, one Web View and One App View. Both views will let you access to different information and is not possible on the web interface of Google Analytics to access to both info at the same time. Not sure if with the API you can access to both info at the same time, I think that is totally possible
In the App View, you will able to see only information of screenview, events and ecommerce.Is also mandatory the App Name parameter on this hits.
In the Web View, you will able to see only the pageview reports,events and events.
The ecommerce info and events will be reachable from both views, there is no way to know if this comes from a web or an app ( technically). So is tricky to read this kind of reports in that case.
Sessions can experiment stranges behaviors. As example gosht sessions coming from the screen view with no page view, sending events.
Taking this into consideration, as Dalmto says, the best to you is use events or sent virtualpage view.
Mixing pageview and screen view is not recommended by Google but is totally possible.This kind of implementations is only useful when you have an embed web-app and a webpage on the same server and you want to have it all on the same dataset, if this case apply, is highly recommended to add a custom dimension to filter the app info on the web view and the web info on the app view and keep both worlds separated.
As the last point, your code is working, I can see the screen info on the desktop property. But not be able to see it in the web view.

Resources