Difference in event count between GET and POST

Is there anyone tried to track snowplow event with both GET and POST method (in separate time period), but get huge difference in event count? using POST, the domain_userid count got around 10000 which aligned with GA one, but with GET, it can only get around 5000 which is half of the original count.

Is it expected or any reason behind? GET or POST is preferred for tracker?
(PS: i would like to use GET because POST did not support CookieBounce with FallbackNetworkUserId)

Version:
tracker - 2.14.0
Collector - 0.17.0rc4
Enrich: 0.22.0

No, GET and POST should end up with the similar numbers. The only difference in terms of implementation is that POST events can be batched when sent, rather than sending multiple single events as GET does. There are some other things to consider, could adblockers be blocking your specific GET but not the POST?
To really test this, you should set up two Snowplow trackers in parallel and run one with POST and one with GET. This should help you see what is going on with the events.

Generally, we find that POST is a more reliable technique as payloads can sometimes be quite large (if using multiple contexts for example) which isn’t that well suited to a query string as some browsers can’t deal with long URLs.

Thanks for your reply. I will further check if there is any GET request blocking under any firewall since do setup WAF in front of the collector server.

On the other hand, i just want to double confirm whether the cookieBounce feature with FallbackNetworkUserId only work for GET, but not for POST? thanks.

I think this is down to browser support as to whether cookie bounce works or not. It was initially designed for GET requests and I don’t believe all browsers support the redirects on POST.