Cattyinstall Flutter SDK
The official Flutter SDK for Cattyinstall - an app install attribution and deferred deep linking platform.
Features
- Deferred Deep Linking - Link users from landing pages to specific in-app content, even through app store installs
- Anonymous Attribution - Attribute installs to marketing channels without collecting personal data
- Cross-Platform - Supports Android, iOS, and Web from a single codebase
- Fingerprint-Based Matching - Probabilistic matching using device characteristics
Platform Support
| Platform | Support |
|---|---|
| Android | ✅ |
| iOS | ✅ |
| Web | ✅ |
Installation
Add to your pubspec.yaml:
dependencies:
cattyinstall: ^1.0.0
Then run:
flutter pub get
Quick Start
1. Initialize the SDK
import 'package:cattyinstall/cattyinstall.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Cattyinstall.initialize(
key: 'YOUR_APP_KEY',
server: 'https://your-server.com',
debug: false,
);
runApp(MyApp());
}
2. Get Install Parameters
Retrieve attribution data matched from the user's landing page visit:
final params = await Cattyinstall.getParams();
if (params.matched) {
print('Channel: ${params.channelCode}');
print('Match type: ${params.matchType}');
print('Match score: ${params.matchScore}');
// Access custom parameters
final campaignId = params.get<String>('campaignId');
final source = params.get<String>('source');
}
3. Listen for Deep Links
Cattyinstall.onDeepLink.listen((params) {
print('Deep link received: $params');
// Navigate to the appropriate screen
});
API Reference
Cattyinstall.initialize()
Initialize the SDK. Must be called before any other method.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
key |
String | Yes | - | Your application key |
server |
String | Yes | - | Server URL |
debug |
bool | No | false |
Enable debug logging |
useClipboard |
bool | No | false |
Enable clipboard-based matching |
Cattyinstall.getParams()
Returns Future<InstallParams> with attribution data.
Cattyinstall.onDeepLink
Returns Stream<Map<String, dynamic>> for deep link events.
Cattyinstall.isInitialized
Returns bool indicating whether the SDK has been initialized.
Cattyinstall.channel
Returns String? with the matched channel code, or null.
Cattyinstall.dispose()
Clean up SDK resources. Call when the app is terminating.
Configuration Options
InstallParams
| Property | Type | Description |
|---|---|---|
matched |
bool |
Whether a visit match was found |
matchType |
String? |
Match method (exact, fuzzy, etc.) |
matchScore |
int? |
Match confidence score |
channelCode |
String? |
Marketing channel code |
channelName |
String? |
Marketing channel name |
params |
Map<String, dynamic> |
Custom parameters from landing |
error |
String? |
Error message if matching failed |
Architecture
This SDK follows the federated plugin pattern:
cattyinstall- App-facing package (this package)cattyinstall_platform_interface- Platform interfacecattyinstall_android- Android implementationcattyinstall_ios- iOS implementationcattyinstall_web- Web implementation
Requirements
- Flutter >= 3.0.0
- Dart >= 3.0.0
License
Proprietary - Cattyinstall
Libraries
- cattyinstall
- Cattyinstall SDK for Flutter