InAppNinja (EmbedCraft)

A powerful, high-performance Flutter SDK for displaying in-app campaigns, user engagement nudges, and interactive experiences.

Features

  • Rich Tooltips: Attach contextual guidance tooltips to any Flutter widget.
  • Stories: Dynamic, Instagram-like stories inside your app.
  • Challenges & Gamification: Custom progress trackers, scratch cards, and spin-the-wheels.
  • Multiple Formats: In-app bottom sheets, modals, Picture-in-Picture widgets, banners, and inline elements.
  • Targeting Engine: Evaluate campaign targets based on event tracking and user properties.
  • Custom HTML Layers: Render custom web content cleanly in a sandboxed view.

Installation

Add in_app_ninja to your pubspec.yaml:

dependencies:
  in_app_ninja: ^1.0.0

Run:

flutter pub get

Getting Started

1. Initialize the SDK

Initialize AppNinja during app startup with your API key:

import 'package:in_app_ninja/in_app_ninja.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  
  AppNinja.init(
    'YOUR_API_KEY',
    autoRender: true,
  );
  
  runApp(const MyApp());
}

2. Identify Users

Set user properties for personalized targeting:

await AppNinja.userIdentifier(
  externalId: 'user_123',
  name: 'John Doe',
  email: 'john.doe@example.com',
  userProperties: {
    'subscription': 'premium',
    'sign_up_date': '2026-06-25',
  },
);

3. Track Events

Track actions to trigger campaigns dynamically:

await AppNinja.track('add_to_cart', properties: {
  'item_id': 'prod_99',
  'category': 'footwear',
});

4. Track Pages

Track current screen changes to target page-specific nudges:

AppNinja.trackPage('checkout_screen', context);

License

This project is licensed under the MIT License - see the LICENSE file for details.

Libraries

in_app_ninja
InAppNinja SDK - Powerful in-app engagement and nudges for Flutter apps