discord-bot-game/Bot/Analytics.fs
2022-03-31 14:18:53 +07:00

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