UNPKG

@deriv-com/analytics

Version:

The analytics package contains all the utility functions used for tracking user events and sending them to the respective platform such as Rudderstack.

335 lines (334 loc) 11.9 kB
import type { Context } from '@growthbook/growthbook'; declare global { interface Window { define: any; } } export type TGrowthbookAttributes = { id?: string; country?: string; user_language?: string; device_language?: string; device_type?: string; utm_source?: string; utm_medium?: 'ppc-native' | 'affiliate' | 'common' | string; utm_campaign?: string; is_authorised?: boolean; url?: string; domain?: string; utm_content?: string; residence_country?: string; loggedIn?: boolean; network_type?: string; network_downlink?: number; user_id?: string; anonymous_id?: string; account_mode?: string; }; export type TGrowthbookOptions = Partial<Omit<Context, 'attributes'> & { attributes: TCoreAttributes; }>; export type TCoreAttributes = { account_type?: string; user_id?: string; anonymous_id?: string; app_id?: string; user_identity?: string; residence_country?: string; geo_location?: string; email_hash?: string; network_type?: string; network_rtt?: number; network_downlink?: number; account_currency?: string; } & Partial<TGrowthbookAttributes>; type SignupProvider = 'email' | 'phone' | 'google' | 'facebook' | 'apple'; type VirtualSignupForm = { action?: 'open' | 'started' | 'email_confirmation_sent' | 'email_confirmed' | 'country_selection_screen_opened' | 'password_screen_opened' | 'signup_done' | 'signup_flow_error' | 'go_to_login' | 'signup_modal_open' | 'signup_modal_close'; signup_provider?: SignupProvider; form_source?: string; form_name?: string; error_message?: string; email?: string; app_id?: string; }; type EmailVerificationForm = { action?: 'verify_popup_opened' | 'verify_popup_closed' | 'verify_popup_cta' | 'email_verification_sent' | 'email_verification_opened' | 'success_popup_opened' | 'success_popup_closed' | 'success_popup_cta'; form_source?: 'ce_tradershub_real_form' | 'ce_virtual_signup_form' | 'account_setting'; form_name?: string; app_id?: string; }; type RealAccountSignupForm = { action?: 'open' | 'step_passed' | 'save' | 'restore' | 'close' | 'real_signup_error' | 'other_error' | 'real_signup_finished'; step_codename?: string; step_num?: number; user_choice?: string; form_source?: string; form_name?: string; real_signup_error_message?: string; landing_company?: string; }; type RealAccountSignupIdentifyForm = { action?: 'open' | 'step_passed' | 'step_back' | 'save' | 'close' | 'real_signup_error' | 'other_error' | 'real_signup_finished'; step_codename?: string; step_num?: string; user_choice?: string; form_source?: string; form_name?: string; real_signup_error_message?: string; landing_company?: string; }; type LoginForm = { action: 'open' | 'login_cta' | 'go_to_forgot' | 'email_reset_password_sent' | 'email_reset_password_opened' | 'reset_password_continued' | 'reset_password_done' | 'login_flow_error' | 'go_to_signup'; login_provider?: 'email' | 'phone' | 'google' | 'facebook' | 'apple'; form_source?: 'virtual_signup_form' | 'deriv.com (log in CTA)' | 'mobile_derivGo' | string; error_message?: string; email?: string; }; type QuestionnaireForm = { action: 'open' | 'choose_answer' | 'close'; question_code?: string; question_content?: string; answer_code?: string; }; type PartnerAccountSignupForm = { action: 'open_wizard'; email: string; } | { action: 'step_passed'; step_num: number; step_codename: string; } | { action: 'step_back'; step_num: number; step_codename: string; } | { action: 'push_learn_more'; } | { action: 'close_wizard'; } | { action: 'partners_signup_error'; partner_signup_error_message: string; form_name?: string; } | { action: 'other_error'; partner_signup_error_message?: string; } | { action: 'try_submit'; } | { action: 'failed_popup_cta'; } | { action: 'success_popup_opened'; user_choice: string; success_source: string; affiliate_id: string; } | { action: 'success_popup_cta'; }; type VirtualSignupEmailConfirmation = { action?: 'received' | 'expired' | 'confirmed' | 'error'; signup_provider?: SignupProvider; form_source?: string; email_md5?: string; error_message?: string; }; type TradeTypesForm = { action?: 'open' | 'close' | 'choose_trade_type' | 'search' | 'info_open' | 'info_switcher' | 'info_close'; trade_type_name?: string; tab_name?: string; search_string?: string; info_switcher_mode?: 'description' | 'glossary'; form_source?: string; form_name?: string; subform_name?: string; }; type BotForm = { action?: 'open' | 'close' | 'search' | 'run_bot' | 'run_quick_strategy' | 'edit_quick_strategy' | 'select_quick_strategy_guide' | 'switch_quick_strategy_tab' | 'choose_strategy_type'; form_name?: 'ce_bot_form'; subpage_source?: 'dashboard' | 'bot_builder'; subpage_name?: 'tutorials' | 'bot_builder' | 'charts' | 'dashboard'; subform_name?: 'quick_strategy'; subform_source?: 'dashboard' | 'bot_builder'; quick_strategy_tab?: 'learn more' | 'trade parameters'; strategy_name?: `d'alembert` | `martingale` | `oscar's-grind` | `reverse martingale` | `reverse d'alembert` | `1-3-2-6`; strategy_type?: 'custom' | 'quick_strategy'; search_term?: string; asset?: string; trade_type?: string; purchase_condition?: string; initial_stake?: string; }; type IndicatorsTypesFormAction = { action: 'open' | 'close' | 'add_active' | 'clean_all_active' | 'delete_active' | 'edit_active' | 'search' | 'info_open' | 'info_close'; form_name?: string; indicator_type_name?: string; indicators_category_name?: string; search_string?: string; subform_name?: string; }; type MarketTypesFormAction = { action: 'open' | 'close' | 'choose_market_type' | 'search' | 'info_redirect' | 'add_to_favorites' | 'delete_from_favorites'; form_name?: string; market_type_name?: string; search_string?: string; tab_market_name?: string; }; type ReportsFormAction = { action: 'choose_report_type'; form_name: string; subform_name: 'open_positions_form' | 'statement_form' | 'trade_table_form'; trade_type_filter?: string; growth_type_filter?: string; start_date_filter?: string; end_date_filter?: string; transaction_type_filter?: string; } | { action: 'filter_trade_type'; form_name: string; subform_name: 'open_positions_form'; trade_type_filter: string; } | { action: 'filter_growth_rate'; form_name: string; subform_name: 'open_positions_form'; growth_type_filter: string; } | { action: 'filter_dates'; form_name: string; subform_name: 'trade_table_form' | 'statement_form'; start_date_filter?: string; end_date_filter?: string; } | { action: 'filter_transaction_type'; form_name: string; subform_name: 'statement_form'; transaction_type_filter: string; } | { action: 'open'; form_name: string; subform_name: string; form_source: string; } | { action: 'close'; form_name: string; subform_name: string; } | { action: 'open_contract_details'; form_name: string; form_source: string; }; type ChartTypesFormAction = { action?: 'open' | 'close' | 'choose_chart_type' | 'choose_time_interval'; form_name?: string; chart_type_name?: string; time_interval_name?: string; }; type ContractsSetupForm = { form_name?: string; trade_type_name?: string; } & ({ action: 'change_parameter_value'; duration_type?: string; input_type?: string; parameter_field_type?: string; parameter_type?: string; parameter_value?: string; } | { action: 'run_contract'; switcher_duration_mode_name?: string; switcher_stakepayout_mode_name?: string; market_name?: string; trade_name?: string; contract_id?: number; }); type TradersHubOnboardingFormAction = { action?: 'open' | 'close' | 'step_passed' | 'step_back' | 'choose_step_navigation'; form_source?: 'tradershub_dashboard_form' | 'tradershub_first_entrance' | 'repeat_tour'; step_num?: number; step_codename?: string; }; type UpgradeMT5BannerAction = { action: 'open' | 'push_cta_upgrade'; }; type TradersHubDashboardFormAction = { action?: 'open' | 'close' | 'switch_account_mode' | 'account_open' | 'account_get' | 'account_logo_push' | 'reset_balance' | 'deposit_balance' | 'compare_accounts_push'; account_mode?: string; account_name?: string; form_name?: string; }; type PassKeyAccountSettingsFormAction = { action?: 'open' | 'close' | 'info_open' | 'info_back' | 'create_passkey_started' | 'create_passkey_reminder_passed' | 'create_passkey_finished' | 'create_passkey_continue_trading' | 'error' | 'add_more_passkeys' | 'passkey_rename_started' | 'passkey_rename_back' | 'passkey_rename_success' | 'passkey_remove_started' | 'passkey_remove_success'; form_name?: string; subform_name?: string; remove_verification_provider?: string; error_message?: string; operating_system?: string; }; type TradersHubPopUpAction = { action?: 'open' | 'close' | 'click_download' | 'click_cta'; form_name?: string; account_mode?: string; popup_name?: string; popup_type?: string; }; type TradersHubBanner = { action?: 'open' | 'close' | 'click download' | 'click_cta'; form_name?: string; account_mode?: string; banner_name?: string; banner_type?: string; }; type WalletsHomepageFormAction = { action?: 'open'; form_name?: string; }; type TNotificationsTrayForm = { action?: 'clear_all' | 'click_cta' | 'close' | 'open'; form_name?: 'ce_notification_form'; notification_num?: number; notification_key?: string; }; type TCashierDepositOnboardingFormAction = { action?: 'open' | 'open_deposit_subpage' | 'click_deposit_card' | 'click_copy_crypto_address'; form_name?: 'ce_cashier_deposit_onboarding_form'; currency?: string; deposit_category?: string; login_id?: string; }; type TDtraderTradeForm = { action?: 'open' | 'select_trade_type' | 'select_market_type' | 'open_guide' | 'run_contract' | 'close_contract'; trade_name?: string; market_name?: string; subform_name?: string; trade_type_count?: number; contract_id?: number; }; export type TEvents = { ce_virtual_signup_form: VirtualSignupForm; ce_email_verification_form: EmailVerificationForm; ce_real_account_signup_form: RealAccountSignupForm; ce_real_account_signup_setup_form: RealAccountSignupForm; ce_real_account_signup_identity_form: RealAccountSignupIdentifyForm; ce_login_form: LoginForm; ce_questionnaire_form: QuestionnaireForm; ce_partner_account_signup_form: PartnerAccountSignupForm; ce_virtual_signup_email_confirmation: VirtualSignupEmailConfirmation; ce_bot_form: BotForm; ce_contracts_set_up_form: ContractsSetupForm; ce_indicators_types_form: IndicatorsTypesFormAction; ce_trade_types_form: TradeTypesForm; ce_chart_types_form: ChartTypesFormAction; ce_market_types_form: MarketTypesFormAction; ce_reports_form: ReportsFormAction; ce_tradershub_onboarding_form: TradersHubOnboardingFormAction; ce_upgrade_mt5_banner: UpgradeMT5BannerAction; ce_tradershub_dashboard_form: TradersHubDashboardFormAction; ce_passkey_account_settings_form: PassKeyAccountSettingsFormAction; ce_tradershub_popup: TradersHubPopUpAction; ce_tradershub_banner: TradersHubBanner; ce_wallets_homepage_form: WalletsHomepageFormAction; ce_notification_form: TNotificationsTrayForm; ce_cashier_deposit_onboarding_form: TCashierDepositOnboardingFormAction; ce_dtrader_trade_form: TDtraderTradeForm; }; export {};