80 lines
2.3 KiB
Forth
80 lines
2.3 KiB
Forth
module Degenz.Analytics
|
|
|
|
open Mixpanel
|
|
|
|
let private mix = MixpanelClient(GuildEnvironment.tokenMixpanel)
|
|
|
|
let private track eventName id data =
|
|
let map =
|
|
[ "distinct_id" , box id
|
|
"guild_id" , box GuildEnvironment.guildId
|
|
"env" , box GuildEnvironment.environment ]
|
|
mix.TrackAsync(eventName, data @ map |> dict) |> Async.AwaitTask |> Async.Ignore
|
|
|
|
let invitedUserEntered inviteCode inviterId inviteeId inviterName inviteeName =
|
|
let data = [
|
|
"user_display_name" , inviterName
|
|
"invite_code" , inviteCode
|
|
"invitee_id" , inviteeId
|
|
"invitee_name" , inviteeName
|
|
]
|
|
track "Invited User Entered" inviterId data
|
|
|
|
let invitedUserAccepted inviteCode inviterId inviteeId inviterName inviteeName =
|
|
let data = [
|
|
"user_display_name" , inviterName
|
|
"invite_code" , inviteCode
|
|
"invitee_id" , inviteeId
|
|
"invitee_name" , inviteeName
|
|
]
|
|
track "Invited User Accepted" inviterId data
|
|
|
|
let recruitCommand origin id name channelId channelName =
|
|
let data = [
|
|
"user_display_name" , name
|
|
"origin" , origin
|
|
"channel_id" , channelId
|
|
"channel_name" , channelName
|
|
]
|
|
track "Recruit Command Invoked" id data
|
|
|
|
let recruitLinkButton inviteCode id name channelId channelName =
|
|
let data = [
|
|
"user_display_name" , name
|
|
"invite_code" , inviteCode
|
|
"channel_id" , channelId
|
|
"channel_name" , channelName
|
|
]
|
|
track "Recruited Command Invoked" id data
|
|
|
|
let recruitedCommand totalUsers id name channelId channelName =
|
|
let data = [
|
|
"user_display_name" , name
|
|
"total_users_at_the_time" , totalUsers
|
|
"channel_id" , channelId
|
|
"channel_name" , channelName
|
|
]
|
|
track "Recruited Command Invoked" id data
|
|
|
|
let whiteListButton availability id name =
|
|
let data = [
|
|
"user_display_name" , name
|
|
"availability" , availability
|
|
]
|
|
track "Recruited Command Invoked" id data
|
|
|
|
let whiteListPurchased amount id name =
|
|
let data = [
|
|
"user_display_name" , name
|
|
"purchase_amount" , amount
|
|
]
|
|
track "Recruited Command Invoked" id data
|
|
|
|
let trainingDojoStep step id name =
|
|
let data = [
|
|
"user_display_name" , name
|
|
"step" , step
|
|
]
|
|
track "Recruited Command Invoked" id data
|
|
|