dozz_analytics_sdk 0.1.1 copy "dozz_analytics_sdk: ^0.1.1" to clipboard
dozz_analytics_sdk: ^0.1.1 copied to clipboard

Consent-aware, offline-first mobile analytics and click attribution for Flutter applications.

example/main.dart

import 'package:dozz_analytics_sdk/dozz_analytics_sdk.dart';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  final httpClient = http.Client();
  final analytics = DozzAnalyticsSdk(
    config: DozzAnalyticsConfig(
      endpoint: Uri.parse('https://track.example.com/sdk/v1/events'),
      writeKey: const String.fromEnvironment(
        'DOZZ_WRITE_KEY',
        defaultValue: 'dozz_replace_with_admin_generated_key',
      ),
    ),
    storage: SharedPreferencesDozzStorage(),
    httpClient: HttpDozzClient(httpClient),
  );
  await analytics.initialize();
  runApp(ExampleApp(analytics: analytics, httpClient: httpClient));
}

final class ExampleApp extends StatefulWidget {
  const ExampleApp({
    required this.analytics,
    required this.httpClient,
    super.key,
  });

  final DozzAnalyticsSdk analytics;
  final http.Client httpClient;

  @override
  State<ExampleApp> createState() => _ExampleAppState();
}

final class _ExampleAppState extends State<ExampleApp> {
  late final DozzAnalyticsLifecycle _lifecycle;

  @override
  void initState() {
    super.initState();
    _lifecycle = DozzAnalyticsLifecycle(widget.analytics)..start();
  }

  @override
  void dispose() {
    _lifecycle.dispose();
    widget.httpClient.close();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          child: FilledButton(
            onPressed: () async {
              await widget.analytics.setConsent(DozzConsent.granted);
              await widget.analytics.trackTap('example_button');
            },
            child: const Text('Allow analytics and track tap'),
          ),
        ),
      ),
    );
  }
}
0
likes
150
points
31
downloads

Documentation

Documentation
API reference

Publisher

unverified uploader

Weekly Downloads

Consent-aware, offline-first mobile analytics and click attribution for Flutter applications.

Homepage

Topics

#analytics #attribution #privacy #flutter

License

unknown (license)

Dependencies

flutter, http, shared_preferences

More

Packages that depend on dozz_analytics_sdk