@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
TypeScript
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 {};