mirror of
https://github.com/foomo/sesamy-go.git
synced 2025-10-16 12:35:43 +00:00
feat: add click, page_view and scroll events
This commit is contained in:
parent
ce0e8e6d9d
commit
2f4880f505
27
measurementprotocol/v2/event/click.go
Normal file
27
measurementprotocol/v2/event/click.go
Normal file
@ -0,0 +1,27 @@
|
||||
package event
|
||||
|
||||
import (
|
||||
mp "github.com/foomo/sesamy-go/measurementprotocol"
|
||||
mpv2 "github.com/foomo/sesamy-go/measurementprotocol/v2"
|
||||
)
|
||||
|
||||
type Click struct {
|
||||
LinkID string `json:"linkId,omitempty"`
|
||||
LinkURL string `json:"link_url,omitempty"`
|
||||
LinkDomain string `json:"link_domain,omitempty"`
|
||||
LinkClasses string `json:"link_classes,omitempty"`
|
||||
Outbound bool `json:"outbound,omitempty"`
|
||||
}
|
||||
|
||||
func (e *Click) MarshalMPv2() (*mpv2.Event, error) {
|
||||
eventParameter := map[string]string{}
|
||||
mp.AddStringMap(eventParameter, mpv2.EventParameterLinkID.String(), mp.SetString(e.LinkID))
|
||||
mp.AddStringMap(eventParameter, mpv2.EventParameterLinkUrl.String(), mp.SetString(e.LinkURL))
|
||||
mp.AddStringMap(eventParameter, mpv2.EventParameterLinkDomain.String(), mp.SetString(e.LinkDomain))
|
||||
mp.AddStringMap(eventParameter, mpv2.EventParameterLinkClasses.String(), mp.SetString(e.LinkClasses))
|
||||
mp.AddStringMap(eventParameter, mpv2.EventParameterOutbound.String(), mp.SetBool(e.Outbound))
|
||||
return &mpv2.Event{
|
||||
EventName: mp.Set(mpv2.EventNameClick),
|
||||
EventParameter: mp.SetStringMap(eventParameter),
|
||||
}, nil
|
||||
}
|
||||
14
measurementprotocol/v2/event/pageview.go
Normal file
14
measurementprotocol/v2/event/pageview.go
Normal file
@ -0,0 +1,14 @@
|
||||
package event
|
||||
|
||||
import (
|
||||
mp "github.com/foomo/sesamy-go/measurementprotocol"
|
||||
mpv2 "github.com/foomo/sesamy-go/measurementprotocol/v2"
|
||||
)
|
||||
|
||||
type PageView struct{}
|
||||
|
||||
func (e *PageView) MarshalMPv2() (*mpv2.Event, error) {
|
||||
return &mpv2.Event{
|
||||
EventName: mp.Set(mpv2.EventNamePageView),
|
||||
}, nil
|
||||
}
|
||||
19
measurementprotocol/v2/event/scroll.go
Normal file
19
measurementprotocol/v2/event/scroll.go
Normal file
@ -0,0 +1,19 @@
|
||||
package event
|
||||
|
||||
import (
|
||||
mp "github.com/foomo/sesamy-go/measurementprotocol"
|
||||
mpv2 "github.com/foomo/sesamy-go/measurementprotocol/v2"
|
||||
)
|
||||
|
||||
type Scroll struct {
|
||||
PercentScrolled float64 `json:"percent_scrolled"`
|
||||
}
|
||||
|
||||
func (e *Scroll) MarshalMPv2() (*mpv2.Event, error) {
|
||||
eventParameterNumber := map[string]string{}
|
||||
mp.AddStringMap(eventParameterNumber, mpv2.EventParameterNumberPercentScrolled.String(), mp.SetFloat64(e.PercentScrolled))
|
||||
return &mpv2.Event{
|
||||
EventName: mp.Set(mpv2.EventNameScroll),
|
||||
EventParameterNumber: mp.SetStringMap(eventParameterNumber),
|
||||
}, nil
|
||||
}
|
||||
@ -8,6 +8,7 @@ const (
|
||||
EventNameAddToCart EventName = "add_to_cart"
|
||||
EventNameAddToWishlist EventName = "add_to_wishlit"
|
||||
EventNameBeginCheckout EventName = "begin_checkout"
|
||||
EventNameClick EventName = "click"
|
||||
EventNameEarnVirtualMoney EventName = "earn_virtual_money"
|
||||
EventNameGenerateLead EventName = "generate_lead"
|
||||
EventNameJoinGroup EventName = "join_group"
|
||||
@ -15,10 +16,12 @@ const (
|
||||
EventNameLevelStart EventName = "level_start"
|
||||
EventNameLevelUp EventName = "level_up"
|
||||
EventNameLogin EventName = "login"
|
||||
EventNamePageView EventName = "page_view"
|
||||
EventNamePostScore EventName = "post_score"
|
||||
EventNamePurchase EventName = "purchase"
|
||||
EventNameRefund EventName = "refund"
|
||||
EventNameRemoveFromCart EventName = "remove_from_cart"
|
||||
EventNameScroll EventName = "scroll"
|
||||
EventNameSearch EventName = "search"
|
||||
EventNameSelectContent EventName = "select_content"
|
||||
EventNameSelectItem EventName = "select_item"
|
||||
|
||||
@ -18,6 +18,7 @@ const (
|
||||
EventParameterNumberShipping EventParameterNumber = "shipping"
|
||||
// EventParameterNumberTax The tax cost associated with a transaction
|
||||
EventParameterNumberTax EventParameterNumber = "tax"
|
||||
EventParameterNumberPercentScrolled EventParameterNumber = "percent_scrolled"
|
||||
)
|
||||
|
||||
func (s EventParameterNumber) String() string {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user