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');
}
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.

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 interface
  • cattyinstall_android - Android implementation
  • cattyinstall_ios - iOS implementation
  • cattyinstall_web - Web implementation

Requirements

  • Flutter >= 3.0.0
  • Dart >= 3.0.0

License

Proprietary - Cattyinstall

Libraries

cattyinstall
Cattyinstall SDK for Flutter