thegates/app/scripts/api/analytics/analytics_events.gd

126 lines
2.4 KiB
GDScript

extends Node
#class_name AnalyticsEvents
var user_id := "none"
var app_version := "none"
var app_version_code := -1
func base(event_name: String) -> Dictionary:
var event = {}
event.user_id = user_id
event.event_name = event_name
event.app_version = app_version
event.app_version_code = app_version_code
return event
# APP
func app_open() -> Dictionary:
return base("application_open")
func heartbeat(time_spent: float) -> Dictionary:
var event = base("heartbeat")
event.time_spent = time_spent
return event
func app_exit(time_spent: float) -> Dictionary:
var event = base("application_exit")
event.time_spent = time_spent
return event
# SEARCH
func search(query: String) -> Dictionary:
var event = base("search")
event.query = query
return event
# GATE
func base_gate(event_name: String, url: String) -> Dictionary:
var event = base(event_name)
if url.contains("?"):
var split = url.split("?", true, 1)
event.gate_url = split[0]
event.query_string = split[1]
else:
event.gate_url = url
return event
func gate_open(url: String) -> Dictionary:
return base_gate("gate_open", url)
func gate_load(url: String, download_time: float) -> Dictionary:
var event = base_gate("gate_load", url)
event.download_time = download_time
return event
func gate_start(url: String, bootup_time: float) -> Dictionary:
var event = base_gate("gate_start", url)
event.bootup_time = bootup_time
return event
func gate_exit(url: String, time_spent: float) -> Dictionary:
var event = base_gate("gate_exit", url)
event.time_spent = time_spent
return event
# BOOKMARK
func bookmark(url: String) -> Dictionary:
return base_gate("bookmark", url)
func unbookmark(url: String) -> Dictionary:
return base_gate("unbookmark", url)
# ERROR
func error(msg: String) -> Dictionary:
var event = base("error")
event.msg = msg
return event
# ONBOARDING
func onboarding_started() -> Dictionary:
return base("onboarding_started")
func onboarding_finished(time_spent: float) -> Dictionary:
var event = base("onboarding_finished")
event.time_spent = time_spent
return event
# AFK
func enter_afk() -> Dictionary:
return base("enter_afk")
func leave_afk(time_spent: float) -> Dictionary:
var event = base("leave_afk")
event.time_spent = time_spent
return event
# LINK
func open_link(url: String) -> Dictionary:
var event = base("open_link")
event.url = url
return event