I am building an application where in analytics data gets written to Firebase.
This is a plug in to an eCommerce site and there is no guarantee that user would login to the eCom site so identifying using user id is not an option.
Of all the connected users currently online how can I selectively push a notification to a specific user? I have done this before using Node.js/SocketIO. In socketIO world this can be achieved by socket.id which is unique for a socket object.
I am rewriting the app in Firebase , any help is greatly appreciated.
You can identify anonymous users temporarily by randomly generating a string using push(). Once you've assigned every anonymous user with a random ID, you can push notifications to that user by writing data to that user's location using set or push.
Related
I am trying to publish my React Native iOS app (which uses Firebase Analytics) on the App Store. The App Store requires me to specify what data is linked to the user.
The problem is: I cannot figure out whether Firebase Analytics links the data it collects to the user identity.
Specifically, I am unsure if Firebase Analytics links data from the following categories to the user identity: Contact Info, Identifiers, Diagnostics, Location, Usage Data, and Other Data. Can anyone advise?
I found Google documentation explaining how to enable/disable privacy settings: Privacy controls in Google Analytics
For location data, they state: "You have the option to enable/disable the collection of granular location-and-device data on a per-region basis. Analytics collects this data by default."
For user level data acccess, they state: "For Universal Analytics properties, you can pull event information for any given user identifier via the User Explorer report or the User Activity API. These features allow you to analyze and export event level data for a single user identifier. " -- I think this means that the data is in fact linked to user identities if you use Firebase Analytics.
We have a web app that users log into using Firebase Auth. According to our the authentication section of our firebase console, we have 690 user that have created accounts, and we believe that is correct.
According to our Firebase Analytics console, we have 2,100 new users in the past 90 days. I think I understand that Firebase Analytics tracks users with a device ID (?). So, if this were a iOS app, an uninstall and install would trigger a a new user counted in analytics. But, how does this work on a web app? Cookie? Some kind of browser id? A session?
So, I think if we want to track unique users accurately, we would use the set the user id, with this:
https://firebase.google.com/docs/reference/js/firebase.analytics.Analytics#setuserid
Which according to the docs linked above, 'Use gtag 'config' command to set 'user_id'. So it does this: https://developers.google.com/analytics/devguides/collection/gtagjs/cookies-user-id#set_user_id
Which allows the users to be tracked across sessions. Therefore, users should not double count.
Notice that the setUserId section in the firebase analytics docs does not have a web section (although the setUserID function does exist in the javascript sdk as shown tow links above) https://firebase.google.com/docs/analytics/userid
So... would it then work to get the user id (uid) when they log in (https://firebase.google.com/docs/reference/js/firebase.User). And then use the setUserId method to set the id?
It's unclear because the documentation does not seem to be in one source. I am just trying to put it all together
You are correct that you can use the setUserId API (across iOS, web and Android) in order to identify the same user across platforms. Note that you'll need to:
Set the default reporting identity to "By User-ID then Device" in the Reporting settings for Google Analytics in the Firebase console (see attached screenshot and docs for more info).
Make sure you are following the Privacy Policy when using the User ID.
Hi I have a customer who is using Universal Analytics on their web page and then when you click on a link it goes into their app that is using measurement protocol.
They UA code is the same but the CID changes.
Example website:
cid=1387132168.1487081747
When i get into the app with the same browser
cid=47d9e140-f6ed-41c2-bd2d-9f3fb91df6b2
I suspect that Google Analytics starts a new user and session when the CID changes and just need some confirmation that that is the case.
The field Cid anonymously identifies a particular user, device, or browser instance. For the web, this is generally stored as a first-party cookie with a two-year expiration. For mobile apps, this is randomly generated for each particular instance of an application install.
You might consider seeing if you cant figure out how to assign a Uid and send that around between the web and mobile apps Uid will override cid.
Cid and Uid are both used to denote specific users and sessions. So yes if it changes its a different session.
I am looking to make a web based app which creates a monthly report that has Google Analytics information in i.e. organic searches etc. Some clients will have their own Google Analytics accounts and wont be own mine.
I managed to get the OAuth 2 authorization working with my account however it wont work for clients as I needed to get the client_secret.json file from Google Developers website. I have seen a service like cyfe.com which just gets the google login information and outs the Google Analytics information in graphs and such.
Does anyone know how they manage this is possible without getting the client_secret.json file ?
oAuth2 is designed to let you access to users data with their permission, without requiring to access their password.
You should use your own client Id and client secret, these identify your application, not your users ("client" here means client of the API).
You then need to create an interface where users can allow your application to access to their data, from this you'll get an access token, allowing to your application to access to Google Analytics data of your user on their behalf.
Read "Using OAuth 2.0 to Access Google APIs", and identify the scenario that matches to what you want to achieve.
I strongly suggest that you use a library managing the authentication flow, you don't need to reinvent the wheel. Here's a list from Google: Google API Client Libraries.
I am trying to see if its possible to use Firebase to show the number of active users in real time on my shopify site. I also want to show the active users on a single product page if thats possible.
I see the Firebase example code for Presence but it looks like this only works for logged in users. How do I or is it even possible to show the real time user count ignoring whether someone is logged in or not...similar to the real time google analytics count?
The Firebase presence samples (one, two, three) all rely on the Firebase onDisconnect() handling. This method allows you to specify write/delete actions that should happen to your Firebase data on the server, once it detects that the connection to a client has been lost.
A system like this can work fine with using Firebase Authentication, but you need some way to uniquely identify each user. This can be any sufficiently random identifier, or for example the uid generate by Firebase's anonymous authentication. Both serve the same goal: authentication without identifications. That last approach is somewhat similar to how many analytics services work: they give you a unique ID when they first see you and then track you by that ID.