appsprint_flutter 0.1.0 copy "appsprint_flutter: ^0.1.0" to clipboard
appsprint_flutter: ^0.1.0 copied to clipboard

Flutter AppSprint attribution SDK.

appsprint-flutter #

AppSprint mobile attribution SDK for Flutter. It tracks installs, attribution, lifecycle events, custom events, and revenue events, with local event queueing for transient failures.

Installation #

Add the package to your pubspec.yaml:

dependencies:
  appsprint_flutter: ^0.1.0

Then run:

flutter pub get

Quick start #

Initialize the SDK as early as possible in app startup:

import 'package:appsprint_flutter/appsprint_flutter.dart';

await AppSprint.instance.configure(
  const AppSprintConfig(
    apiKey: 'YOUR_API_KEY',
  ),
);

Configuration #

Option Type Required Default
apiKey String Yes
apiUrl String No https://api.appsprint.app
enableAppleAdsAttribution bool No true
isDebug bool No false
logLevel int No 2
customerUserId String? No null

Log levels:

0 = debug, 1 = info, 2 = warn, 3 = error

Sending events #

import 'package:appsprint_flutter/appsprint_flutter.dart';

await AppSprint.instance.sendEvent(AppSprintEventType.login);
await AppSprint.instance.sendEvent(AppSprintEventType.signUp);
await AppSprint.instance.sendEvent(
  AppSprintEventType.purchase,
  params: {
    'revenue': 9.99,
    'currency': 'USD',
  },
);

await AppSprint.instance.sendEvent(
  AppSprintEventType.custom,
  name: 'onboarding_step',
  params: {
    'screen': 'welcome',
    'step': 1,
  },
);

Supported eventType values:

login | sign_up | register | purchase | subscribe | start_trial | add_to_cart | add_to_wishlist | initiate_checkout | view_content | view_item | search | share | tutorial_complete | level_start | level_complete | custom

Notes:

  • Use eventType: AppSprintEventType.custom together with the optional name argument for custom event names.
  • Revenue fields are accepted through params['revenue'] and params['currency'].
  • If an event cannot be delivered, it is queued locally and retried on the next initialization or explicit flush.

Public API #

AppSprint #

import 'package:appsprint_flutter/appsprint_flutter.dart';

Available methods:

  • AppSprint.instance.configure(config) initializes the SDK and performs install tracking when needed.
  • sendEvent(eventType, {name, params}) sends or queues an event.
  • sendTestEvent() sends a diagnostic event and returns { success, message }.
  • flush() retries queued events immediately.
  • clearData() clears cached SDK state and the local event queue.
  • isSdkDisabled() returns whether the SDK has been disabled because the API key was rejected.
  • setCustomerUserId(userId) updates the customer user id locally and remotely when possible.
  • getAppSprintId() returns the cached AppSprint install identifier, if available.
  • getAttribution() returns the last cached attribution result, if available.
  • enableAppleAdsAttribution() re-enables Apple Ads attribution in the current runtime config.
  • isInitialized() reports whether configure() completed.
  • destroy() removes SDK listeners.

AppSprintNative #

import 'package:appsprint_flutter/appsprint_flutter.dart';

Available methods:

  • getDeviceInfo()
  • getAdServicesToken()
  • requestTrackingAuthorization()

Example ATT request on iOS:

final authorized = await AppSprintNative.requestTrackingAuthorization();

Attribution #

The SDK tracks install attribution once an install is registered. You can read the cached values at any time:

final attribution = await AppSprint.instance.getAttribution();
final appsprintId = await AppSprint.instance.getAppSprintId();

AttributionResult.source can be:

apple_ads | fingerprint | organic

Offline and retry behavior #

  • The SDK keeps up to 100 queued events in local storage.
  • Queued events are flushed after configure() and when the app moves to the background.
  • Failed flushes keep the unsent events queued for a later retry.
  • A rejected API key (401 or 403) disables the SDK and drops future events until cached data is cleared.

Local development #

Point the SDK at a non-production backend during development:

await AppSprint.instance.configure(
  const AppSprintConfig(
    apiKey: 'YOUR_API_KEY',
    apiUrl: 'http://localhost:3000',
    isDebug: true,
  ),
);

License #

MIT

0
likes
120
points
101
downloads

Documentation

API reference

Publisher

verified publisherappsprint.app

Weekly Downloads

Flutter AppSprint attribution SDK.

Homepage

License

MIT (license)

Dependencies

flutter

More

Packages that depend on appsprint_flutter

Packages that implement appsprint_flutter