mirror of
https://github.com/thegatesbrowser/thegates.git
synced 2025-08-22 23:17:26 -04:00
onboarding events
This commit is contained in:
parent
6b383dad34
commit
42a170687d
8 changed files with 67 additions and 23 deletions
|
@ -12,7 +12,7 @@ config_version=5
|
|||
|
||||
config/name="TheGates"
|
||||
config/description="Building new Internet"
|
||||
config/version="0.16.0"
|
||||
config/version="0.16.1"
|
||||
config/tags=PackedStringArray("thegates")
|
||||
run/main_scene="res://scenes/app.tscn"
|
||||
run/enable_alt_space_menu=true
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
[gd_scene load_steps=18 format=3 uid="uid://ct8gsph3wnepl"]
|
||||
[gd_scene load_steps=20 format=3 uid="uid://ct8gsph3wnepl"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/app.gd" id="1_skc7d"]
|
||||
[ext_resource type="Resource" uid="uid://b1xvdym0qh6td" path="res://resources/gate_events.res" id="2_cdryv"]
|
||||
|
@ -16,7 +16,9 @@
|
|||
[ext_resource type="Script" path="res://scripts/api/discover_gate.gd" id="13_3xhql"]
|
||||
[ext_resource type="Script" path="res://scripts/api/analytics/analytics_sender_bookmark.gd" id="13_74yg1"]
|
||||
[ext_resource type="Script" path="res://scripts/api/analytics/analytics_sender_gate.gd" id="13_jout6"]
|
||||
[ext_resource type="Script" path="res://scripts/api/analytics/analytics_sender_onboarding.gd" id="15_a11br"]
|
||||
[ext_resource type="Script" path="res://scripts/api/featured_gates.gd" id="15_c1fxl"]
|
||||
[ext_resource type="Resource" uid="uid://crjhix0osmtnf" path="res://resources/ui_events.res" id="16_6u24i"]
|
||||
|
||||
[node name="App" type="Node" node_paths=PackedStringArray("scenes_root")]
|
||||
script = ExtResource("1_skc7d")
|
||||
|
@ -57,6 +59,10 @@ gate_events = ExtResource("2_cdryv")
|
|||
script = ExtResource("13_74yg1")
|
||||
bookmarks = ExtResource("6_rupvx")
|
||||
|
||||
[node name="SenderOnboarding" type="Node" parent="Api/Analytics"]
|
||||
script = ExtResource("15_a11br")
|
||||
ui_events = ExtResource("16_6u24i")
|
||||
|
||||
[node name="DiscoverGate" type="Node" parent="Api"]
|
||||
script = ExtResource("13_3xhql")
|
||||
api = ExtResource("10_04o5h")
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
extends Node
|
||||
class_name Analitycs
|
||||
class_name Analytics
|
||||
|
||||
signal analytics_ready
|
||||
|
||||
|
@ -12,6 +12,15 @@ func _ready() -> void:
|
|||
analytics_ready.emit()
|
||||
|
||||
|
||||
func send_event(body: Dictionary = {}) -> void:
|
||||
var url = api.analytics_event
|
||||
var callback = func(_result, code, _headers, _body):
|
||||
if code != 200: Debug.logclr("Request send_event failed. Code " + str(code), Color.RED)
|
||||
|
||||
var err = await Backend.request(url, callback, body, HTTPClient.METHOD_POST)
|
||||
if err != HTTPRequest.RESULT_SUCCESS: Debug.logclr("Cannot send request send_event", Color.RED)
|
||||
|
||||
|
||||
func get_app_version() -> void:
|
||||
AnalyticsEvents.app_version = ProjectSettings.get_setting("application/config/version")
|
||||
|
||||
|
@ -32,10 +41,5 @@ func get_user_id() -> void:
|
|||
if err != HTTPRequest.RESULT_SUCCESS: Debug.logclr("Cannot send request create_user_id", Color.RED)
|
||||
|
||||
|
||||
func send_event(body: Dictionary = {}) -> void:
|
||||
var url = api.analytics_event
|
||||
var callback = func(_result, code, _headers, _body):
|
||||
if code != 200: Debug.logclr("Request send_event failed. Code " + str(code), Color.RED)
|
||||
|
||||
var err = await Backend.request(url, callback, body, HTTPClient.METHOD_POST)
|
||||
if err != HTTPRequest.RESULT_SUCCESS: Debug.logclr("Cannot send request send_event", Color.RED)
|
||||
static func get_delta_sec_from_tick(from_tick: int) -> float:
|
||||
return float(Time.get_ticks_msec() - from_tick) / 1000
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
extends Node
|
||||
#class_name AnalyticsEvents
|
||||
|
||||
var user_id := "none"
|
||||
var app_version := "none"
|
||||
var user_id := "none"
|
||||
|
||||
|
||||
func base(event_name: String) -> Dictionary:
|
||||
var event = {}
|
||||
event.event_name = event_name
|
||||
event.user_id = user_id
|
||||
event.app_version = app_version
|
||||
event.user_id = user_id
|
||||
return event
|
||||
|
||||
|
||||
|
@ -86,3 +86,15 @@ 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_spend: float) -> Dictionary:
|
||||
var event = base("onboarding_finished")
|
||||
event.time_spend = time_spend
|
||||
return event
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
extends Node
|
||||
class_name AnalyticsSender
|
||||
|
||||
var analytics: Analitycs
|
||||
var analytics: Analytics
|
||||
|
||||
|
||||
func _enter_tree() -> void:
|
||||
|
|
|
@ -26,12 +26,12 @@ func start_heartbeat() -> void:
|
|||
|
||||
|
||||
func send_hearbeat() -> void:
|
||||
var time_spend = float(Time.get_ticks_msec()) / 1000
|
||||
var time_spend = Analytics.get_delta_sec_from_tick(0)
|
||||
analytics.send_event(AnalyticsEvents.heartbeat(time_spend))
|
||||
|
||||
|
||||
func _exit_tree() -> void:
|
||||
# Save to send on open
|
||||
var time_spend = float(Time.get_ticks_msec()) / 1000
|
||||
var time_spend = Analytics.get_delta_sec_from_tick(0)
|
||||
var event = AnalyticsEvents.app_exit(time_spend)
|
||||
DataSaver.set_value("analytics", "app_exit", JSON.stringify(event))
|
||||
|
|
|
@ -39,14 +39,14 @@ func send_gate_open(url: String) -> void:
|
|||
|
||||
|
||||
func send_gate_load() -> void:
|
||||
var download_time = get_delta_sec(gate_open_tick)
|
||||
var download_time = Analytics.get_delta_sec_from_tick(gate_open_tick)
|
||||
gate_load_tick = Time.get_ticks_msec()
|
||||
analytics.send_event(AnalyticsEvents.gate_load(gate_url, download_time))
|
||||
Debug.logclr("Download time: %.3f" % [download_time], Color.AQUAMARINE)
|
||||
|
||||
|
||||
func send_gate_start() -> void:
|
||||
var bootup_time = get_delta_sec(gate_load_tick)
|
||||
var bootup_time = Analytics.get_delta_sec_from_tick(gate_load_tick)
|
||||
analytics.send_event(AnalyticsEvents.gate_start(gate_url, bootup_time))
|
||||
Debug.logclr("Bootup time: %.3f" % [bootup_time], Color.AQUAMARINE)
|
||||
|
||||
|
@ -54,7 +54,7 @@ func send_gate_start() -> void:
|
|||
func send_gate_exit() -> void:
|
||||
if gate_url.is_empty(): return
|
||||
|
||||
var time_spend = get_delta_sec(gate_open_tick)
|
||||
var time_spend = Analytics.get_delta_sec_from_tick(gate_open_tick)
|
||||
analytics.send_event(AnalyticsEvents.gate_exit(gate_url, time_spend))
|
||||
gate_url = ""
|
||||
|
||||
|
@ -63,10 +63,6 @@ func _exit_tree() -> void:
|
|||
if gate_url.is_empty(): return
|
||||
|
||||
# Save to send on open
|
||||
var time_spend = get_delta_sec(gate_open_tick)
|
||||
var time_spend = Analytics.get_delta_sec_from_tick(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
|
||||
|
|
26
app/scripts/api/analytics/analytics_sender_onboarding.gd
Normal file
26
app/scripts/api/analytics/analytics_sender_onboarding.gd
Normal file
|
@ -0,0 +1,26 @@
|
|||
extends AnalyticsSender
|
||||
class_name AnalyticsSenderOnboarding
|
||||
|
||||
@export var ui_events: UiEvents
|
||||
|
||||
var onboarding_started_tick: int
|
||||
|
||||
|
||||
func start() -> void:
|
||||
super.start()
|
||||
|
||||
ui_events.onboarding_started.connect(send_onboarding_started)
|
||||
ui_events.onboarding_finished.connect(send_onboarding_finished)
|
||||
|
||||
if ui_events.is_onboarding_started:
|
||||
send_onboarding_started()
|
||||
|
||||
|
||||
func send_onboarding_started() -> void:
|
||||
onboarding_started_tick = Time.get_ticks_msec()
|
||||
analytics.send_event(AnalyticsEvents.onboarding_started())
|
||||
|
||||
|
||||
func send_onboarding_finished() -> void:
|
||||
var time_spend = Analytics.get_delta_sec_from_tick(onboarding_started_tick)
|
||||
analytics.send_event(AnalyticsEvents.onboarding_finished(time_spend))
|
Loading…
Add table
Add a link
Reference in a new issue