growthAnalyticsEvents.tsx 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. import {PlatformKey} from 'app/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. search: string;
  23. num_results: number;
  24. source?: string;
  25. };
  26. type SampleEventParam = {
  27. platform?: PlatformKey;
  28. };
  29. // define the event key to payload mappings
  30. export type GrowthEventParameters = {
  31. 'growth.show_mobile_prompt_banner': ShowParams;
  32. 'growth.dismissed_mobile_prompt_banner': MobilePromptBannerParams;
  33. 'growth.opened_mobile_project_suggest_modal': MobilePromptBannerParams;
  34. 'growth.clicked_mobile_prompt_setup_project': MobilePromptBannerParams;
  35. 'growth.clicked_mobile_prompt_ask_teammate': MobilePromptBannerParams;
  36. 'growth.submitted_mobile_prompt_ask_teammate': MobilePromptBannerParams;
  37. 'growth.demo_click_get_started': {};
  38. 'growth.demo_click_docs': {};
  39. 'growth.demo_click_request_demo': {};
  40. 'growth.onboarding_load_choose_platform': {};
  41. 'growth.onboarding_set_up_your_project': PlatformParam;
  42. 'growth.select_platform': PlatformPickerParam;
  43. 'growth.platformpicker_category': PlatformCategory;
  44. 'growth.platformpicker_search': PlatformSearchParam;
  45. 'growth.onboarding_start_onboarding': {};
  46. 'growth.onboarding_take_to_error': {};
  47. 'growth.onboarding_view_full_docs': {};
  48. 'growth.onboarding_view_sample_event': SampleEventParam;
  49. };
  50. type GrowthAnalyticsKey = keyof GrowthEventParameters;
  51. export const growthEventMap: Record<GrowthAnalyticsKey, string> = {
  52. 'growth.show_mobile_prompt_banner': 'Growth: Show Mobile Prompt Banner',
  53. 'growth.dismissed_mobile_prompt_banner': 'Growth: Dismissed Mobile Prompt Banner',
  54. 'growth.opened_mobile_project_suggest_modal':
  55. 'Growth: Open Mobile Project Suggest Modal',
  56. 'growth.clicked_mobile_prompt_setup_project':
  57. 'Growth: Clicked Mobile Prompt Setup Project',
  58. 'growth.clicked_mobile_prompt_ask_teammate':
  59. 'Growth: Clicked Mobile Prompt Ask Teammate',
  60. 'growth.submitted_mobile_prompt_ask_teammate':
  61. 'Growth: Submitted Mobile Prompt Ask Teammate',
  62. 'growth.demo_click_get_started': 'Growth: Demo Click Get Started',
  63. 'growth.demo_click_docs': 'Growth: Demo Click Docs',
  64. 'growth.demo_click_request_demo': 'Growth: Demo Click Request Demo',
  65. 'growth.onboarding_load_choose_platform':
  66. 'Growth: Onboarding Load Choose Platform Page',
  67. 'growth.onboarding_set_up_your_project': 'Growth: Onboarding Click Set Up Your Project',
  68. 'growth.select_platform': 'Growth: Onboarding Choose Platform',
  69. 'growth.platformpicker_category': 'Growth: Onboarding Platform Category',
  70. 'growth.platformpicker_search': 'Growth: Onboarding Platform Search',
  71. 'growth.onboarding_start_onboarding': 'Growth: Onboarding Start Onboarding',
  72. 'growth.onboarding_take_to_error': 'Growth: Onboarding Take to Error',
  73. 'growth.onboarding_view_full_docs': 'Growth: Onboarding View Full Docs',
  74. 'growth.onboarding_view_sample_event': 'Growth: Onboarding View Sample Event',
  75. };