98e40dac97
CLI Smoke Test / smoke-test-linux (20) (push) Has been cancelled
CLI Smoke Test / smoke-test-linux (24) (push) Has been cancelled
CLI Smoke Test / smoke-test-windows (20) (push) Has been cancelled
CLI Smoke Test / smoke-test-windows (24) (push) Has been cancelled
Expo App TypeScript typecheck / typecheck (push) Has been cancelled
3.8 KiB
3.8 KiB
Product Analytics
[auto]
Navigation
- $screen
- $screen_name
Lifecycle
- Application Installed
- Application Updated
- previous_version?
- previous_build?
- Application Opened
- url?
- Application Became Active
- Application Backgrounded
[explicit]
Auth
- account_created
- account_restored
- note: this is restore-flow start, not restore success
Core
- connect_attempt
- message_sent
- source
- session_agent
- session_started_source
- happy_cli_version
- ota_version
- ota_runtime_version
- session_switched
- session_id
- session_created_at
- last_active_at
- last_updated_at
Voice
- voice_permission_response
- allowed
- voice_session_started
- session_id
- elevenlabs_conversation_id
- voice_session_error
- session_id
- elevenlabs_conversation_id
- error
- voice_session_stopped
- session_id
- elevenlabs_conversation_id
- duration_seconds
Paywall
all include flow property which customizes the upsell screen shown by revenue cat.
- paywall_button_clicked
- paywall_presented
- paywall_purchased
- paywall_restored
- paywall_cancelled
- paywall_error
- error
Review
- review_prompt_shown
- review_prompt_response
- likes_app
- review_store_shown
- review_retry_scheduled
- days_until_retry
Updates
- ota_update_available
- ota_version
- ota_runtime_version
- ota_update_applied
- ota_version
- ota_runtime_version
- whats_new_clicked
GitHub
- github_connected
Friends
- friends_search
- friends_profile_view
- friends_connect
Appendix
Shared SDK Properties
- every capture(...) send also includes:
- $lib
- $lib_version
- $session_id
- $screen_height
- $screen_width
- $process_person_profile
- $is_identified
- $device_type
- $app_build?
- $app_name?
- $app_namespace?
- $app_version?
- $device_manufacturer?
- $device_name?
- $os_name?
- $os_version?
- $locale?
- $timezone?
- $screen_name?
- event
- distinct_id
Identity And Control Sends
- $identify
- $set
- reset
- optIn
- optOut
Strong Preferences
- Prefer a small number of core events with explicit properties over a growing set of overlapping events.
message_sentis the canonical outbound send event. Do not add parallel send events for specific surfaces like voice. Add or usesourceinstead.- If a new analytics question can be answered by extending an existing event, prefer adding a property over inventing a new event.
session_switchedshould carry stable identity, not just recency. Keepsession_idandsession_created_aton it.- OTA context is first-class and should travel with the events that matter. Keep
ota_versionandota_runtime_versiononmessage_sent,ota_update_available, andota_update_applied. - Prefer direct, explicit property objects at capture sites. Do not hide event shape behind generic helper layers that silently add, remove, or filter fields.
- If we ever care about session-switch entry source, add an explicit
sourceproperty. Do not try to reconstruct it later from navigation context.
Notes
- session_switched now includes stable identity (
session_id,session_created_at) plus recency. Entry source is still merged until we add an explicit source property. - elevenlabs_conversation_id is the conversation id returned by the ElevenLabs voice session layer.
- github_connected is a plain event with no GitHub profile data attached.
Relevant Sources
- packages/happy-app/sources/track/index.ts
- packages/happy-app/sources/hooks/useNavigateToSession.ts
- packages/happy-app/sources/-session/SessionView.tsx
- packages/happy-app/sources/realtime/RealtimeSession.ts
- packages/happy-app/sources/components/SettingsView.tsx
- packages/happy-app/sources/sync/sync.ts
- packages/happy-app/sources/track/useTrackScreens.ts
- packages/happy-app/sources/track/tracking.ts