analytics: first_frame event, floats

This commit is contained in:
Nordup 2024-10-26 00:32:41 +04:00
parent 74e165b174
commit 6528dffe57
8 changed files with 43 additions and 29 deletions

View file

@ -17,13 +17,13 @@ func app_open() -> Dictionary:
return base("application_open")
func heartbeat(time_spend: int) -> Dictionary:
func heartbeat(time_spend: float) -> Dictionary:
var event = base("heartbeat")
event.time_spend = time_spend
return event
func app_exit(time_spend: int) -> Dictionary:
func app_exit(time_spend: float) -> Dictionary:
var event = base("application_exit")
event.time_spend = time_spend
return event
@ -43,14 +43,21 @@ func gate_open(url: String) -> Dictionary:
return event
func gate_enter(url: String, download_time: int) -> Dictionary:
func gate_enter(url: String, download_time: float) -> Dictionary:
var event = base("gate_enter")
event.gate_url = url
event.download_time = download_time
return event
func gate_exit(url: String, time_spend: int) -> Dictionary:
func first_frame(url: String, loading_time: float) -> Dictionary:
var event = base("first_frame")
event.gate_url = url
event.loading_time = loading_time
return event
func gate_exit(url: String, time_spend: float) -> Dictionary:
var event = base("gate_exit")
event.gate_url = url
event.time_spend = time_spend

View file

@ -26,12 +26,12 @@ func start_heartbeat() -> void:
func send_hearbeat() -> void:
var time_spend = int(Time.get_ticks_msec() / 1000)
var time_spend = float(Time.get_ticks_msec()) / 1000
analytics.send_event(AnalyticsEvents.heartbeat(time_spend))
func _exit_tree() -> void:
# Save to send on open
var time_spend = int(Time.get_ticks_msec() / 1000)
var time_spend = float(Time.get_ticks_msec()) / 1000
var event = AnalyticsEvents.app_exit(time_spend)
DataSaver.set_value("analytics", "app_exit", JSON.stringify(event))

View file

@ -3,7 +3,8 @@ class_name AnalyticsSenderGate
@export var gate_events: GateEvents
var gate_open_time: int
var gate_open_tick: int
var gate_enter_tick: int
var gate_url: String
@ -13,6 +14,7 @@ func start() -> void:
gate_events.search.connect(send_search)
gate_events.open_gate.connect(send_gate_open)
gate_events.gate_entered.connect(send_gate_enter)
gate_events.first_frame.connect(send_first_frame)
gate_events.exit_gate.connect(send_gate_exit)
# Send latest exit event
@ -23,29 +25,34 @@ func start() -> void:
func send_search(query: String) -> void:
if not gate_url.is_empty(): send_gate_exit()
send_gate_exit()
analytics.send_event(AnalyticsEvents.search(query))
func send_gate_open(url: String) -> void:
if not gate_url.is_empty(): send_gate_exit()
send_gate_exit()
gate_url = url
gate_open_time = int(Time.get_ticks_msec() / 1000)
gate_open_tick = Time.get_ticks_msec()
analytics.send_event(AnalyticsEvents.gate_open(url))
func send_gate_enter() -> void:
var download_time = int(Time.get_ticks_msec() / 1000) - gate_open_time
gate_open_time = int(Time.get_ticks_msec() / 1000)
var download_time = get_delta_sec(gate_open_tick)
gate_enter_tick = Time.get_ticks_msec()
analytics.send_event(AnalyticsEvents.gate_enter(gate_url, download_time))
func send_first_frame() -> void:
var loading_time = get_delta_sec(gate_enter_tick)
analytics.send_event(AnalyticsEvents.first_frame(gate_url, loading_time))
func send_gate_exit() -> void:
if gate_url.is_empty(): return
var time_spend = int(Time.get_ticks_msec() / 1000) - gate_open_time
var time_spend = get_delta_sec(gate_open_tick)
analytics.send_event(AnalyticsEvents.gate_exit(gate_url, time_spend))
gate_url = ""
@ -54,6 +61,10 @@ func _exit_tree() -> void:
if gate_url.is_empty(): return
# Save to send on open
var time_spend = int(Time.get_ticks_msec() / 1000) - gate_open_time
var time_spend = get_delta_sec(gate_open_tick)
var event = AnalyticsEvents.gate_exit(gate_url, time_spend)
DataSaver.set_value("analytics", "send_gate_exit", JSON.stringify(event))
func get_delta_sec(from_msec: int) -> float:
return float(Time.get_ticks_msec() - from_msec) / 1000