liquid_amplitude 0.2.0 copy "liquid_amplitude: ^0.2.0" to clipboard
liquid_amplitude: ^0.2.0 copied to clipboard

Amplitude destination for liquid_analytics — product analytics with user and group properties, EU residency, and opt-out.

example/main.dart

// Amplitude as a liquid destination — user and group properties, US/EU
// residency and client-side opt-out.
import 'package:liquid_amplitude/liquid_amplitude.dart';
import 'package:liquid_analytics/liquid_analytics.dart';

class CheckoutStarted extends LiquidEvent {
  const CheckoutStarted({required this.cartValue, required this.items});

  final double cartValue;
  final List<String> items;

  @override
  String get name => 'checkout_started';

  @override
  Map<String, Object?> get properties => {
        'cart_value': cartValue,
        'items': items, // nested lists/maps arrive intact
      };
}

Future<void> main() async {
  final amplitude = AmplitudeSink(
    apiKey: 'YOUR_API_KEY',
    serverZone: ServerZone.eu, // data residency
    optOut: true, // start opted out until consent arrives
    groupType: 'company',
  );

  final liquid = Liquid(
    sinks: [amplitude],
    consent: const ConsentPolicy(
      requireOptIn: true,
      map: {
        ConsentCategory.analytics: ['amplitude'],
      },
    ),
  );
  await liquid.init();

  // Mirror the decision into Amplitude's own opt-out.
  liquid.consent.addListener(() async {
    await amplitude.applyConsent(
      granted: liquid.consent.statusOf(ConsentCategory.analytics) ==
          ConsentStatus.granted,
    );
  });

  liquid.log(const CheckoutStarted(cartValue: 42, items: ['sku_1', 'sku_2']));
  liquid.consent.grant(ConsentCategory.analytics); // buffered events replay

  liquid.screen('Cart'); // -> track('Screen Viewed') + screen_name
  liquid.identify('user_123', {'plan': 'pro'}); // setUserId + Identify traits
  liquid.group('acme_inc', {'seats': 40}); // setGroup + groupIdentify

  await liquid.flush();
  await liquid.reset();
  await liquid.dispose();
}
0
likes
160
points
13
downloads

Documentation

API reference

Publisher

verified publisherketok.id

Weekly Downloads

Amplitude destination for liquid_analytics — product analytics with user and group properties, EU residency, and opt-out.

Homepage
Repository (GitHub)
View/report issues
Contributing

Topics

#analytics #amplitude #flutter

License

MIT (license)

Dependencies

amplitude_flutter, flutter, liquid_analytics, meta

More

Packages that depend on liquid_amplitude