UNPKG

mobiqo-capacitor

Version:

Mobiqo SDK for Capacitor apps - Mobile analytics and user tracking

222 lines (177 loc) 5.19 kB
# Mobiqo Capacitor SDK **⚠️ THIS PLUGIN HAS TO BE USED ALONG WITH THE ANALYTICS SERVICE MOBIQO ⚠️** **👉 CREATE AN ACCOUNT HERE: https://getmobiqo.com?utm_source=npm** --- A Capacitor plugin for integrating Mobiqo analytics into your mobile applications. ## Installation ```bash npm install mobiqo-capacitor ``` ## Usage ### Import the SDK ```typescript import Mobiqo from 'mobiqo-capacitor'; import { MobiqoEvent } from 'mobiqo-capacitor'; ``` ### Initialize the plugin ```typescript const mobiqo = new Mobiqo(); // Initialize with your Mobiqo API key await mobiqo.init({ mobiqoKey: 'your-mobiqo-api-key' }); ``` ### Sync user data ```typescript // With additional data (optional) await mobiqo.syncUser({ revenue_cat_user_id: 'user-123', include_advanced_analysis: false, additional_data: { user_id: 'user-123', user_name: 'John Doe', user_email: 'user@example.com', referrer: 'google', referrer_data: { campaign_id: 'camp-456', utm_source: 'newsletter' } } }); // Without additional data await mobiqo.syncUser({ revenue_cat_user_id: 'user-123' }); ``` ### Track events ```typescript // Track an event with additional data (optional) await mobiqo.trackEvent( 'button_clicked', MobiqoEvent.CLICK, { button_name: 'subscribe', screen: 'home' } ); // Track an event without additional data await mobiqo.trackEvent('screen_opened', MobiqoEvent.SCREEN_VIEW); ``` ### Update user data ```typescript // Update user information without creating a new session await mobiqo.updateUser({ revenue_cat_user_id: 'user-123', additional_data: { user_id: 'user-123', user_name: 'John Doe Updated', user_email: 'newemail@example.com', referrer: 'facebook', referrer_data: { campaign_id: 'camp-789' } } }); ``` ### Get user information ```typescript const userInfo = await mobiqo.getUserInfo({ revenue_cat_user_id: 'user-123', include_advanced_analysis: true }); ``` ### Automatic Session Tracking The SDK automatically sends heartbeats every 20 seconds after user sync to maintain session tracking. No manual intervention is required. ## API Reference ### Methods #### `init(options)` Initialize the Mobiqo service with your API key. - `options.mobiqoKey` (string): Your Mobiqo API key #### `syncUser(options)` Sync user data with Mobiqo and start a session. - `options.revenue_cat_user_id` (string): RevenueCat user ID - `options.include_advanced_analysis` (boolean, optional): whether or not to include advanced analysis in the response (to get the purchase probability and other data, but the request will take more time) - `options.additional_data` (AdditionalData, optional): Additional user data (user_id, user_name, user_email, referrer, referrer_data) #### `updateUser(options)` Update user information without creating a new session. - `options.revenue_cat_user_id` (string): RevenueCat user ID - `options.additional_data` (AdditionalData, optional): Additional user data to update (user_id, user_name, user_email, referrer, referrer_data) #### `getUserInfo(options)` Retrieve user information from Mobiqo. - `options.revenue_cat_user_id` (string): RevenueCat user ID - `options.include_advanced_analysis` (boolean): whether or not to include advanced analysis in the response (to get the purchase probability and other data, but the request will take more time) #### `trackEvent(event, eventType, additionalData?)` Track custom events. - `event` (string): Event name - `eventType` (MobiqoEvent): Event type from the MobiqoEvent enum - `additionalData` (Record<string, any>, optional): Additional event data ### Event Types ```typescript enum MobiqoEvent { CLICK = 'click', ACTION = 'action', SCREEN_VIEW = 'screen_view', PAYWALL_VIEW = 'paywall_view', PAYWALL_DISMISS = 'paywall_dismiss', PURCHASE_ATTEMPT = 'purchase_attempt', PURCHASE_SUCCESS = 'purchase_success', PURCHASE_FAILED = 'purchase_failed', FORM_SUBMIT = 'form_submit', NAVIGATION = 'navigation', ERROR = 'error', CUSTOM = 'custom' } ``` ### Response Interfaces #### `SyncUserResponse` ```typescript interface SyncUserResponse { isNewUser: boolean; appUser: AppUser; statistics: Statistics; } ``` #### `GetUserInfoResponse` ```typescript interface GetUserInfoResponse { appUser: AppUser; statistics: Statistics; } ``` #### `AppUser` ```typescript interface AppUser { id: string; project_id: string; revenue_cat_user_id?: string; mobiqo_username: string; os: 'ios' | 'android'; os_version: string; app_version: string; country?: string; language?: string; first_seen_at: string; last_seen_at: string; active_entitlements: string[]; } ``` #### `Statistics` ```typescript interface Statistics { purchasing_power_parity: number; purchase_intent: number; avg_arpu: number; avg_arppu: number; avg_ltv: number; } ``` #### `AdditionalData` ```typescript interface AdditionalData { user_id?: string; user_name?: string; user_email?: string; referrer?: string; referrer_data?: Record<string, any>; } ``` ## Requirements - Capacitor 3.0+ - TypeScript 4.0+ ## License MIT ## Support For support and questions, please contact the Mobiqo team.