feat: add click, page_view and scroll events

This commit is contained in:
Kevin Franklin Kim 2024-04-29 14:24:50 +02:00
parent ce0e8e6d9d
commit 2f4880f505
No known key found for this signature in database
5 changed files with 65 additions and 1 deletions

View 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
}

View 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
}

View 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
}

View File

@ -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"

View File

@ -17,7 +17,8 @@ const (
// EventParameterNumberShipping The shipping cost associated with a transaction
EventParameterNumberShipping EventParameterNumber = "shipping"
// EventParameterNumberTax The tax cost associated with a transaction
EventParameterNumberTax EventParameterNumber = "tax"
EventParameterNumberTax EventParameterNumber = "tax"
EventParameterNumberPercentScrolled EventParameterNumber = "percent_scrolled"
)
func (s EventParameterNumber) String() string {