cattyinstall 1.0.0
cattyinstall: ^1.0.0 copied to clipboard
Cattyinstall SDK for Flutter - App install attribution and deep linking.
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