How does google analytics measure active users vs. new users in measurement protocol .
How does it measure new users? , Is it based on ipaddress ? I send the same cid=555 for all requests.
In website I see that it uses cookies though
Thank you
CID actually stands for client-id = random number generated by Google Analytics when you come to a website for the first time. You can easily grab it (even with GTM) and use it with Measurement Protocol.
If you use client-id that GA can recognize, it will stitch the data together (campaign source/medium) etc. If you use a new one (like '555' you mentioned), it will then see the incoming measurement protocol request as a request from new user.
Be smart though what you use as CID -- it the key that's vital to pairing any information you might already have about your visitors.
Related
I'm a bit confused on how activating the use of Google Signals in GA4 affects the reporting and raw data. One thing that is obvious is that after activation the demographics data becomes available (gender, age, interests) inside GA. But what about cross-device users stitching?
On the net I saw a couple of articles which have mentioned that turning Google Signals on would affect the overall number of users in the reports (basically reduce it by identifying one user across several devices when it is possible). Does it mean that there will be cross-device users stitched under one Google Client IDs (cid)? Exploring the device overlap I could see a small segment of such users in user explorer who were registered from different devices and have same Client ID on both devices.
This also means that these joint cross-device users data would actually be exported to Google BigQuery, right? By data I mean that we would see this same cross-device user under one and same Client ID in Bigquery.
Bonus question:
How does Google Client ID is actually persisted from the previous device? Does GA4 Configuration Tag sends a dedicated request to Google server on first page load to check if there is user data (Client ID) available from other devices and assigns an old cid to this new visit if match is found in the database?
Or would we see a new cid in real time, but it would be replaced later with the cid from other device when Google renders and aggregates the data on the server side before pushing it into our GA4 account reports?
* we are not currently using any internal User ID of our own to track users across devices
From backend java spring application, I need to send the following record per a specific api call to google analysitcs:
user_name,IP,time,...etc
Then I need to analyse data using one of these data (user_name,IP,time,...etc).
Can I utilize google analytics in that? or even is there any other cloud services to achieve that?
You could but you can't, that's because Analytics customers are prohibited from sending personal information to Google:
The Analytics terms of service, which all Analytics customers must adhere to, prohibits sending personally identifiable information (PII) to Analytics (such as names, social security numbers, email addresses, or any similar data), or data that permanently identifies a particular device (such as a mobile phone’s unique device identifier if such an identifier cannot be reset). Learn more about how to avoid sending PII. Your Analytics account could be terminated and your data destroyed if you use any of this information.
https://support.google.com/analytics/answer/2795983?hl=en
We have been testing the measurement protocol for a while now to pass Google Analytics information from our servers. We are passing our internal unique user id to tid/cid parameters and not the ga's.
Right now it looks like that in our current setup we are not able to generate any Audience reports and I would like to verify my concern that this is due the fact we are passing our own unique userId to the cid parameter.
Is it possible to generate Audience reports using the measurement protocol without ga's cid?
The way Google Analytics handles Audiences is tying the CID (or UID) with a third party cookie in the doubleclick domain, that is sent using a non-documented parameter of the measurement protocol.
This is only enabled once you turn on advertiser features in the Google Analytics interface. Because you can't access the doubleclick cookies from your server you won't be able to include that in your request.
In other words if your implementation relies solely on the measurement protocol from your server side it won't be possible to have audiences populated. If your implementation includes a mix of web tracking (using the supported client libraries such as gtag.js) and offline using measurement protocol it might be possible to make it work if you are able to use the same Ids on the offline and online tracking methods.
When viewing the RealTime Overview section, I notice that when a new user comes online the previous user immediately disappears and is no longer shown in realTime. The next day analytics only shows history data for one visiting user, I know for a fact that this is incorrect, there should be data for multiple users.
I send up analytics data with a simple https request(shown below) . This works for all my other applications. The only difference is that I send up the uid for this app , could this be causing the issue that I am seeing ?
Views
https://www.google-analytics.com/collect
?v=1
&z=14807
&tid=<OUR-UA-ID>
&cid=2535285330542042
&dp=message_6
&dt=message_6
&cd=message_6
&an=freemium_3
&av=3
&uid=123456789
&t=screenview
Events
https://www.google-analytics.com/collect
?v=1
&z=52130
&tid=<OUR-UA-ID>
&cid=2535285331158735
&dp=authentication
&dt=authentication
&cd=authentication
&an=freemium_3
&av=3
&uid=123456789
&ec=authentication
&ea=get_user_info
&t=event
The "cid" in your http call is the client id, where client refers to the device or program that makes the request. It is usually stored in a cookie (on the web) or generated by an SDK (in an app) and is used to unify subsequent requests from the same device into sessions. Since it is set by the client it differs from device to device (and browser to browser), so it can not be used to identify a person across multiple devices.
After it became the rule that any given person might have two or more devices Google came up with the uid, the user id (which by their own TOS might not identify the user, so this is a bit of a misnomer; think "cross device tracking id" and the concept becomes clearer). The uid is set by serverside code, i.e. after the user logs in. Not only this allows to unify visits from multiple devices into distinct users, it also alleviates privacy concerns (since it is supposed to be only created after a users action; there are separate TOS which you have to accept if you create a user id view in the GA interface, and they stipulate that you have to secure the users agreement to use to user id feature).
So if you set the same user id in your code the sessions will be attributed to the same user, even when the cid differs; this is by design and is indeed the point of the uid.
The docs describe the clientId as:
This anonymously identifies a particular user, device, or browser instance.
https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#cid
It can be used to send server side hits to analytics while still tying them to a particular user.
There is also a feature in closed beta called userId, which you will be able to pass once a user has authenticated: https://developers.google.com/analytics/devguides/collection/analyticsjs/user-id
userId is fairly self-explanatory. However, UA also allows you to pass your own clientid if you choose to. For developing CRM type tools, can one just associate the clientid with a user in the same way that you would with a userid? The goal is primarily to be able to track offline interactions and connect them with visitors in Analytics.
maembe,
clientID is a random number generated by Google Analytics, and keep in mind it's always required and its value should always be a random UUID (version 4) (you could technically use your own, but I am not sure how practical and reliable this would be). Most importantly, you can easily access it with predefined get function (see documentation).
For your needs, this is exactly what you should do -- if someone sings ups, store ClientID in your CRM and then if there is any offline purchase, record the transactions with measurement protocol using the stored clientID. Google Analytics will then make the link (attribution) with that visitor and you will see this in your reports. Also, take advantage of newly available custom metrics and dimensions which can store pretty much anything you want (think of customer segmentation etc.). Beware of storing PII though.
Hope this helps :)
I am curious how UserID is going to work, it might change everything, but for now, I wouldn't rely on it as there is very little information available.
This Analytics support page now states the differences between Client ID and User ID - https://support.google.com/analytics/answer/6205850?hl=en#clientid-userid
Essentially client IDs represent unauthenticated users, and are automatically randomly generated.
User IDs represent authenticated users, and must be set manually.
It's worth noting that user IDs cannot be things like an email address, or other data that would allow Google to identify the user
You will not upload any data that allows Google to personally identify an individual (such as certain names, Social Security Numbers, email addresses, or any similar data), or data that permanently identifies a particular device (such as a unique device identifier if such an identifier cannot be reset).
If you upload any data that allows Google to personally identify an individual, your Google Analytics account can be terminated, and you may lose your Google Analytics data.
Taken from: https://developers.google.com/analytics/devguides/collection/protocol/policy
I'd imagine User ID is designed to differentiate the behavior of an authenticated user. here