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"
|
EventNameAddToCart EventName = "add_to_cart"
|
||||||
EventNameAddToWishlist EventName = "add_to_wishlit"
|
EventNameAddToWishlist EventName = "add_to_wishlit"
|
||||||
EventNameBeginCheckout EventName = "begin_checkout"
|
EventNameBeginCheckout EventName = "begin_checkout"
|
||||||
|
EventNameClick EventName = "click"
|
||||||
EventNameEarnVirtualMoney EventName = "earn_virtual_money"
|
EventNameEarnVirtualMoney EventName = "earn_virtual_money"
|
||||||
EventNameGenerateLead EventName = "generate_lead"
|
EventNameGenerateLead EventName = "generate_lead"
|
||||||
EventNameJoinGroup EventName = "join_group"
|
EventNameJoinGroup EventName = "join_group"
|
||||||
@ -15,10 +16,12 @@ const (
|
|||||||
EventNameLevelStart EventName = "level_start"
|
EventNameLevelStart EventName = "level_start"
|
||||||
EventNameLevelUp EventName = "level_up"
|
EventNameLevelUp EventName = "level_up"
|
||||||
EventNameLogin EventName = "login"
|
EventNameLogin EventName = "login"
|
||||||
|
EventNamePageView EventName = "page_view"
|
||||||
EventNamePostScore EventName = "post_score"
|
EventNamePostScore EventName = "post_score"
|
||||||
EventNamePurchase EventName = "purchase"
|
EventNamePurchase EventName = "purchase"
|
||||||
EventNameRefund EventName = "refund"
|
EventNameRefund EventName = "refund"
|
||||||
EventNameRemoveFromCart EventName = "remove_from_cart"
|
EventNameRemoveFromCart EventName = "remove_from_cart"
|
||||||
|
EventNameScroll EventName = "scroll"
|
||||||
EventNameSearch EventName = "search"
|
EventNameSearch EventName = "search"
|
||||||
EventNameSelectContent EventName = "select_content"
|
EventNameSelectContent EventName = "select_content"
|
||||||
EventNameSelectItem EventName = "select_item"
|
EventNameSelectItem EventName = "select_item"
|
||||||
|
|||||||
@ -18,6 +18,7 @@ const (
|
|||||||
EventParameterNumberShipping EventParameterNumber = "shipping"
|
EventParameterNumberShipping EventParameterNumber = "shipping"
|
||||||
// EventParameterNumberTax The tax cost associated with a transaction
|
// EventParameterNumberTax The tax cost associated with a transaction
|
||||||
EventParameterNumberTax EventParameterNumber = "tax"
|
EventParameterNumberTax EventParameterNumber = "tax"
|
||||||
|
EventParameterNumberPercentScrolled EventParameterNumber = "percent_scrolled"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (s EventParameterNumber) String() string {
|
func (s EventParameterNumber) String() string {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user