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