The GA Measurement Protocol docs say that uid and cid are interchangeable user identifiers, that uid can be any text format, and cid must be a uuid. This is why I went with uid, not cid.
It turns out that uid isn't an equivalent unique identifier: if cid isn't sent along with Event pings, GA thinks an application has just one user for all pings. Switching back to cid correctly differentiates between separate browser sessions.
For right now, probably best to fix with a patch-level change (non-breaking API change), but need to update the docs to be clear about the details.
The GA Measurement Protocol docs say that
uid
andcid
are interchangeable user identifiers, thatuid
can be any text format, andcid
must be a uuid. This is why I went withuid
, notcid
.It turns out that
uid
isn't an equivalent unique identifier: ifcid
isn't sent along withEvent
pings, GA thinks an application has just one user for all pings. Switching back tocid
correctly differentiates between separate browser sessions.For right now, probably best to fix with a patch-level change (non-breaking API change), but need to update the docs to be clear about the details.