sinsera_track_sdk 1.0.0 copy "sinsera_track_sdk: ^1.0.0" to clipboard
sinsera_track_sdk: ^1.0.0 copied to clipboard

Official Sinsera Track SDK for Flutter applications. Provides advanced attribution tracking with device fingerprinting and fraud analysis capabilities.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:sinsera_track_sdk/sinsera_track_sdk.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Sinsera Track SDK Example',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const MyHomePage(title: 'Sinsera Track SDK Example'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  late SinseraTrackSdk _sdk;
  String _status = 'Not initialized';
  String _installId = 'None';
  bool _isInitialized = false;
  bool _hasActiveSession = false;

  @override
  void initState() {
    super.initState();
    _initializeSDK();
  }

  Future<void> _initializeSDK() async {
    _sdk = SinseraTrackSdk(
      appToken: '8a2d4add-6a08-473c-9c12-5b176c91987d', // Example token
      secretKey: 'b4f1001c-19da-4802-b178-1e320dc36a72', // Example secret
      packageName: 'com.sinseragames.frogman',
      enableDebugLogs: true,
    );

    setState(() {
      _status = 'Initializing...';
    });

    try {
      final success = await _sdk.initialize();
      setState(() {
        _status = success ? 'Initialized successfully' : 'Initialization failed';
        _isInitialized = _sdk.isInitialized;
      });
    } catch (e) {
      setState(() {
        _status = 'Initialization error: $e';
      });
    }
  }

  Future<void> _createSession() async {
    if (!_isInitialized) {
      _showSnackBar('SDK not initialized');
      return;
    }

    setState(() {
      _status = 'Creating session...';
    });

    try {
      final success = await _sdk.createSession();
      setState(() {
        _status = success ? 'Session created successfully' : 'Session creation failed';
        _hasActiveSession = _sdk.hasActiveSession;
        _installId = _sdk.installId ?? 'None';
      });
    } catch (e) {
      setState(() {
        _status = 'Session creation error: $e';
      });
    }
  }

  Future<void> _trackEvent(String eventName, [Map<String, dynamic>? eventValue]) async {
    if (!_hasActiveSession) {
      _showSnackBar('Session not active');
      return;
    }

    setState(() {
      _status = 'Tracking event: $eventName...';
    });

    try {
      final success = await _sdk.trackEvent(eventName, eventValue);
      setState(() {
        _status = success 
            ? 'Event tracked successfully: $eventName' 
            : 'Event tracking failed: $eventName';
      });
    } catch (e) {
      setState(() {
        _status = 'Event tracking error: $e';
      });
    }
  }

  void _showSnackBar(String message) {
    ScaffoldMessenger.of(context).showSnackBar(
      SnackBar(content: Text(message)),
    );
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: Text(widget.title),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.stretch,
          children: [
            // Status Card
            Card(
              child: Padding(
                padding: const EdgeInsets.all(16.0),
                child: Column(
                  crossAxisAlignment: CrossAxisAlignment.start,
                  children: [
                    const Text(
                      'SDK Status',
                      style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold),
                    ),
                    const SizedBox(height: 8),
                    Text('Status: $_status'),
                    Text('Initialized: $_isInitialized'),
                    Text('Active Session: $_hasActiveSession'),
                    Text('Install ID: $_installId'),
                  ],
                ),
              ),
            ),
            const SizedBox(height: 16),

            // Actions
            const Text(
              'Actions',
              style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold),
            ),
            const SizedBox(height: 8),

            ElevatedButton(
              onPressed: _isInitialized ? null : _initializeSDK,
              child: const Text('Initialize SDK'),
            ),
            const SizedBox(height: 8),

            ElevatedButton(
              onPressed: _isInitialized && !_hasActiveSession ? _createSession : null,
              child: const Text('Create Session'),
            ),
            const SizedBox(height: 16),

            const Text(
              'Track Events',
              style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold),
            ),
            const SizedBox(height: 8),

            ElevatedButton(
              onPressed: _hasActiveSession 
                  ? () => _trackEvent('user_login')
                  : null,
              child: const Text('Track User Login'),
            ),
            const SizedBox(height: 8),

            ElevatedButton(
              onPressed: _hasActiveSession 
                  ? () => _trackEvent('level_completed', {
                      'level': 5,
                      'score': 12500,
                      'time_spent': 180,
                    })
                  : null,
              child: const Text('Track Level Completed'),
            ),
            const SizedBox(height: 8),

            ElevatedButton(
              onPressed: _hasActiveSession 
                  ? () => _trackEvent('purchase', {
                      'item_id': 'premium_upgrade',
                      'price': 9.99,
                      'currency': 'USD',
                    })
                  : null,
              child: const Text('Track Purchase'),
            ),
            const SizedBox(height: 8),

            ElevatedButton(
              onPressed: _hasActiveSession 
                  ? () => _trackEvent('custom_event', {
                      'custom_param': 'custom_value',
                      'timestamp': DateTime.now().millisecondsSinceEpoch,
                    })
                  : null,
              child: const Text('Track Custom Event'),
            ),
          ],
        ),
      ),
    );
  }
}
0
likes
130
points
5
downloads

Publisher

unverified uploader

Weekly Downloads

Official Sinsera Track SDK for Flutter applications. Provides advanced attribution tracking with device fingerprinting and fraud analysis capabilities.

Repository (GitHub)
View/report issues

Topics

#attribution #tracking #analytics #fraud-detection #mobile

Documentation

Documentation
API reference

License

MIT (license)

Dependencies

battery_plus, crypto, device_info_plus, ffi, flutter, http, package_info_plus, sensors_plus, shared_preferences

More

Packages that depend on sinsera_track_sdk

Packages that implement sinsera_track_sdk