Getting Started
Drop in an SDK, track events, and see funnels and retention without extra setup.
Quick Start
1. Get Your API Key
Sign up at app.mostlygoodmetrics.com and create a project. Your API key will look like mgm_proj_xxxx.
2. Install an SDK
- Swift
- Android
- React Native
- JavaScript
- Flutter
- Capacitor
// Package.swift
.package(url: "https://github.com/Mostly-Good-Metrics/mostly-good-metrics-swift-sdk", from: "1.0.0")
// build.gradle.kts
implementation("com.github.Mostly-Good-Metrics:mostly-good-metrics-android-sdk:1.0.0")
npm install @mostly-good-metrics/react-native
npm install @mostly-good-metrics/javascript
# pubspec.yaml
dependencies:
mostly_good_metrics_flutter: ^0.1.0
npm install @mostly-good-metrics/capacitor
3. Initialize and Track
- Swift
- Android
- React Native
- JavaScript
- Flutter
- Capacitor
import MostlyGoodMetrics
// Initialize once at app launch
MostlyGoodMetrics.configure(apiKey: "mgm_proj_your_api_key")
// Track events
MostlyGoodMetrics.track("button_clicked")
MostlyGoodMetrics.track("purchase_completed", properties: [
"product_id": "SKU123",
"price": 29.99
])
// Identify users
MostlyGoodMetrics.identify(userId: "user_123")
import com.mostlygoodmetrics.sdk.MostlyGoodMetrics
// Initialize once in Application class
MostlyGoodMetrics.configure(this, "mgm_proj_your_api_key")
// Track events
MostlyGoodMetrics.track("button_clicked")
MostlyGoodMetrics.track("purchase_completed", mapOf(
"product_id" to "SKU123",
"price" to 29.99
))
// Identify users
MostlyGoodMetrics.identify("user_123")
import MostlyGoodMetrics from '@mostly-good-metrics/react-native';
// Initialize once at app startup
MostlyGoodMetrics.configure('mgm_proj_your_api_key');
// Track events
MostlyGoodMetrics.track('button_clicked');
MostlyGoodMetrics.track('purchase_completed', {
product_id: 'SKU123',
price: 29.99,
});
// Identify users
MostlyGoodMetrics.identify('user_123');
import { MostlyGoodMetrics } from '@mostly-good-metrics/javascript';
// Initialize once at app startup
MostlyGoodMetrics.configure({ apiKey: 'mgm_proj_your_api_key' });
// Track events
MostlyGoodMetrics.track('button_clicked');
MostlyGoodMetrics.track('purchase_completed', {
product_id: 'SKU123',
price: 29.99,
});
// Identify users
MostlyGoodMetrics.identify('user_123');
import 'package:mostly_good_metrics_flutter/mostly_good_metrics_flutter.dart';
// Initialize once at app startup
await MostlyGoodMetrics.configure(
MGMConfiguration(apiKey: 'mgm_proj_your_api_key'),
);
// Track events
MostlyGoodMetrics.track('button_clicked');
MostlyGoodMetrics.track('purchase_completed', properties: {
'product_id': 'SKU123',
'price': 29.99,
});
// Identify users
await MostlyGoodMetrics.identify('user_123');
import MostlyGoodMetrics from '@mostly-good-metrics/capacitor';
// Initialize once at app startup
MostlyGoodMetrics.configure('mgm_proj_your_api_key', {
appVersion: '1.0.0',
});
// Track events
MostlyGoodMetrics.track('button_clicked');
MostlyGoodMetrics.track('purchase_completed', {
product_id: 'SKU123',
price: 29.99,
});
// Identify users
MostlyGoodMetrics.identify('user_123');
That's it! Events are automatically batched and sent. View them in your dashboard.
What Happens Automatically
All SDKs automatically:
- Persist events locally, surviving app restarts
- Batch events for efficient network usage
- Flush on interval (default: every 30 seconds)
- Flush on background when the app goes to background
- Retry on failure for network errors
- Track lifecycle events like app open, install, and update
Next Steps
- Read the SDK documentation for your platform
- Learn about tracking events
- Understand reserved events that are tracked automatically