GA4 vs. UA: Data Differences - google-analytics

I launched GA4 with the same tags and triggers as my UA property. Checked the tags were firing correctly and all looked good. However, after waiting over a day, I checked the pageview numbers (and event numbers) and they are completely different between GA4 and UA (GA4 way lower than UA). This is all raw data and there are no filters applied in both UA and GA4 so it's not a filter issue. I cannot figure out why they are showing different numbers. Why would the pageview numbers be so different?

Related

Pageviews and views differences between GA4 and Universal

Working on "converting" a Google Data Studio report from Universal to GA4 and I am noticing a significant differences with some metrics, such as new users and pageviews
In Universal, I got this for Pageviews
But I am getting these results on GA4 for the exact same period:
The same for new users:
Vs GA4
I know GA4 and Universal are tracking metrics differently , but it looks to me that the numbers are way different
What am I missing here?
I was looking where you were initially and had the same reaction, until I realized that in GA4, the pageview stat is considered an Event and when I went to that section, I found the far more accurate stat (still slightly off from UA but within that percentage margin that Google states may exist). Navigate to Reports > Engagement > Events. The page_view Event should have the more accurate total you are looking for when comparing to the Page View number traditionally found in UA.
Do you have any filter to remove query parameters in Universal Analytics?
GA4 does not have filters to remove query parameters. Is your home page, landing page for your campaigns?
In GA4, the dimension you have selected is page path + Query String. In this case URL [page path] will also have details of query parameters.
There might be multiple rows present with home page URL with query parameters appended.

Google Analytics duplicate purchase reports

We are trying to setup GA4 analytics without removing (at the moment) the previously setup UA, a scenario which is described on the official documentation :
[UA→GA4] Send events to both your UA and GA4 properties
Our problem is that specifically for the purchase event which is a default tag, we see duplicated reports in GA4 Ecommerce Purchases.
I suppose that this might be expected since we push 2 purchase events to the dataLayer as described in the following 2 docs for each version respectively:
Universal Analytics (Tag Manager) - Measuring Purchases
GA4 Ecommerce - purchase
It seems like the GA4 report is picking up both purchase events, despite the fact that we use a different model for each event push. So for example in the end we get :
One (1) purchase event with revenue $10.00 on UA reports,
Two (2) purchase events with revenue $20.00 on GA4` reports (which is wrong)
Is there any way we can use both UA and GA4 and be able to remove the duplicate purchase events on our reports somehow? Tried removing one of the 2 dataLayer push events but then one of the 2 reports (GA4/UA) is missing information.
Well, just make a CJS variable that would parse the event's content and indicate whether this payload has UA or GA4 structure. Then utilize the var as a check right in the GA4 EEC trigger. Actually, I would update the GA3 UA EEC trigger too, just in case it suddenly is able to consume the GA4 object.
But your general approach is sub optimal. How analytics agencies do this kind of job is by reusing the old UA DL pushes and sending the EEC payloads manually rather than through automated DL EEC tracking.
As benefits:
Your dataLayer still looks well and uncluttered by duplicate e-commerce information.
You don't bother front-end devs with extra work and it's easier to maintain
Much easier to introduce symmetrical changes especially when you want to introduce, say, a new product- or EEC hit-level custom dimension or metric.
Data parity does not depend on the front-end devs, only on the GTM config.
Less tags/triggers cluttering in GTM.
It's way-way-way faster to do it when you already have a template GTM container for such mapping. Not sure if the agencies share the containers yet though.
Cons:
A bit more code in GTM.
If GA3 breaks, GA4 will inherit the breakage automatically. Data parity is a double-edged sword.
I can't share my containers, unfortunately, but they look similar to this: https://github.com/gtm-templates-knowit-experience/ga-eec-to-ga4-ecom-converter/blob/main/template.tpl feel free to give it a shot and let us know if it does the trick.

Google Tag Manager click event tracking working but not displaying anywhere

I have successfully created a GTM trigger and tag using the click_text parameter. When I preview and when I published the change both were successful in showing up on my Google Analytics 4 debug and real time tabs. I cannot seem to find a recorded total for this new tag trigger in either GTM or GA4 anywhere. Does this exist in either of these, or do I need to create an event in GA4 unrelated to what I set up in GTM. I have read most of Google's provided documentation on this specific step and it stops flat at this step of things.
Thank you in advance.
If you see your event in real time data report in GA, you're good. The data is in that property. It, however, is not yet available for aggregation, so you won't be able to count them or use them in other reports.
You should wait up to two days for the data to be in the non-real time reports. Vast majority of the data will be available for aggregation in one day, however. Some starts showing up in hours. GA 360 (paid version of GA) shortens the two days to four hours until all data is there.
I'd also suggest using Adswerve plugin for GA debugging: it will print all DataLayer changes as well as everything that is being sent to GA in the console. It's much more comfortable than using real time hits report and it will show you all dimensions that are being sent to GA.

Zero unique pageviews with secondary dimensions

We have Google Analytics set up through Google Tag Manager on our SPA website. We are sending virtual pageview calls on every page through a custom event in a dataLayer object. And not using the standard pageview triggers that are available in the tag manager. In the same pageview hit we are sending many custom dimensions relevant to the webpage.
In the all pages report when we look at the pageview data, without any secondary dimension then the pageviews and unique pageviews numbers are expected. However, when I apply a secondary dimension I see many unique pageview numbers turn to ZERO. This error is consistent with secondary dimensions that I send in the pageview hit (like time of the hit). And also with some of out of the box dimensions (like hour index).
Without custom dimensions:
With custom dimensions sent in the pageview hit:
With hour index dimensions:
The total numbers are not changing with the addition of custom dimensions.
I'm not sure why this is happening. Can anybody please help me understand the reason behind this?
This happens beacuse the "unique" count of pageview (or event) is associated with the first page on which it occurred, so for the second or subsequent page where the same page (or event) arose, since it is no longer unique for the current session, its value will be 0.
You can find here a comprehensive event-based explanation of this concept, but the concept is the same for page views: https://www.analyticstraps.com/eventi-totali-senza-eventi-unici/

Custom trigger showing up in Google Analytics - but NOT the value itself

I have a gtag account setup and that also connects to google analytics.
And I have made a successful tag/trigger to make event tracking for when an FAQ item is opened at my clients FAQ-page
I am sending the trigered FAQ question text as a value as well. And I wish to have a list in Google Analytics in which the questions are shown in a list.
Am I missing something? Should I setup the trigger/tag in another way, or am I missing something in the GA.
Thanks for taking your time.
DEBUGGER
TAG CONFIGURATION:
GA:
The event value in Google Analytics must be a number. You are currently passing {{Click Text}} string, which actually gets ignored by ga object, and will not reach Google Analyitics. More details on event tracking.
Basically, you should send this text data in a text field into Analytics.
Original recommendation, using custom dimensions:
I recommend you to set up a hit based custom dimension, where you can submit additional text data in connection to your event. You'll be able to analyze it as a secondary dimension in standard event reports, or by creating custom reports.
In GTM, you have to modify either the Google Analytics setting variable, or the Analytics tag itself, and assign the desired value (click text in your case) to the custom dimension ID, which you have created in Google Analytics. E.g. custom dimension 6 gets passed like this:
An other option, based on Eike's suggestion:
You can also use any of the other standard event fields for this, e.g. send it in the label. As pointed out, this can even hold larger set of data (500 bytes), compared to custom dimensions (150 bytes). This is also easier to be implemented in GA and GTM as well, as you don't have to deal with custom dimension creation and reporting.

Resources