mirror of
https://github.com/foomo/sesamy-go.git
synced 2025-10-16 12:35:43 +00:00
feat: add session id
This commit is contained in:
parent
14ce26b622
commit
131c7f3f87
@ -78,6 +78,7 @@ func NewClient(l *zap.Logger, host, trackingID string, opts ...ClientOption) *Cl
|
||||
MiddlewarProtocolVersion("2"),
|
||||
MiddlewarDebug,
|
||||
MiddlewarClientID,
|
||||
MiddlewarSessionID(inst.measurementID),
|
||||
MiddlewarDocument,
|
||||
)
|
||||
return inst
|
||||
|
||||
@ -61,12 +61,26 @@ func MiddlewarClientID(next ClientHandler) ClientHandler {
|
||||
}
|
||||
}
|
||||
|
||||
func MiddlewarSessionID(measurementID string) ClientMiddleware {
|
||||
return func(next ClientHandler) ClientHandler {
|
||||
return func(r *http.Request, event *Event) error {
|
||||
if value, _ := r.Cookie("_ga_" + measurementID); value != nil {
|
||||
if value := strings.Split(strings.TrimPrefix(value.Value, "GA1.1."), "."); len(value) > 0 {
|
||||
event.SessionID = &value[0]
|
||||
}
|
||||
}
|
||||
return next(r, event)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func MiddlewarDocument(next ClientHandler) ClientHandler {
|
||||
return func(r *http.Request, event *Event) error {
|
||||
if referrer, err := url.Parse(r.Referer()); err != nil {
|
||||
return err
|
||||
} else {
|
||||
event.DocumentLocation = &referrer.Path
|
||||
location := referrer.RequestURI()
|
||||
event.DocumentLocation = &location
|
||||
event.DocumentHostname = &referrer.Host
|
||||
}
|
||||
return next(r, event)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user