From 453e5159a1e7f50bdf56fe7d1de1e051ecd8fb07 Mon Sep 17 00:00:00 2001 From: Kevin Franklin Kim Date: Wed, 15 May 2024 13:17:45 +0200 Subject: [PATCH] feat: add events --- README.md | 4 ++++ event/click.go | 12 ++++++++++++ event/filedownload.go | 12 ++++++++++++ event/formstart.go | 12 ++++++++++++ event/formsubmit.go | 12 ++++++++++++ event/params/addpaymentinfo.go | 14 +++++++++----- event/params/addshippinginfo.go | 14 +++++++++----- event/params/addtocart.go | 10 +++++++--- event/params/addtowishlist.go | 10 +++++++--- event/params/adimpression.go | 15 ++++++++++----- event/params/begincheckout.go | 12 ++++++++---- event/params/click.go | 9 +++++++++ event/params/filedownload.go | 10 ++++++++++ event/params/formstart.go | 7 +++++++ event/params/formsubmit.go | 8 ++++++++ event/params/generatelead.go | 8 ++++++-- event/params/purchase.go | 18 +++++++++++------- event/params/refund.go | 18 +++++++++++------- event/params/removefromcart.go | 10 +++++++--- event/params/scroll.go | 5 +++++ event/params/sessionstart.go | 3 +++ event/params/unlockarchievement.go | 6 +++--- event/params/userengagement.go | 5 +++++ event/params/videocomplete.go | 11 +++++++++++ event/params/videoprogress.go | 11 +++++++++++ event/params/videostart.go | 11 +++++++++++ event/params/viewcart.go | 10 +++++++--- event/params/viewitem.go | 10 +++++++--- event/scroll.go | 12 ++++++++++++ event/sessionstart.go | 12 ++++++++++++ event/unlockachievement.go | 12 ++++++++++++ event/unlockarchievement.go | 12 ------------ event/userengagement.go | 12 ++++++++++++ event/videocomplete.go | 12 ++++++++++++ event/videoprogress.go | 12 ++++++++++++ event/videostart.go | 12 ++++++++++++ eventname.go | 14 +++++++++++++- 37 files changed, 331 insertions(+), 66 deletions(-) create mode 100644 event/click.go create mode 100644 event/filedownload.go create mode 100644 event/formstart.go create mode 100644 event/formsubmit.go create mode 100644 event/params/click.go create mode 100644 event/params/filedownload.go create mode 100644 event/params/formstart.go create mode 100644 event/params/formsubmit.go create mode 100644 event/params/scroll.go create mode 100644 event/params/sessionstart.go create mode 100644 event/params/userengagement.go create mode 100644 event/params/videocomplete.go create mode 100644 event/params/videoprogress.go create mode 100644 event/params/videostart.go create mode 100644 event/scroll.go create mode 100644 event/sessionstart.go create mode 100644 event/unlockachievement.go delete mode 100644 event/unlockarchievement.go create mode 100644 event/userengagement.go create mode 100644 event/videocomplete.go create mode 100644 event/videoprogress.go create mode 100644 event/videostart.go diff --git a/README.md b/README.md index 7d4777a..1cc2b53 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,10 @@ > **Se**rver **S**ide T**a**g **M**anagement **S**ystem +## References + +- [Event naming rules](https://support.google.com/analytics/answer/13316687) + ## How to Contribute Make a pull request... diff --git a/event/click.go b/event/click.go new file mode 100644 index 0000000..87e61ad --- /dev/null +++ b/event/click.go @@ -0,0 +1,12 @@ +package event + +import ( + "github.com/foomo/sesamy-go" + "github.com/foomo/sesamy-go/event/params" +) + +type Click sesamy.Event[params.Click] + +func NewClick(p params.Click) Click { + return Click(sesamy.NewEvent(sesamy.EventNameClick, p)) +} diff --git a/event/filedownload.go b/event/filedownload.go new file mode 100644 index 0000000..53dfc9e --- /dev/null +++ b/event/filedownload.go @@ -0,0 +1,12 @@ +package event + +import ( + "github.com/foomo/sesamy-go" + "github.com/foomo/sesamy-go/event/params" +) + +type FileDownload sesamy.Event[params.FileDownload] + +func NewFileDownload(p params.FileDownload) FileDownload { + return FileDownload(sesamy.NewEvent(sesamy.EventNameFileDownload, p)) +} diff --git a/event/formstart.go b/event/formstart.go new file mode 100644 index 0000000..2975267 --- /dev/null +++ b/event/formstart.go @@ -0,0 +1,12 @@ +package event + +import ( + "github.com/foomo/sesamy-go" + "github.com/foomo/sesamy-go/event/params" +) + +type FormStart sesamy.Event[params.FormStart] + +func NewFormStart(p params.FormStart) FormStart { + return FormStart(sesamy.NewEvent(sesamy.EventNameFormStart, p)) +} diff --git a/event/formsubmit.go b/event/formsubmit.go new file mode 100644 index 0000000..9dd5f0d --- /dev/null +++ b/event/formsubmit.go @@ -0,0 +1,12 @@ +package event + +import ( + "github.com/foomo/sesamy-go" + "github.com/foomo/sesamy-go/event/params" +) + +type FormSubmit sesamy.Event[params.FormSubmit] + +func NewFormSubmit(p params.FormSubmit) FormSubmit { + return FormSubmit(sesamy.NewEvent(sesamy.EventNameFormSubmit, p)) +} diff --git a/event/params/addpaymentinfo.go b/event/params/addpaymentinfo.go index 2b76da8..6fd0b10 100644 --- a/event/params/addpaymentinfo.go +++ b/event/params/addpaymentinfo.go @@ -1,10 +1,14 @@ package params +import ( + "github.com/foomo/gostandards/iso4217" +) + // AddPaymentInfo https://developers.google.com/analytics/devguides/collection/protocol/ga4/reference/events type AddPaymentInfo[Item any] struct { - Currency string `json:"currency,omitempty"` - Value float64 `json:"value,omitempty"` - Coupon string `json:"coupon,omitempty"` - PaymentType string `json:"payment_type,omitempty"` - Items []Item `json:"items,omitempty"` + Currency iso4217.Currency `json:"currency,omitempty"` + Value float64 `json:"value,omitempty"` + Coupon string `json:"coupon,omitempty"` + PaymentType string `json:"payment_type,omitempty"` + Items []Item `json:"items,omitempty"` } diff --git a/event/params/addshippinginfo.go b/event/params/addshippinginfo.go index ae081ea..89d1c44 100644 --- a/event/params/addshippinginfo.go +++ b/event/params/addshippinginfo.go @@ -1,10 +1,14 @@ package params +import ( + "github.com/foomo/gostandards/iso4217" +) + // AddShippingInfo https://developers.google.com/analytics/devguides/collection/protocol/ga4/reference/events#add_shipping_info type AddShippingInfo[Item any] struct { - Currency string `json:"currency,omitempty"` - Value float64 `json:"value,omitempty"` - Coupon string `json:"coupon,omitempty"` - ShippingTier string `json:"shipping_tier,omitempty"` - Items []Item `json:"items,omitempty"` + Currency iso4217.Currency `json:"currency,omitempty"` + Value float64 `json:"value,omitempty"` + Coupon string `json:"coupon,omitempty"` + ShippingTier string `json:"shipping_tier,omitempty"` + Items []Item `json:"items,omitempty"` } diff --git a/event/params/addtocart.go b/event/params/addtocart.go index b747cfd..8898269 100644 --- a/event/params/addtocart.go +++ b/event/params/addtocart.go @@ -1,8 +1,12 @@ package params +import ( + "github.com/foomo/gostandards/iso4217" +) + // AddToCart https://developers.google.com/analytics/devguides/collection/protocol/ga4/reference/events#add_to_cart type AddToCart[Item any] struct { - Currency string `json:"currency,omitempty"` - Value float64 `json:"value,omitempty"` - Items []Item `json:"items,omitempty"` + Currency iso4217.Currency `json:"currency,omitempty"` + Value float64 `json:"value,omitempty"` + Items []Item `json:"items,omitempty"` } diff --git a/event/params/addtowishlist.go b/event/params/addtowishlist.go index 35850a4..c8372eb 100644 --- a/event/params/addtowishlist.go +++ b/event/params/addtowishlist.go @@ -1,8 +1,12 @@ package params +import ( + "github.com/foomo/gostandards/iso4217" +) + // AddToWishlist https://developers.google.com/analytics/devguides/collection/protocol/ga4/reference/events#add_to_wishlist type AddToWishlist[Item any] struct { - Currency string `json:"currency,omitempty"` - Value float64 `json:"value,omitempty"` - Items []Item `json:"items,omitempty"` + Currency iso4217.Currency `json:"currency,omitempty"` + Value float64 `json:"value,omitempty"` + Items []Item `json:"items,omitempty"` } diff --git a/event/params/adimpression.go b/event/params/adimpression.go index e68cd6e..f9f6237 100644 --- a/event/params/adimpression.go +++ b/event/params/adimpression.go @@ -1,10 +1,15 @@ package params +import ( + "github.com/foomo/gostandards/iso4217" +) + // AdImpression https://developers.google.com/analytics/devguides/collection/protocol/ga4/reference/events#ad_impression type AdImpression struct { - AdPlatform string `json:"ad_platform,omitempty" mapstructure:"ad_platform"` - AdSource string `json:"ad_source,omitempty" mapstructure:"ad_source"` - AdFormat string `json:"ad_format,omitempty" mapstructure:"ad_format"` - AdUnitName string `json:"ad_unit_name,omitempty" mapstructure:"ad_unit_name"` - Currency string `json:"currency,omitempty" mapstructure:"currency"` + AdPlatform string `json:"ad_platform,omitempty"` + AdSource string `json:"ad_source,omitempty"` + AdFormat string `json:"ad_format,omitempty"` + AdUnitName string `json:"ad_unit_name,omitempty"` + Currency iso4217.Currency `json:"currency,omitempty"` + Value float64 `json:"value,omitempty"` } diff --git a/event/params/begincheckout.go b/event/params/begincheckout.go index 2cbf15d..e6c88c9 100644 --- a/event/params/begincheckout.go +++ b/event/params/begincheckout.go @@ -1,9 +1,13 @@ package params +import ( + "github.com/foomo/gostandards/iso4217" +) + // BeginCheckout https://developers.google.com/analytics/devguides/collection/protocol/ga4/reference/events#begin_checkout type BeginCheckout[Item any] struct { - Currency string `json:"currency,omitempty"` - Value float64 `json:"value,omitempty"` - Coupon string `json:"coupon,omitempty"` - Items []Item `json:"items,omitempty"` + Currency iso4217.Currency `json:"currency,omitempty"` + Value float64 `json:"value,omitempty"` + Coupon string `json:"coupon,omitempty"` + Items []Item `json:"items,omitempty"` } diff --git a/event/params/click.go b/event/params/click.go new file mode 100644 index 0000000..75ffa4b --- /dev/null +++ b/event/params/click.go @@ -0,0 +1,9 @@ +package params + +type Click struct { + LinkClasses string `json:"link_classes,omitempty"` + LinkDomain string `json:"link_domain,omitempty"` + LinkID string `json:"link_id,omitempty"` + LinkURL string `json:"link_url,omitempty"` + Outbound bool `json:"outbound,omitempty"` +} diff --git a/event/params/filedownload.go b/event/params/filedownload.go new file mode 100644 index 0000000..0558c2a --- /dev/null +++ b/event/params/filedownload.go @@ -0,0 +1,10 @@ +package params + +type FileDownload struct { + FileExtension string `json:"file_extension,omitempty"` + FileName string `json:"file_name,omitempty"` + LinkClasses string `json:"link_classes,omitempty"` + LinkID string `json:"link_id,omitempty"` + LinkText string `json:"link_text,omitempty"` + LinkURL string `json:"link_url,omitempty"` +} diff --git a/event/params/formstart.go b/event/params/formstart.go new file mode 100644 index 0000000..d750c83 --- /dev/null +++ b/event/params/formstart.go @@ -0,0 +1,7 @@ +package params + +type FormStart struct { + FormID string `json:"form_id,omitempty"` + FormName string `json:"form_name,omitempty"` + FormDestination string `json:"form_destination,omitempty"` +} diff --git a/event/params/formsubmit.go b/event/params/formsubmit.go new file mode 100644 index 0000000..a5031fb --- /dev/null +++ b/event/params/formsubmit.go @@ -0,0 +1,8 @@ +package params + +type FormSubmit struct { + FormID string `json:"form_id,omitempty"` + FormName string `json:"form_name,omitempty"` + FormDestination string `json:"form_destination,omitempty"` + FormSubmitText string `json:"form_submit_text,omitempty"` +} diff --git a/event/params/generatelead.go b/event/params/generatelead.go index 3748fdc..f97c461 100644 --- a/event/params/generatelead.go +++ b/event/params/generatelead.go @@ -1,7 +1,11 @@ package params +import ( + "github.com/foomo/gostandards/iso4217" +) + // GenerateLead https://developers.google.com/analytics/devguides/collection/protocol/ga4/reference/events#generate_lead type GenerateLead struct { - Currency string `json:"currency,omitempty"` - Value float64 `json:"value,omitempty"` + Currency iso4217.Currency `json:"currency,omitempty"` + Value float64 `json:"value,omitempty"` } diff --git a/event/params/purchase.go b/event/params/purchase.go index 8c9bf83..d2441fd 100644 --- a/event/params/purchase.go +++ b/event/params/purchase.go @@ -1,12 +1,16 @@ package params +import ( + "github.com/foomo/gostandards/iso4217" +) + // Purchase https://developers.google.com/analytics/devguides/collection/protocol/ga4/reference/events#purchase type Purchase[Item any] struct { - Currency string `json:"currency,omitempty"` - Value float64 `json:"value,omitempty"` - TransactionID string `json:"transaction_id,omitempty"` - Coupon string `json:"coupon,omitempty"` - Shipping float64 `json:"shipping,omitempty"` - Tax float64 `json:"tax,omitempty"` - Items []Item `json:"items,omitempty"` + Currency iso4217.Currency `json:"currency,omitempty"` + Value float64 `json:"value,omitempty"` + TransactionID string `json:"transaction_id,omitempty"` + Coupon string `json:"coupon,omitempty"` + Shipping float64 `json:"shipping,omitempty"` + Tax float64 `json:"tax,omitempty"` + Items []Item `json:"items,omitempty"` } diff --git a/event/params/refund.go b/event/params/refund.go index 69c90c7..650d326 100644 --- a/event/params/refund.go +++ b/event/params/refund.go @@ -1,12 +1,16 @@ package params +import ( + "github.com/foomo/gostandards/iso4217" +) + // Refund https://developers.google.com/analytics/devguides/collection/protocol/ga4/reference/events#refund type Refund[Item any] struct { - Currency string `json:"currency,omitempty"` - Value float64 `json:"value,omitempty"` - TransactionID string `json:"transaction_id,omitempty"` - Coupon string `json:"coupon,omitempty"` - Shipping float64 `json:"shipping,omitempty"` - Tax float64 `json:"tax,omitempty"` - Items []Item `json:"items,omitempty"` + Currency iso4217.Currency `json:"currency,omitempty"` + Value float64 `json:"value,omitempty"` + TransactionID string `json:"transaction_id,omitempty"` + Coupon string `json:"coupon,omitempty"` + Shipping float64 `json:"shipping,omitempty"` + Tax float64 `json:"tax,omitempty"` + Items []Item `json:"items,omitempty"` } diff --git a/event/params/removefromcart.go b/event/params/removefromcart.go index eed3cf9..56f2acc 100644 --- a/event/params/removefromcart.go +++ b/event/params/removefromcart.go @@ -1,8 +1,12 @@ package params +import ( + "github.com/foomo/gostandards/iso4217" +) + // RemoveFromCart https://developers.google.com/analytics/devguides/collection/protocol/ga4/reference/events#remove_from_cart type RemoveFromCart[Item any] struct { - Currency string `json:"currency,omitempty"` - Value float64 `json:"value,omitempty"` - Items []Item `json:"items,omitempty"` + Currency iso4217.Currency `json:"currency,omitempty"` + Value float64 `json:"value,omitempty"` + Items []Item `json:"items,omitempty"` } diff --git a/event/params/scroll.go b/event/params/scroll.go new file mode 100644 index 0000000..1c7a658 --- /dev/null +++ b/event/params/scroll.go @@ -0,0 +1,5 @@ +package params + +type Scroll struct { + EngagementTimeMsec int64 `json:"engagement_time_msec,omitempty"` +} diff --git a/event/params/sessionstart.go b/event/params/sessionstart.go new file mode 100644 index 0000000..b67fabb --- /dev/null +++ b/event/params/sessionstart.go @@ -0,0 +1,3 @@ +package params + +type SessionStart struct{} diff --git a/event/params/unlockarchievement.go b/event/params/unlockarchievement.go index 3808ef1..4d0fd63 100644 --- a/event/params/unlockarchievement.go +++ b/event/params/unlockarchievement.go @@ -1,6 +1,6 @@ package params -// UnlockArchievement https://developers.google.com/analytics/devguides/collection/protocol/ga4/reference/events#unlock_achievement -type UnlockArchievement struct { - ArchievementName string `json:"archievement_name"` +// UnlockAchievement https://developers.google.com/analytics/devguides/collection/protocol/ga4/reference/events#unlock_achievement +type UnlockAchievement struct { + ArchievementID string `json:"achievement_id"` } diff --git a/event/params/userengagement.go b/event/params/userengagement.go new file mode 100644 index 0000000..3d30fe7 --- /dev/null +++ b/event/params/userengagement.go @@ -0,0 +1,5 @@ +package params + +type UserEngagement struct { + EngagementTimeMsec int64 `json:"engagement_time_msec,omitempty"` +} diff --git a/event/params/videocomplete.go b/event/params/videocomplete.go new file mode 100644 index 0000000..76f3acb --- /dev/null +++ b/event/params/videocomplete.go @@ -0,0 +1,11 @@ +package params + +type VideoComplete struct { + VideoCurrentTime int64 `json:"video_current_time,omitempty"` + VideoDuration int64 `json:"video_duration,omitempty"` + VideoPercent int64 `json:"video_percent,omitempty"` + VideoProvider string `json:"video_provider,omitempty"` + VideoTitle string `json:"video_title,omitempty"` + VideoURL string `json:"video_url,omitempty"` + Visible bool `json:"visible,omitempty"` +} diff --git a/event/params/videoprogress.go b/event/params/videoprogress.go new file mode 100644 index 0000000..4d79c18 --- /dev/null +++ b/event/params/videoprogress.go @@ -0,0 +1,11 @@ +package params + +type VideoProgress struct { + VideoCurrentTime int64 `json:"video_current_time,omitempty"` + VideoDuration int64 `json:"video_duration,omitempty"` + VideoPercent int64 `json:"video_percent,omitempty"` + VideoProvider string `json:"video_provider,omitempty"` + VideoTitle string `json:"video_title,omitempty"` + VideoURL string `json:"video_url,omitempty"` + Visible bool `json:"visible,omitempty"` +} diff --git a/event/params/videostart.go b/event/params/videostart.go new file mode 100644 index 0000000..096a39a --- /dev/null +++ b/event/params/videostart.go @@ -0,0 +1,11 @@ +package params + +type VideoStart struct { + VideoCurrentTime int64 `json:"video_current_time,omitempty"` + VideoDuration int64 `json:"video_duration,omitempty"` + VideoPercent int64 `json:"video_percent,omitempty"` + VideoProvider string `json:"video_provider,omitempty"` + VideoTitle string `json:"video_title,omitempty"` + VideoURL string `json:"video_url,omitempty"` + Visible bool `json:"visible,omitempty"` +} diff --git a/event/params/viewcart.go b/event/params/viewcart.go index 3f3d5fc..6087dc6 100644 --- a/event/params/viewcart.go +++ b/event/params/viewcart.go @@ -1,8 +1,12 @@ package params +import ( + "github.com/foomo/gostandards/iso4217" +) + // ViewCart https://developers.google.com/analytics/devguides/collection/protocol/ga4/reference/events#view_cart type ViewCart[Item any] struct { - Currency string `json:"currency,omitempty"` - Value float64 `json:"value,omitempty"` - Items []Item `json:"items,omitempty"` + Currency iso4217.Currency `json:"currency,omitempty"` + Value float64 `json:"value,omitempty"` + Items []Item `json:"items,omitempty"` } diff --git a/event/params/viewitem.go b/event/params/viewitem.go index 3a25649..804eac1 100644 --- a/event/params/viewitem.go +++ b/event/params/viewitem.go @@ -1,8 +1,12 @@ package params +import ( + "github.com/foomo/gostandards/iso4217" +) + // ViewItem https://developers.google.com/analytics/devguides/collection/protocol/ga4/reference/events#view_item type ViewItem[Item any] struct { - Currency string `json:"currency,omitempty"` - Value float64 `json:"value,omitempty"` - Items []Item `json:"items,omitempty"` + Currency iso4217.Currency `json:"currency,omitempty"` + Value float64 `json:"value,omitempty"` + Items []Item `json:"items,omitempty"` } diff --git a/event/scroll.go b/event/scroll.go new file mode 100644 index 0000000..360cf32 --- /dev/null +++ b/event/scroll.go @@ -0,0 +1,12 @@ +package event + +import ( + "github.com/foomo/sesamy-go" + "github.com/foomo/sesamy-go/event/params" +) + +type Scroll sesamy.Event[params.Scroll] + +func NewScroll(p params.Scroll) Scroll { + return Scroll(sesamy.NewEvent(sesamy.EventNameScroll, p)) +} diff --git a/event/sessionstart.go b/event/sessionstart.go new file mode 100644 index 0000000..533aa3a --- /dev/null +++ b/event/sessionstart.go @@ -0,0 +1,12 @@ +package event + +import ( + "github.com/foomo/sesamy-go" + "github.com/foomo/sesamy-go/event/params" +) + +type SessionStart sesamy.Event[params.SessionStart] + +func NewSessionStart(p params.SessionStart) SessionStart { + return SessionStart(sesamy.NewEvent(sesamy.EventNameSessionStart, p)) +} diff --git a/event/unlockachievement.go b/event/unlockachievement.go new file mode 100644 index 0000000..08ce838 --- /dev/null +++ b/event/unlockachievement.go @@ -0,0 +1,12 @@ +package event + +import ( + "github.com/foomo/sesamy-go" + "github.com/foomo/sesamy-go/event/params" +) + +type UnlockAchievement sesamy.Event[params.UnlockAchievement] + +func NewUnlockArchievement(p params.UnlockAchievement) UnlockAchievement { + return UnlockAchievement(sesamy.NewEvent(sesamy.EventNameUnlockArchievement, p)) +} diff --git a/event/unlockarchievement.go b/event/unlockarchievement.go deleted file mode 100644 index 9945593..0000000 --- a/event/unlockarchievement.go +++ /dev/null @@ -1,12 +0,0 @@ -package event - -import ( - "github.com/foomo/sesamy-go" - "github.com/foomo/sesamy-go/event/params" -) - -type UnlockArchievement sesamy.Event[params.UnlockArchievement] - -func NewUnlockArchievement(p params.UnlockArchievement) UnlockArchievement { - return UnlockArchievement(sesamy.NewEvent(sesamy.EventNameUnlockArchievement, p)) -} diff --git a/event/userengagement.go b/event/userengagement.go new file mode 100644 index 0000000..9f272dc --- /dev/null +++ b/event/userengagement.go @@ -0,0 +1,12 @@ +package event + +import ( + "github.com/foomo/sesamy-go" + "github.com/foomo/sesamy-go/event/params" +) + +type UserEngagement sesamy.Event[params.UserEngagement] + +func NewUserEngagement(p params.UserEngagement) UserEngagement { + return UserEngagement(sesamy.NewEvent(sesamy.EventNameUserEngagement, p)) +} diff --git a/event/videocomplete.go b/event/videocomplete.go new file mode 100644 index 0000000..4bfde47 --- /dev/null +++ b/event/videocomplete.go @@ -0,0 +1,12 @@ +package event + +import ( + "github.com/foomo/sesamy-go" + "github.com/foomo/sesamy-go/event/params" +) + +type VideoComplete sesamy.Event[params.VideoComplete] + +func NewVideoComplete(p params.VideoComplete) VideoComplete { + return VideoComplete(sesamy.NewEvent(sesamy.EventNameVideoComplete, p)) +} diff --git a/event/videoprogress.go b/event/videoprogress.go new file mode 100644 index 0000000..eab2a70 --- /dev/null +++ b/event/videoprogress.go @@ -0,0 +1,12 @@ +package event + +import ( + "github.com/foomo/sesamy-go" + "github.com/foomo/sesamy-go/event/params" +) + +type VideoProgress sesamy.Event[params.VideoProgress] + +func NewVideoProgress(p params.VideoProgress) VideoProgress { + return VideoProgress(sesamy.NewEvent(sesamy.EventNameVideoProgress, p)) +} diff --git a/event/videostart.go b/event/videostart.go new file mode 100644 index 0000000..d4d45e8 --- /dev/null +++ b/event/videostart.go @@ -0,0 +1,12 @@ +package event + +import ( + "github.com/foomo/sesamy-go" + "github.com/foomo/sesamy-go/event/params" +) + +type VideoStart sesamy.Event[params.VideoStart] + +func NewVideoStart(p params.VideoStart) VideoStart { + return VideoStart(sesamy.NewEvent(sesamy.EventNameVideoStart, p)) +} diff --git a/eventname.go b/eventname.go index e61fa16..596a8b7 100644 --- a/eventname.go +++ b/eventname.go @@ -2,16 +2,23 @@ package sesamy type EventName string +// List of standard events +// - [[GA4] Automatically collected events](https://support.google.com/analytics/answer/9234069 +// - [[GA4] Enhanced measurement events](https://support.google.com/analytics/answer/9216061) +// - [[GA4] Recommended events](https://support.google.com/analytics/answer/9267735) const ( + EventNameAdImpression EventName = "ad_impression" EventNameAddPaymentInfo EventName = "add_payment_info" EventNameAddShippingInfo EventName = "add_shipping_info" EventNameAddToCart EventName = "add_to_cart" EventNameAddToWishlist EventName = "add_to_wishlit" - EventNameAdImpression EventName = "ad_impression" EventNameBeginCheckout EventName = "begin_checkout" EventNameCampaignDetails EventName = "campaign_details" EventNameClick EventName = "click" EventNameEarnVirtualMoney EventName = "earn_virtual_money" + EventNameFileDownload EventName = "file_download" + EventNameFormStart EventName = "form_start" + EventNameFormSubmit EventName = "form_submit" EventNameGenerateLead EventName = "generate_lead" EventNameJoinGroup EventName = "join_group" EventNameLevelEnd EventName = "level_end" @@ -29,12 +36,17 @@ const ( EventNameSelectContent EventName = "select_content" EventNameSelectItem EventName = "select_item" EventNameSelectPromotion EventName = "select_promotion" + EventNameSessionStart EventName = "session_start" EventNameShare EventName = "share" EventNameSignUp EventName = "sign_up" EventNameSpendVirtualCurrency EventName = "spend_virtual_currency" EventNameTutorialBegin EventName = "tutorial_begin" EventNameTutorialComplete EventName = "tutorial_complete" EventNameUnlockArchievement EventName = "unlock_archievement" + EventNameUserEngagement EventName = "user_engagement" + EventNameVideoComplete EventName = "video_complete" + EventNameVideoProgress EventName = "video_progress" + EventNameVideoStart EventName = "video_start" EventNameViewCart EventName = "view_cart" EventNameViewItem EventName = "view_item" EventNameViewItemList EventName = "view_item_list"