Purpose
See the complete customer journey of our users
Actual configuration
- Snowplow JavaScript Tracker v2.12.0 (implemented through Google Tag Manager)
- CustomTask for Google Analytics Events
- Snowplow Scala Stream PubSub Collector v1.0.1
- Snowplow Scala Enricher
- Snowplow BigQuery Loader v0.5.1
Explored paths
1. Snowplow network_userid
transmitted in payload
As seen in the Snowplow documentation, the AcceptedQueryParameters
show that the Scala Adapter accepts the nuid
variable.
Therefore, we tried to transmit that variable in the payload itself. That did not work - transmitted as a query parameter, the network_userid
is to be seen in the BigQuery Table.
Unfortunately, the network_userid
cannot be loaded as a Javascript variable. Since the cookie, where the network_userid
is to be found, is set in HttpOnly and secure and we believe that this makes our setup more robust against mechanisms that try to protect the users privacy and might accidentally block our legit measuring in their efforts.
2. Snowplow domain_userid
transmitted in payload
Same principle than the one with the network_userid
.
Unfortunately, the domain_userid
variable is not accepted by the Scala Adapter. We do not know if editing the code of the GoogleAnalyticsAdapter.scala would:
- help us populating the Google Analytics events with the
domain_userid
in the Google BigQuery table. - have consequences on our existing configuration.
3. Snowplow Cookie x2
Based on path #1, the Scala stream collector would not only set the httpOnly cookie but a second identical one, which does not have an httpOnly header. Therefore, the cookie would also be readable from the customTask and could be added as parameter to the Google Analytics Snowplow payload.
Do you have any thoughts and/or ideas on these paths?
In case, weβd find the solution on our own, we would of course add that to this thread.