Java Tracker: network_userid


we are sending data via Java server side tracking and are setting the networkUserId and domainUserId to android adID and iOs IDFA. For our desktop app we don’t set either of the two ids for now. Still I can see an ID for networkUserID as you can see on the screenshot. Could you tell me if this is generated by the tracker?


Thanks Andreas

Hi @volderette,

network_userid is generated by collector and is being kept by 3rd party cookie, so this makes perfect sense to have it different for every single request form app (not storing 3rd party cookies) or Safari without 3rd party cookies enabled.

Thanks a lot @grzegorzewald, this makes total sense now!

To add to @grzegorzewald’s answer:

It’s correct that you’d expect that behaviour, I would make one picky correction that the network_userid is only a third party cookie where you’re setting it on a third party domain. It’s a first party cookie when you’re setting it on a first party domain - in other words if you own the domain you’re tracking in, Snowplow is a first party data collection tool and this ID can be configured as such.

The domain_userid is a client-side cookie set by the Javascript tracker.

@volderette some advice in your tracking setup - I recommend against using the network_userid or domain_userid fields for this. Doing that leaves you open to a data modeling logic nightmare whereby a column in your database represents two separate things - this goes against how we design Snowplow.

If you use our android and iOS trackers, you can enable the mobile context to automatically send IDFA & adID values. If that doesn’t meet your requirements I strongly recommend using a custom context to track this data - otherwise you’re creating a lot of work downstream in parsing out the defnition of a value on a per-row basis, and once you start to track on the web as well, this problem will become all the more painful.

Hope that’s helpful!