Analytics Events - libitums/FE GitHub Wiki

์ด๋ฒคํŠธ ์‚ฌ์ „

์•ฑ์ด PostHog๋กœ ๋ณด๋‚ด๋Š” ์ด๋ฒคํŠธ 23๊ฐœ๋‹ค. ์˜์—ญ๋ณ„๋กœ ๋‚˜๋ˆด๋‹ค.

  • ์ •๋ณธ์€ ์ €์žฅ์†Œ ์ฝ”๋“œ๋‹ค. ์—ฌ๊ธฐ์™€ ๋‹ค๋ฅด๋ฉด ์ฝ”๋“œ๊ฐ€ ๋งž๋‹ค.
  • ๊ฐ’์€ ๋ชจ๋‘ ๋ฌธ์ž์—ด ๋˜๋Š” ์ฐธ/๊ฑฐ์ง“์ด๋‹ค. ์ˆซ์ž ๊ฐ’์€ ์—†๋‹ค.

๊ฐ€์ž… ยท ๋กœ๊ทธ์ธ

์ด๋ฒคํŠธ ์–ธ์ œ ํ•จ๊ป˜ ์˜ค๋Š” ๊ฐ’
entry_screen_viewed ๊ฐ€์ž… ๊ณผ์ •์˜ ํ™”๋ฉด์ด ์—ด๋ฆด ๋•Œ screen โ€” onboarding ยท login ยท verification-code ยท language-select ยท journey-entry
entry_login_method_selected ๋กœ๊ทธ์ธ ์ˆ˜๋‹จ์„ ๋ˆ„๋ฅผ ๋•Œ method โ€” phone ยท google ยท apple ยท facebook
entry_completed ใ€Œ์—ฌ์ • ์‹œ์ž‘ํ•˜๊ธฐใ€๋ฅผ ๋ˆ„๋ฅผ ๋•Œ ์—†์Œ

์ŠคํŽ˜์…œ ์œ ๋‹› โ€” ๋ฉ”์‹ ์ €

์ด๋ฒคํŠธ ์–ธ์ œ ํ•จ๊ป˜ ์˜ค๋Š” ๊ฐ’
messenger_unit_opened ๋ฉ”์‹ ์ €๋ฅผ ์—ด ๋•Œ unitId, entrySource, (์—ฌ์ •์—์„œ ์—ด๋ฉด) entryStatus
messenger_unit_completed ๋๊นŒ์ง€ ํ–ˆ์„ ๋•Œ unitId, entrySource
messenger_unit_exited_incomplete ๋๋‚ด๊ธฐ ์ „์— ๋‚˜๊ฐˆ ๋•Œ unitId, entrySource

์ŠคํŽ˜์…œ ์œ ๋‹› โ€” ๋น„์ฃผ์–ผ ๋…ธ๋ฒจ

์ด๋ฒคํŠธ ์–ธ์ œ ํ•จ๊ป˜ ์˜ค๋Š” ๊ฐ’
visual_novel_unit_opened ๋น„์ฃผ์–ผ ๋…ธ๋ฒจ์„ ์—ด ๋•Œ unitId, entrySource, (์—ฌ์ •์—์„œ ์—ด๋ฉด) entryStatus ยท entryBeatId
visual_novel_unit_completed ๋งˆ์ง€๋ง‰ ์žฅ๋ฉด์„ ๋๋ƒˆ์„ ๋•Œ unitId, entrySource
visual_novel_unit_exited_incomplete ๋๋‚ด๊ธฐ ์ „์— ๋‚˜๊ฐˆ ๋•Œ unitId, beatId(๋‚˜๊ฐ„ ์žฅ๋ฉด), entrySource
visual_novel_unit_replay_started ๋๋‚ธ ์œ ๋‹›์„ ๋‹ค์‹œ ๋ณผ ๋•Œ unitId, entrySource

์ŠคํŽ˜์…œ ์œ ๋‹› โ€” ์ „ํ™”

์ด๋ฒคํŠธ ์–ธ์ œ ํ•จ๊ป˜ ์˜ค๋Š” ๊ฐ’
phone_call_unit_opened ์ „ํ™”๋ฅผ ์—ด ๋•Œ unitId, entrySource, (์—ฌ์ •์—์„œ ์—ด๋ฉด) entryStatus

์ „ํ™”๋Š” ์™„๋ฃŒ ยท ์ดํƒˆ ์ด๋ฒคํŠธ๊ฐ€ ์—†๋‹ค.

์•Œ๋ฆผ

์ด๋ฒคํŠธ ์–ธ์ œ ํ•จ๊ป˜ ์˜ค๋Š” ๊ฐ’
notifications_opened ์•Œ๋ฆผ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅผ ๋•Œ ์—†์Œ
notification_item_tapped ์•Œ๋ฆผ ํ•ญ๋ชฉ์„ ๋ˆ„๋ฅผ ๋•Œ notificationId, target
notification_item_deleted ์•Œ๋ฆผ ํ•ญ๋ชฉ์„ ์ง€์šธ ๋•Œ notificationId, target
push_notification_opened ํœด๋Œ€ํฐ ์•Œ๋ฆผ(์„œ๋ฒ„ ํ‘ธ์‹œ)์„ ๋ˆŒ๋Ÿฌ ์•ฑ์ด ๊ทธ ํ™”๋ฉด์œผ๋กœ ๊ฐˆ ๋•Œ โ€” ๋ชฉ์ ์ง€๋ฅผ ๋ชป ์ฝ์œผ๋ฉด ๋‚ด์ง€ ์•Š๋Š”๋‹ค (PR #171) target(journey-map ยท notifications ยท roleplay-list ยท messenger ยท phone-call ยท visual-novel)

์„ค์ •

์ด๋ฒคํŠธ ์–ธ์ œ ํ•จ๊ป˜ ์˜ค๋Š” ๊ฐ’
settings_opened ์„ค์ • ํƒญ์œผ๋กœ ์˜ฎ๊ธธ ๋•Œ(๊ฐ™์€ ํƒญ์„ ๋‹ค์‹œ ๋ˆ„๋ฅด๋ฉด ์—†์Œ) ์—†์Œ
profile_opened ใ€Œ์‚ฌ์šฉ์ž ํ”„๋กœํ•„ใ€์„ ๋ˆ„๋ฅผ ๋•Œ ์—†์Œ
notification_settings_opened ์„ค์ •์˜ ใ€ŒNotificationsใ€๋ฅผ ๋ˆ„๋ฅผ ๋•Œ (PR #171) ์—†์Œ
legal_document_opened ๋กœ๊ทธ์ธ์˜ ๋™์˜ ๋ฌธ๊ตฌ ๋งํฌ๋‚˜ ์„ค์ •์˜ Privacy Policy ยท Terms of Use๋ฅผ ๋ˆ„๋ฅผ ๋•Œ document(privacy-policy ยท terms-of-use) ยท source(login ยท settings)
session_option_changed ์„ค์ • ์Šค์œ„์น˜๋ฅผ ๋ˆ„๋ฅผ ๋•Œ option โ€” auto-play-audio ยท show-transcript, value โ€” ๋ฐ”๋€ ๋’ค ๊ฐ’

์„œ์‚ฌ ํ‘œ์ง€ ยท ์„œ์‚ฌ

์ด๋ฒคํŠธ ์–ธ์ œ ํ•จ๊ป˜ ์˜ค๋Š” ๊ฐ’
episode_intro_viewed ์—ฌ์ • ๋งต์˜ ํ‘œ์ง€ ํ•ญ๋ชฉ์„ ๋ˆŒ๋Ÿฌ ํ‘œ์ง€๊ฐ€ ์„ค ๋•Œ episodeId
episode_intro_skipped ํ™•์ธ ๋ชจ๋‹ฌ์—์„œ ใ€Œ๊ฑด๋„ˆ๋›ฐ๊ธฐใ€๋ฅผ ๊ณ ๋ฅผ ๋•Œ episodeId
episode_intro_continued Next๋ฅผ ๋ˆ„๋ฅผ ๋•Œ episodeId, hasPrologue(์„œ์‚ฌ๊ฐ€ ์žˆ๋‚˜)
episode_intro_exited ํ‘œ์ง€๋‚˜ ์„œ์‚ฌ์—์„œ ๋’ค๋กœ ๋‚˜๊ฐˆ ๋•Œ episodeId, stage โ€” intro ยท prologue
episode_prologue_completed ์„œ์‚ฌ๋ฅผ ๋๊นŒ์ง€ ๋ณด๊ณ  ํ•˜๋‹จ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅผ ๋•Œ episodeId, prologueKind โ€” call ยท messenger ยท visual-novel
  • Skip์„ ๋ˆ„๋ฅธ ๊ฒƒ๋งŒ์œผ๋กœ๋Š” ์•„๋ฌด๊ฒƒ๋„ ์˜ค์ง€ ์•Š๋Š”๋‹ค. ๋ชจ๋‹ฌ์—์„œ ใ€Œ๊ณ„์† ๋ณด๊ธฐใ€๋ฅผ ๊ณ ๋ฅธ ํšŸ์ˆ˜๋Š” ์žฌ์ง€ ์•Š๋Š”๋‹ค.
  • ํ‘œ์ง€๋Š” ์—ํ”ผ์†Œ๋“œ์˜ ์ฒซ ์œ ๋‹›์ด๋‹ค. ๋๋‚ด์•ผ ๊ทธ ์—ํ”ผ์†Œ๋“œ์˜ ๋‚˜๋จธ์ง€๊ฐ€ ์—ด๋ฆฐ๋‹ค(#153).
  • ๋๋‚ธ ํ‘œ์ง€๋Š” ์ €์žฅ๋˜์ง€ ์•Š์•„ ์•ฑ์„ ์ผค ๋•Œ๋งˆ๋‹ค ๋‹ค์‹œ ์ง€๋‚œ๋‹ค. ๋๋‚ธ ํ‘œ์ง€๋ฅผ ๋งต์—์„œ ๋‹ค์‹œ ์—ด์–ด๋„ episode_intro_viewed๊ฐ€ ์˜จ๋‹ค.

๊ฐ’ ํ’€์ด

๊ฐ’ ๋œป
entrySource ์–ด๋””์„œ ์—ด์—ˆ๋‚˜ โ€” journey(์—ฌ์ • ๋งต ยท ์•Œ๋ฆผ) ยท roleplay(๋กคํ”Œ๋ ˆ์ด ํƒญ)
entryStatus ์—ด ๋•Œ ๊ทธ ์œ ๋‹›์˜ ์ƒํƒœ โ€” available ยท completed
target ์•Œ๋ฆผ์ด ๋ฐ๋ ค๊ฐ€๋Š” ๊ณณ โ€” messenger ยท phone-call ยท visual-novel ยท roleplay-list

๋ชจ๋“  ์ด๋ฒคํŠธ์— ๋ถ™๋Š” ๊ฐ’

๊ฐ’ ๋œป
distinct_id ๋กœ๊ทธ์ธํ•œ ๋’ค์—๋Š” ์‚ฌ์šฉ์ž ID(์•ฑ์„ ๋‹ค์‹œ ์ผœ๋„ ๊ฐ™๋‹ค). ๋กœ๊ทธ์ธ ์ „์—๋Š” ๊ทธ ์‹คํ–‰์˜ ์ต๋ช… ID(์ผค ๋•Œ๋งˆ๋‹ค ๋ฐ”๋€๋‹ค)
$session_id ์„ธ์…˜ ID. 30๋ถ„ ์‰ฌ๊ฑฐ๋‚˜ ์•ฑ์„ ๋‹ค์‹œ ์ผœ๋ฉด ๋ฐ”๋€๋‹ค
$lib ๋Š˜ libitums-lynx โ€” ์ด ์•ฑ์—์„œ ์™”๋‹ค๋Š” ํ‘œ์‹œ
$lib_version ๋ถ„์„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฒ„์ „
environment ์–ด๋””์„œ ๋‚ฌ๋‚˜ โ€” production(๋ฐฐํฌ๋œ ์•ฑ) ยท development(๊ฐœ๋ฐœ ยท ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ). ๋ถ„์„์€ production๋งŒ ๋ณธ๋‹ค
$geoip_country_code ยท $geoip_country_name ๋‚˜๋ผ โ€” PostHog๊ฐ€ IP๋กœ ์ถ”์ •ํ•œ๋‹ค(IP๋Š” ์ €์žฅํ•˜์ง€ ์•Š์Œ). 2026-09-30๋ถ€ํ„ฐ
$geoip_subdivision_1_code ยท _name ์ฃผ ยท ์ง€๋ฐฉ
$geoip_continent_code ยท _name ๋Œ€๋ฅ™
$geoip_time_zone ์‹œ๊ฐ„๋Œ€

๋„์‹œ ยท ์ขŒํ‘œ ยท ๊ธฐ๊ธฐ ๋ชจ๋ธ ยท OS ๋ฒ„์ „์€ ์—†๋‹ค.

์•ฑ์ด ์•„๋‹ˆ๋ผ PostHog๊ฐ€ ๋งŒ๋“œ๋Š” ์ด๋ฒคํŠธ

์ด๋ฒคํŠธ ์–ธ์ œ
$identify ๋กœ๊ทธ์ธ(์†Œ์…œ ยท ์ „ํ™”๋ฒˆํ˜ธ)์ด ์„ฑ๊ณตํ•  ๋•Œ, ๋กœ๊ทธ์ธ๋œ ์ฑ„ ์•ฑ์„ ์ผœ ์„ธ์…˜ ๊ฐฑ์‹ ์ด ์„ฑ๊ณตํ•  ๋•Œ โ€” ํ•œ ๋ฒˆ์”ฉ

๊ฐ™์€ ์‹คํ–‰์—์„œ ๋กœ๊ทธ์ธ ์ „์— ๋‚œ ์ด๋ฒคํŠธ(์˜จ๋ณด๋”ฉ ยท ๋กœ๊ทธ์ธ ํ™”๋ฉด)๋Š” ์ด ์ด๋ฒคํŠธ๊ฐ€ ๊ทธ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ž‡๋Š”๋‹ค.