I'm currently experiencing something like a 90% difference between PPC clicks and GA4 reported devices. The only operating theory I have is that users are dropping off before Google Tag Manager loads the GA4 tag. The problem, of course, is that since those users drop off before being reported to GA, I don't know what device/browser they're using, so I can't even test what they're seeing to see if there's a problem causing them to go away.

I have full control over the system. It's running a theme I wrote on Wordpress, served from AWS EC2, and running Apache. I'm not expert at any of these things, but I'm happy to fiddle with Apache configs, or write WordPress plugins, or write and load some JavaScript, but I'm not sure what a) is easiest to implement, and b) is as early as possible such that I can capture this data before the user theoretically runs away.

How should I go about solving this?

  • PPC clicks as measured by the ad network? Some of those drop off before hitting your site at all. I.e. they hit the ad networks tracker but then not your server. Commented Jun 7, 2022 at 18:21
  • Yes, as measured by the "ad network", but the "network" in this case is direct PPC on Twitter. Commented Jun 7, 2022 at 18:22
  • Browser user agent is available on your server because it is sent as a HTTP header. Screen size is only available to JavaScript, so whatever you do may have the same limitations as GA4. Commented Jun 7, 2022 at 18:23
  • Hmm. So maybe do both? Even JS wouldn't be the same as GA4, which takes 100s of milliseconds to load. If I can write something tiny and load it in the header from the CDN, should be much faster than GA, no? Commented Jun 7, 2022 at 18:28
  • 2
    It could be faster, but you should probably start with the user agent data that probably already exists in your access logs. Commented Jun 7, 2022 at 18:36

1 Answer 1


First, I think what you should be looking at here is users, sessions, and engaged sessions x traffic from paid channels. You can drill that down by source to understand where exactly they're coming from. In your case, that sounds like Twitter.

How sessions are recorded in Google Analytics

enter image description here

The process from click to session ought to happen in seconds. However, if significant latency occurs at any of the checkpoints shown above, then you might see a reduced click/session ratio.


Step 1. Ensure Latency is not a problem

Look at your load times and the waterfall of your site on various connections. I'd expect Twitter traffic to be mostly mobile - so be sure to run tests while throttling your connection (LTE/4g ought to be ok).

Once you're sure it's not the website, check the server. Here's a nice article on tuning Nginx for improved TTFB/latency. Without the ability to see the config files, we'd just be taking shots in the dark.

Also, be sure to add ads-twitter.com that your CSP (assuming you have one).

Even before all of this, I would try inlining all of your tracking scripts/event snippets on your webpages. The only time I'd use Tag Manager for the actual placement of a script is if I didn't have the ability to place it directly on the site.

Do this for your GA4 scripts AND your Twitter Universal Website Tag.

Step 2. Troubleshoot your Twitter Conversion Tracking Tag

Below is a link to Twitters Tag Troubleshooting Guide, start there.


Twitter Pixel Helper is a nice Chrome Extension to validate that everything is working properly.

FYI With Twitter, Reported Conversions Can Change Over Time

Twitter reporting is finalized within 24-48 hours of when impressions are served. Before that time, we estimate data to provide real-time feedback, but the data is subject to change. The Twitter conversion reporting UI has two process pipelines to display data.

First, a streaming job directly collects page visits and purchase events from live log data and pulls metrics into reporting. Then, an ongoing batch process removes duplicate tag fires, adjusts conversion attributions, and handles identity merging for multi-device conversions.

Source: https://business.twitter.com/en/help/campaign-measurement-and-analytics/conversion-tracking-for-websites.html

^ See "Reported Conversions"

Step 3. Look at Twitter Ads Manager to Understand Performance

3rd party tracking tools might not reflect reality. It's possible that GA4 is getting something wrong. According to Twitter (same source as before):

Please note: third-party interfaces may not reflect the capabilities of our website tracking in Twitter Ads Manager, and they may only pertain to information collected by that third-party.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.