Skip to content

Commit

Permalink
feat: add click, page_view and scroll events
Browse files Browse the repository at this point in the history
  • Loading branch information
franklinkim committed Apr 29, 2024
1 parent ce0e8e6 commit 2f4880f
Show file tree
Hide file tree
Showing 5 changed files with 65 additions and 1 deletion.
27 changes: 27 additions & 0 deletions measurementprotocol/v2/event/click.go
Original file line number Diff line number Diff line change
@@ -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 changes: 14 additions & 0 deletions measurementprotocol/v2/event/pageview.go
Original file line number Diff line number Diff line change
@@ -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 changes: 19 additions & 0 deletions measurementprotocol/v2/event/scroll.go
Original file line number Diff line number Diff line change
@@ -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
}
3 changes: 3 additions & 0 deletions measurementprotocol/v2/eventname.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,20 @@ 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"
EventNameLevelEnd EventName = "level_end"
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"
Expand Down
3 changes: 2 additions & 1 deletion measurementprotocol/v2/eventparamternumber.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down

0 comments on commit 2f4880f

Please sign in to comment.