clippr 0.0.3 copy "clippr: ^0.0.3" to clipboard
clippr: ^0.0.3 copied to clipboard

Deep linking and mobile attribution SDK for Flutter. Seamless replacement for Firebase Dynamic Links.

Clippr Flutter SDK #

Deep linking and mobile attribution SDK for Flutter. A seamless replacement for Firebase Dynamic Links.

Installation #

Add to your pubspec.yaml:

dependencies:
  clippr: ^0.0.3

Quick Start #

1. Initialize the SDK #

import 'package:clippr/clippr.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  await Clippr.initialize(apiKey: 'your_api_key_here');
  
  runApp(MyApp());
}
class _MyAppState extends State<MyApp> {
  @override
  void initState() {
    super.initState();
    _initDeepLinks();
  }

  Future<void> _initDeepLinks() async {
    // Get the link that opened the app (direct or deferred)
    final link = await Clippr.getInitialLink();
    if (link != null) {
      _handleDeepLink(link);
    }

    // Listen for links while app is running
    Clippr.onLink = (link) {
      _handleDeepLink(link);
    };
  }

  void _handleDeepLink(ClipprLink link) {
    print('Path: ${link.path}');
    print('Campaign: ${link.attribution?.campaign}');
    
    // Navigate based on path
    if (link.path.startsWith('/product/')) {
      final productId = link.path.split('/').last;
      Navigator.pushNamed(context, '/product', arguments: productId);
    }
  }
}

3. Track Events (Optional) #

// Track a simple event
await Clippr.track('signup_completed');

// Track with parameters
await Clippr.track('add_to_cart', params: {
  'product_id': '12345',
  'price': 29.99,
});

// Track revenue
await Clippr.trackRevenue(
  'purchase',
  revenue: 99.99,
  currency: 'USD',
  params: {'product_id': '12345'},
);

Platform Setup #

iOS #

Add Associated Domains capability in Xcode:

  1. Open your iOS project in Xcode
  2. Select your target → Signing & Capabilities
  3. Click "+ Capability" and add "Associated Domains"
  4. Add: applinks:yourapp.clppr.xyz

Android #

Add intent filter to your AndroidManifest.xml:

<activity android:name=".MainActivity">
    <intent-filter android:autoVerify="true">
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        
        <data
            android:scheme="https"
            android:host="yourapp.clppr.xyz" />
    </intent-filter>
</activity>

API Reference #

Clippr #

Method Description
initialize(apiKey:, debug:) Initialize the SDK
getInitialLink() Get the link that opened the app
onLink Callback for links received while app is running
track(eventName, params:) Track a custom event
trackRevenue(eventName, revenue:, currency:, params:) Track a revenue event
Property Type Description
path String The deep link path (e.g., "/product/123")
metadata Map<String, dynamic>? Custom metadata attached to the link
attribution Attribution? Campaign attribution data
matchType MatchType How the link was matched
confidence double? Match confidence (0.0 - 1.0)

MatchType #

Value Description
direct User clicked link with app installed
deterministic Matched via Install Referrer (Android, 100% accurate)
probabilistic Matched via device fingerprinting
none No match found
Firebase Dynamic Links Clippr
FirebaseDynamicLinks.instance.getInitialLink() Clippr.getInitialLink()
FirebaseDynamicLinks.instance.onLink Clippr.onLink

The API is intentionally similar for easy migration.

Requirements #

  • Flutter 3.10+
  • iOS 13.0+
  • Android API 21+

License #

MIT License. See LICENSE for details.

0
likes
160
points
111
downloads

Publisher

unverified uploader

Weekly Downloads

Deep linking and mobile attribution SDK for Flutter. Seamless replacement for Firebase Dynamic Links.

Homepage
Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

flutter

More

Packages that depend on clippr

Packages that implement clippr