Analytics
Analytics Events
The InvestSuite SDK sends analytics events that can be captured and forwarded to your analytics service (Firebase, Segment, etc.).
App-in-App SDK
If you're using the App-in-App SDK (embedding), see Handling Analytics Events for implementation details on how to receive these events in your host application.
Event Structure
Every analytics event contains the following properties:
| Property |
Type |
Description |
name |
String |
The event name (max 40 characters for Firebase compatibility) |
eventLocation |
String |
The screen/deeplink where the event was triggered |
parameters |
Map |
Optional event-specific parameters |
The eventLocation typically contains the deeplink path of the current screen (e.g., /self/portfolio/P123/composition), making it easy to track user journeys through the SDK.
Event Types
The SDK emits two types of analytics events:
Screen Events
Screen events are automatically triggered when the user navigates to a new screen. The event name equals the deeplink path of that screen (with path parameters as placeholders).
name=/self/portfolio/:portfolioId/composition
eventLocation=/self/portfolio/:portfolioId/composition
parameters={portfolioId=DEMO}
Screen events allow you to track user navigation and page views. The actual parameter values (like portfolioId=DEMO) are included in the parameters map.
Named Events
Named events are triggered by specific user actions or application states. They have a descriptive event name that identifies the action.
name=idcard_opened
eventLocation=/self/idcard/summary
parameters={portfolio_id=DEMO, instrument_id=US0378331005_US_USD}
The sections below document all available named events.
Core Events
Events triggered by the core SDK (shared between Robo and Self).
Application Lifecycle
| Event Name |
Parameters |
Description |
application_opened |
none |
Triggered when the SDK is opened |
Authentication
| Event Name |
Parameters |
Description |
login_success |
user_id |
User successfully logged in |
login_error |
none |
Login attempt failed |
Account Creation Flow
| Event Name |
Parameters |
Description |
account_creation_start |
none |
User started the account creation flow |
account_creation_id_verification_start |
none |
User started identity verification |
account_creation_id_verif_kyc_complete |
none |
KYC verification completed |
account_creation_id_verif_complete |
none |
Identity verification completed |
account_creation_legal_start |
none |
User started legal documents signing |
account_creation_legal_complete |
none |
Legal documents signing completed |
account_creation_complete |
none |
Account creation flow completed |
Agreement Events
| Event Name |
Parameters |
Description |
agreement_displayed |
none |
Agreement was displayed to user |
agreement_accepted |
none |
User accepted the agreement |
unaccepted_agreement_start |
none |
Started unaccepted agreement flow |
unaccepted_agreement_signing_complete |
none |
Completed signing unaccepted agreement |
Key Facts Events
| Event Name |
Parameters |
Description |
failed_to_load_keyfacts |
none |
Failed to load key facts document |
failed_to_acknowledge_keyfacts |
none |
Failed to acknowledge key facts |
Registration Events
| Event Name |
Parameters |
Description |
registration_universal_full_start |
none |
Started universal registration flow |
registration_universal_full_complete |
none |
Completed universal registration flow |
Robo Investor Events
Events specific to the Robo Investor SDK.
Discovery
| Event Name |
Parameters |
Description |
discovery_select_portfolio |
persona_portfolio |
User selected a discovery portfolio |
discovery_create_portfolio |
none |
User clicked to create portfolio from discovery |
Home Screen
| Event Name |
Parameters |
Description |
home_add_portfolio |
none |
User clicked add portfolio on home screen |
home_open_portfolio |
portfolio_id, portfolio_status |
User opened a portfolio |
Portfolio Creation
| Event Name |
Parameters |
Description |
portfolio_creation_start |
portfolio_id?, portfolio_status? |
Started portfolio creation |
portfolio_creation_complete |
portfolio_id, portfolio_status |
Completed portfolio creation |
Investment Plan
| Event Name |
Parameters |
Description |
investment_plan_goal |
profile_id, portfolio_id, selected_item |
User selected investment goal |
investment_plan_duration |
profile_id, portfolio_id, selected_item |
User selected investment duration |
investment_plan_start_capital |
profile_id, portfolio_id, value, currency |
User set initial investment amount |
investment_plan_monthly_invest |
profile_id, portfolio_id, currency, switch_status, value |
User set monthly investment |
investment_plan_complete |
portfolio_id, portfolio_status |
Completed investment plan setup |
Risk Profile
| Event Name |
Parameters |
Description |
risk_profile_select_profile |
selected_item, portfolio_id, portfolio_status |
User selected risk profile |
risk_profile_complete |
portfolio_id, portfolio_status |
Completed risk profile flow |
Portfolio Management
| Event Name |
Parameters |
Description |
portfolio_edit_start |
portfolio_id, portfolio_status |
Started editing portfolio |
portfolio_edit_investment_plan_complete |
portfolio_id, portfolio_status |
Completed investment plan edit |
portfolio_edit_complete |
portfolio_id, portfolio_status |
Completed portfolio editing |
portfolio_proposal_fund_cta |
portfolio_id, portfolio_status |
User clicked fund CTA on proposal |
Portfolio Activation
| Event Name |
Parameters |
Description |
virtual_portfolio_activated |
none |
Virtual portfolio was activated |
portfolio_activated |
none |
Portfolio was activated |
Funding
| Event Name |
Parameters |
Description |
funding_start_capital_received |
value, currency |
Initial funding received |
full_withdrawal_initiated |
reason_id, reason_description |
User initiated full withdrawal |
Suitability Profiler
| Event Name |
Parameters |
Description |
start_profile |
profile_id, portfolio_id, profile_status |
Started suitability profile |
stop_profile |
none |
Stopped suitability profile |
start_assessment |
profile_id, portfolio_id, profile_status |
Started assessment |
complete_assessment |
profile_id, portfolio_id, profile_status |
Completed assessment |
start_section |
profile_id, portfolio_id, profile_status |
Started new section in assessment |
Self Investor Events
Events specific to the Self Investor SDK.
Instrument Details (ID Card)
| Event Name |
Parameters |
Description |
idcard_opened |
portfolio_id, instrument_id |
User opened instrument ID card |
idcard_add_to_watchlist |
portfolio_id, watchlist_id, instrument_id |
User added instrument to watchlist |
Portfolio Creation
| Event Name |
Parameters |
Description |
portfolio_creation_start |
none |
Started portfolio creation |
portfolio_creation_complete |
portfolio_id, portfolio_status |
Completed portfolio creation |
Knowledge & Experience Assessment
| Event Name |
Parameters |
Description |
accept_assessment |
profile_id, questionnaire_id, portfolio_id |
User accepted assessment result |
Event Flow Examples
Robo: Complete Portfolio Creation Flow
1. discovery_create_portfolio (or home_add_portfolio)
2. portfolio_creation_start
3. investment_plan_goal
4. investment_plan_duration
5. investment_plan_start_capital
6. investment_plan_monthly_invest
7. investment_plan_complete
8. start_assessment
9. start_section (repeated per section)
10. complete_assessment
11. risk_profile_select_profile
12. risk_profile_complete
13. portfolio_creation_complete
Self: Instrument Discovery Flow
1. application_opened
2. login_success
3. idcard_opened
4. idcard_add_to_watchlist (optional)
Account Creation Flow (Both SDKs)
1. account_creation_start
2. account_creation_id_verification_start
3. account_creation_id_verif_kyc_complete
4. account_creation_id_verif_complete
5. account_creation_legal_start
6. account_creation_legal_complete
7. account_creation_complete
Usage Notes
-
Firebase Compatibility: Event names are limited to 40 characters to comply with Firebase Analytics specifications.
-
Event Location: The eventLocation property contains the deeplink path of the screen where the event occurred, useful for tracking user journeys. See Deeplinks for all available paths.
-
Dynamic Events: Some events (like onboarding sub-flow events) are triggered dynamically based on configuration using analyticsStartEventName and analyticsEndEventName properties.
-
Parameter Values: All parameter values are strings. Convert numeric values as needed in your analytics implementation.