growthAnalyticsEvents.tsx 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. import {PlatformKey} from 'sentry/data/platformCategories';
  2. type MobilePromptBannerParams = {
  3. matchedUserAgentString: string;
  4. };
  5. type ShowParams = MobilePromptBannerParams & {
  6. matchedUserAgentString: string;
  7. mobileEventBrowserName: string;
  8. mobileEventClientOsName: string;
  9. };
  10. type PlatformParam = {
  11. platform: PlatformKey;
  12. };
  13. type PlatformCategory = {
  14. category: string;
  15. source?: string;
  16. };
  17. type PlatformPickerParam = {
  18. platform_id: string;
  19. source?: string;
  20. };
  21. type PlatformSearchParam = {
  22. num_results: number;
  23. search: string;
  24. source?: string;
  25. };
  26. type SampleEventParam = {
  27. platform?: PlatformKey;
  28. };
  29. type InviteRequestParam = {
  30. invite_status: string;
  31. member_id: number;
  32. };
  33. type InviteModal = {
  34. modal_session: string;
  35. };
  36. // define the event key to payload mappings
  37. export type GrowthEventParameters = {
  38. 'growth.clicked_enter_sandbox': {
  39. scenario: string;
  40. };
  41. 'growth.clicked_mobile_prompt_ask_teammate': MobilePromptBannerParams;
  42. 'growth.clicked_mobile_prompt_setup_project': MobilePromptBannerParams;
  43. 'growth.demo_click_docs': {};
  44. 'growth.demo_click_get_started': {cta?: string};
  45. 'growth.demo_click_request_demo': {};
  46. 'growth.demo_modal_clicked_continue': {};
  47. 'growth.demo_modal_clicked_signup': {};
  48. 'growth.dismissed_mobile_prompt_banner': MobilePromptBannerParams;
  49. 'growth.issue_open_in_discover_btn_clicked': {};
  50. 'growth.onboarding_load_choose_platform': {};
  51. 'growth.onboarding_set_up_your_project': PlatformParam;
  52. 'growth.onboarding_start_onboarding': {};
  53. 'growth.onboarding_take_to_error': {};
  54. 'growth.onboarding_view_full_docs': {};
  55. 'growth.onboarding_view_sample_event': SampleEventParam;
  56. 'growth.opened_mobile_project_suggest_modal': MobilePromptBannerParams;
  57. 'growth.platformpicker_category': PlatformCategory;
  58. 'growth.platformpicker_search': PlatformSearchParam;
  59. 'growth.sample_error_onboarding_link_clicked': {
  60. project_id: string;
  61. platform?: string;
  62. };
  63. 'growth.sample_transaction_docs_link_clicked': {
  64. project_id: string;
  65. };
  66. 'growth.select_platform': PlatformPickerParam;
  67. 'growth.show_mobile_prompt_banner': ShowParams;
  68. 'growth.submitted_mobile_prompt_ask_teammate': MobilePromptBannerParams;
  69. 'invite_modal.add_more': InviteModal;
  70. 'invite_modal.closed': InviteModal;
  71. 'invite_modal.invites_sent': InviteModal;
  72. 'invite_modal.opened': InviteModal & {
  73. can_invite: boolean;
  74. source?: string;
  75. };
  76. 'invite_modal.requests_sent': InviteModal;
  77. 'invite_request.approved': InviteRequestParam;
  78. 'invite_request.denied': InviteRequestParam;
  79. 'member_settings_page.loaded': {
  80. num_invite_requests: number;
  81. num_members: number;
  82. };
  83. 'sdk_updates.clicked': {};
  84. 'sdk_updates.seen': {};
  85. 'sdk_updates.snoozed': {};
  86. };
  87. type GrowthAnalyticsKey = keyof GrowthEventParameters;
  88. export const growthEventMap: Record<GrowthAnalyticsKey, string> = {
  89. 'growth.show_mobile_prompt_banner': 'Growth: Show Mobile Prompt Banner',
  90. 'growth.dismissed_mobile_prompt_banner': 'Growth: Dismissed Mobile Prompt Banner',
  91. 'growth.opened_mobile_project_suggest_modal':
  92. 'Growth: Open Mobile Project Suggest Modal',
  93. 'growth.clicked_mobile_prompt_setup_project':
  94. 'Growth: Clicked Mobile Prompt Setup Project',
  95. 'growth.clicked_mobile_prompt_ask_teammate':
  96. 'Growth: Clicked Mobile Prompt Ask Teammate',
  97. 'growth.submitted_mobile_prompt_ask_teammate':
  98. 'Growth: Submitted Mobile Prompt Ask Teammate',
  99. 'growth.demo_click_get_started': 'Growth: Demo Click Get Started',
  100. 'growth.demo_click_docs': 'Growth: Demo Click Docs',
  101. 'growth.demo_click_request_demo': 'Growth: Demo Click Request Demo',
  102. 'growth.onboarding_load_choose_platform':
  103. 'Growth: Onboarding Load Choose Platform Page',
  104. 'growth.onboarding_set_up_your_project': 'Growth: Onboarding Click Set Up Your Project',
  105. 'growth.select_platform': 'Growth: Onboarding Choose Platform',
  106. 'growth.platformpicker_category': 'Growth: Onboarding Platform Category',
  107. 'growth.platformpicker_search': 'Growth: Onboarding Platform Search',
  108. 'growth.onboarding_start_onboarding': 'Growth: Onboarding Start Onboarding',
  109. 'growth.onboarding_take_to_error': 'Growth: Onboarding Take to Error',
  110. 'growth.onboarding_view_full_docs': 'Growth: Onboarding View Full Docs',
  111. 'growth.onboarding_view_sample_event': 'Growth: Onboarding View Sample Event',
  112. 'invite_request.approved': 'Invite Request Approved',
  113. 'invite_request.denied': 'Invite Request Denied',
  114. 'growth.demo_modal_clicked_signup': 'Growth: Demo Modal Clicked Signup',
  115. 'growth.demo_modal_clicked_continue': 'Growth: Demo Modal Clicked Continue',
  116. 'growth.clicked_enter_sandbox': 'Growth: Clicked Enter Sandbox',
  117. 'growth.sample_transaction_docs_link_clicked':
  118. 'Growth: Sample Transaction Docs Link Clicked',
  119. 'growth.sample_error_onboarding_link_clicked':
  120. 'Growth: Sample Error Onboarding Link Clicked',
  121. 'growth.issue_open_in_discover_btn_clicked':
  122. 'Growth: Open in Discover Button in Issue Details clicked',
  123. 'member_settings_page.loaded': 'Member Settings Page Loaded',
  124. 'invite_modal.opened': 'Invite Modal: Opened',
  125. 'invite_modal.closed': 'Invite Modal: Closed',
  126. 'invite_modal.add_more': 'Invite Modal: Add More',
  127. 'invite_modal.invites_sent': 'Invite Modal: Invites Sent',
  128. 'invite_modal.requests_sent': 'Invite Modal: Requests Sent',
  129. 'sdk_updates.seen': 'SDK Updates: Seen',
  130. 'sdk_updates.snoozed': 'SDK Updates: Snoozed',
  131. 'sdk_updates.clicked': 'SDK Updates: Clicked',
  132. };