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"),
|
MiddlewarProtocolVersion("2"),
|
||||||
MiddlewarDebug,
|
MiddlewarDebug,
|
||||||
MiddlewarClientID,
|
MiddlewarClientID,
|
||||||
|
MiddlewarSessionID(inst.measurementID),
|
||||||
MiddlewarDocument,
|
MiddlewarDocument,
|
||||||
)
|
)
|
||||||
return inst
|
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 {
|
func MiddlewarDocument(next ClientHandler) ClientHandler {
|
||||||
return func(r *http.Request, event *Event) error {
|
return func(r *http.Request, event *Event) error {
|
||||||
if referrer, err := url.Parse(r.Referer()); err != nil {
|
if referrer, err := url.Parse(r.Referer()); err != nil {
|
||||||
return err
|
return err
|
||||||
} else {
|
} else {
|
||||||
event.DocumentLocation = &referrer.Path
|
location := referrer.RequestURI()
|
||||||
|
event.DocumentLocation = &location
|
||||||
event.DocumentHostname = &referrer.Host
|
event.DocumentHostname = &referrer.Host
|
||||||
}
|
}
|
||||||
return next(r, event)
|
return next(r, event)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user