UTM Parameter are not working properly in GA4

Hi,

We are using GA4 server-side tracking with the Stape Shopify App. We recently added UTM parameters to our multiple campaign settings.

We are also using Query Replacer and transformation in server GTM mentioned here: How to avoid UTM parameters removal

Still, we are seeing very little traffic on our source and medium in GA4. What can be the issue for this?

Our UTM link example: {lpurl}?st_src=google_ads&st_mdm=Pmax_hangers&st_cmp={campaignid}

Thanks.





To me, your setup, judging from what I can see on the screenshots, looks good.

Have you tried testing it in the GTM Preview Mode? Specify some test URLs with your fake UTM parameters, and check in preview mode that for the GA4 tag, the parameters are transformed.

If the URL is successfully transformed in the Preview mode, you can also check the live site. Try replicating the journey of your site visitor who came from the Ad. Visit the site using the link in the ad, so that the parameters are stored and then check the network requests, whether they go out successfully to your sGTM.

If they do, then, most likely, there’s nothing wrong with your setup and either GA4 is slow on processing new traffic (it happens), or you simply don’t get much people following the Ad.

Thanks for your advice.

We have noticed that in the GA4 real-time report, we have a significant amount of traffic from our UTM sources and mediums whenever we check. This means that GA4 is getting those UTM parameters.

However, when we check the Traffic Acquisition report, we have almost nothing for the session source/medium.

GTM Preview shows that everything is okay. And sGTM is sending the request to GA4 with the UTM parameters during testing.

Thanks.

If you are using consent, the problem may be that you have not configured the tags correctly in relation to consent. That is, the tags are triggered, for example, only on following pages, but not on the landing page, which causes the utm parameters to be lost.

If you are sure that everything is set up correctly, the problem may be with the GA4 property itself. I have encountered this several times in my practice.
To confirm or refute this, you can create a new property and send data there in parallel, comparing how source identification works there.