arkadia_sdk

SDK officiel de l'API Arkadia pour Flutter : envoyez l'activité et les ventes de votre application, lisez votre quota et vos statistiques.

  • File d'attente hors ligne, renvois automatiques sans doublon (clé d'idempotence)
  • Envoi automatique quand l'app passe en arrière-plan
  • Android, iOS, web, desktop

Installation

flutter pub add arkadia_sdk

Démarrage

import 'package:arkadia_sdk/arkadia_sdk.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await ArkadiaClient.init(
    apiKey: 'ark_live_…',        // onglet « API » de votre espace Arkadia
    appCode: 'APP-XXXX-XXXX',
    platform: defaultTargetPlatform.name,
    appVersion: '2.3.0',
    debug: kDebugMode,
  );
  runApp(const MyApp());
}
ArkadiaClient.screenView('dashboard', previousScreen: 'login');
ArkadiaClient.sessionStart(userId: hashedUserId);
ArkadiaClient.sessionEnd(342);
ArkadiaClient.featureUsed('export_pdf', metadata: {'format': 'a4'});
ArkadiaClient.crash('StateError', e.toString(), stackTrace: st.toString());

// Ventes — montants en centimes (9 900 XOF = 990000)
ArkadiaClient.subscriptionStarted('pro', 990000, 'monthly', userId: hashedUserId);
ArkadiaClient.purchaseCompleted('module-crm', 'Module CRM', 250000);
ArkadiaClient.trialStarted('pro', 14);

// Event générique
ArkadiaClient.track('app.onboarding_completed', properties: {'durationSeconds': 120});

Les events partent toutes les 30 secondes, dès qu'un lot est plein, quand l'app passe en arrière-plan, ou avec await ArkadiaClient.flush(). Les crashs partent immédiatement. Pour userId, envoyez un identifiant anonymisé.

Quota et statistiques

final status = await ArkadiaClient.status();
final quota = status['quota'] as Map<String, dynamic>;
print('${quota['used_this_month']} / ${quota['limit']} events ce mois');

final stats = await ArkadiaClient.analytics(
  from: DateTime.utc(2026, 9, 1),
  to: DateTime.utc(2026, 9, 30),
);

Ces méthodes lèvent une ArkadiaApiException (statusCode, code, message) en cas d'erreur.

Webhooks

Les webhooks se vérifient côté serveur. En Node.js, utilisez @arkadiadev/sdk/webhooks ; dans un autre langage, calculez HMAC-SHA256(secret, "<t>.<corps brut>") en hexadécimal et comparez-le à la valeur v1 de l'en-tête X-Arkadia-Signature: t=<t>,v1=<signature> (en refusant un t vieux de plus de 5 minutes).

Limites

Clé live Clé test
Events par requête 50 20
Events par minute 300 60
Lectures (status, analytics) par minute 60 30

Le SDK respecte automatiquement ces limites et l'en-tête Retry-After.

Libraries

arkadia_sdk
SDK officiel de l'API Arkadia pour Flutter.