Getting client ID from GA4 to hidden fields within forms - google-analytics

I want to extract client_id for a visit from google analytics and send it to hidden fields within the application forms. I know in Universal Analytics, we can extract it from ga cookie. But how about Google Analytics 4? Do I need to extract it from GA4 API?

If I may add: GA4 does use the same cookie as UA, but the most upvoted method to extract the client ID from the link mentioned by #BNazaruk will not work for GA4.
The method ga.getAll()[0].get('clientId'); relies on the UA tracker and will not work when only GA4 is available on the page.
Of course you can still read it from the _ga cookie as other answers suggest.

GA4 uses the same cookie for client id as GA3. The same old answers apply very well to GA4: how to get the Google analytics client ID
Not marking this as duplicate because the old question does reference GA4, but I will try and edit the old question and answer to include GA4 there.

Related

Tracking original referrer in GA when using SagePay Form integration

When using the SagePay Form integration, the referrer in Google Analytics always shows as live.sagepay.com rather than the original referrer. This is because, when using this integration method, the user gets redirected to live.sagepay.com to complete the payment process before getting redirected back to the original website.
Since the payment templates on SagePay don't allow external scripts, we can't add the analytics tracking script here, which means cross-domain tracking is out of the question.
Is there a workaround for this problem? As many payment gateways are external and behave in a similar way I'm guessing this must be a fairly common issue?
You can add a referral exclusion in the Google Analytics account itself. This should prevent new sessions being created as per the docs:
https://support.google.com/analytics/answer/2795830?hl=en

Firebase+GTM SDK - accessing GA tracker Client ID

I am implementing v5 Firebase+GTM SDK with the sole purpose of tracking the events in Google Analytics.
I can't seem to find a way to access GA Client ID (using previous versions of GTM SDK, I was able to access tracker object and get or set the value).
I am talking about this value:
https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId
https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#cid
Is there a way to reach to GA object hidden inside FIRAnalytics?
Yeah, I don't think tracker object is surfaced.
What you can do is to generate your own clientID (a simple guid would do) and in Google Tag Manager configure a tag to set it as a field. This way you will fully control the cliend id (&cid) and therefore change it as you see fit
This is not possible as of today, since Firebase does not expose data via a REST API. There is no API to even pass on the GA client ID.
From GTM's side of things, that is again a closed system since the data from Firebase is intercepted by GTM but cannot be pulled out or tweaked before it is passed to GA.

Google UA not connecting event to previous sessions

I am sending an offline event to Google UA using their measurement protocol. I am trying to tie it to the users previous visits to get attribution and using Google's own Client ID from their cookie to do that. While the event does appear in Google UA, it is not tied to other client id sessions.
Here an example of the API call
In this example, "1859919454.1455744839" are the X.Y elements parsed from the _ga cookie's client id.
Am I doing something wrong or making some wrong assumptions about google analytics accepting their own Client ID instead of creating and using my own as suggested in their measurement protocol's parameter reference? I have seen plenty of forum threads that suggest google's own client id is acceptable.
I checked your API call and you are missing a measurement protocol parameter in the URL "t" (https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#t)
which defines what type of hit you are trying to send i.e. event or pageView
Google has created a debug tool to check whether the url generated is valid or not. You can also send hits to your GA using the tool.
https://ga-dev-tools.appspot.com/hit-builder/
turns out there is an unpublished parameter in the newer UA interface that allows for strict or loose userid. If strictly enforced, the userid MUST be a UUID. If strict is false it will accept google's own user id. Once that parameter is passed everything worked

Sending events to 3rd party domains with Google Analytics Universal

We provide an iframe-based embeddable widget to our clients and want to be able to send their Google Analytics account events based on what is happening inside our iframe. We used to be able to do this using the old ga.js with the following code:
_gaq.push(['NAMESPACE._setAccount', CUSTOMER_GA_ACCOUNT_ID]);
_gaq.push(['NAMESPACE._setDomainName', CUSTOMER_DOMAIN]);
_gaq.push(['NAMESPACE._trackEvent',"category", "event", "label"]);
This code would be fired inside our iframe, but would result in an event being pushed to the customer's google analytics account, letting them have some insight into customer behavior inside our embeddable widget. The NAMESPACE in front of the actions would keep these events separate from our GA stuff, and would prevent our GA stuff from going to their GA account. They would provide us with their Google Analytics account ID when they wanted to enable this feature.
Is there a way to do something similar with the new Universal Analytics API?
I don't seem to see a similar way to namespace actions and the cross-domain tracking documentation doesn't indicate how to send events/pageviews to two domains/GA accounts (ie we want to track pageviews on our GA account, and send the events to our customer's GA account).
I suggest going the roundabout way - set a pixel in your widget and make the actual endpoint for that pixel a script on your server that sends the data via the measurement protocol to your clients analytics account.

What is utmu parameter in google analytics __utm.gif request?

I am trying to make the google analytic __utm.gif request using php. I have broken all the variables and the only one which I don't know about is utmu parameter. It is not documented anywhere.
When I see a pageview tracking request it is appended to the end of request as &utmu=qB~
While doing ecommerce tracking it is appended as &utmu=qBAL~
Please help me with this.
It is a bitmap of all of the methods used to build the request.
Source: http://glucik.blogspot.com/2011/02/utmu-google-analytics-request-parameter.html
utmu doesn't actually contain anything of external meaning. Google uses it to store some internal values that help them improve ga.js. It's not required to make any functionality work, so, your PHP code doesn't need to account for it.
However, you should know there are already a few long-standing PHP-based Google Analytics projects, like Server Side Google Analytics (SSGA), as well as the semi-official Google Analytics for Mobile PHP and PHPGA.

Resources