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

Flutter SDK for the Notik Offerwall. Provides native offer listing, search, sort, categories, offer details, WebView-based offer flow, and postback tracking.

Notik Offerwall SDK for Flutter #

A fully native Flutter SDK for integrating the Notik Offerwall into your app. Users complete offers (installs, surveys, games, tasks) and earn rewards.

Unlike wrapper SDKs that embed a black-box native view, this SDK provides a fully customizable Flutter UI with native platform channels for deep hardware info collection.

Features #

  • Native offerwall UI with search, category filter, sort, and infinite scroll
  • Offer detail screen with multi-step missions and platform tags
  • WebView-based offer redemption flow
  • Postback/conversion tracking with polling and listener callbacks
  • Sanctum token authentication bound to device fingerprint
  • 40+ hardware fields collected via native Android (Kotlin) and iOS (Swift) code
  • Full theming support (light, dark, custom)
  • Auto token refresh and 401 retry
  • hasOffers() pre-check for conditional UI display
  • GAID (Android) and IDFA (iOS) collection

Installation #

Add to your pubspec.yaml:

dependencies:
  notik_offerwall: ^1.0.0

Then run:

flutter pub get

Android #

Minimum SDK 21. Add internet permission (usually already present):

<uses-permission android:name="android.permission.INTERNET"/>

iOS #

Minimum iOS 13.0. Add to your Info.plist for ad tracking (IDFA):

<key>NSUserTrackingUsageDescription</key>
<string>This identifier will be used to show you relevant offers.</string>

Quick Start #

import 'package:notik_offerwall/notik_offerwall.dart';

// 1. Initialize (verifies credentials + collects device info + gets auth token)
try {
  final result = await NotikOfferwall.init(NotikConfig(
    apiKey: 'your_api_key',
    pubId: 'your_pub_id',
    appId: 'your_app_id',
    userId: 'user_123',
  ));
  print('Connected: ${result.appName} (${result.status})');
} on NotikInitException catch (e) {
  print('Init failed: ${e.message}');
}

// 2. Check if offers are available (optional)
final available = await NotikOfferwall.hasOffers();

// 3. Show the offerwall
NotikOfferwall.show(context);
// or as a bottom sheet:
NotikOfferwall.showAsBottomSheet(context);

// 4. Listen for completed offers
NotikOfferwall.onPostback((event) {
  print('Earned ${event.payout} ${event.rewardName} for ${event.offerName}');
});
NotikOfferwall.startPostbackPolling();

// 5. Show reward history
NotikOfferwall.showRewardHistory(context);

// 6. Clean up when done
NotikOfferwall.dispose();

Theming #

NotikOfferwall.init(NotikConfig(
  apiKey: 'your_api_key',
  pubId: 'your_pub_id',
  appId: 'your_app_id',
  userId: 'user_123',
  theme: NotikTheme(
    primaryColor: Colors.deepPurple,
    backgroundColor: Colors.white,
    onSurfaceColor: Colors.black87,
    buttonTextColor: Colors.white,
    appBarTitle: 'Earn Rewards',
    useDarkTheme: false,
  ),
));

Or use the built-in presets:

theme: NotikTheme.dark(),
theme: NotikTheme.light(),

How It Works #

  1. init() validates credentials with the Notik backend and obtains a Sanctum token bound to the device fingerprint (valid 30 minutes, auto-refreshes)
  2. Native platform channels collect 40+ hardware fields (SIM, sensors, camera, CPU, GPU, RAM, screen) for device registration and fraud prevention
  3. All API requests are authenticated with Authorization: Bearer <token> and X-Device-Fingerprint headers
  4. Offers are fetched, filtered, and displayed in a fully Flutter-native UI
  5. Postbacks are polled periodically and delivered to registered listeners

API Reference #

Method Description
NotikOfferwall.init(config) Initialize SDK, verify credentials, get auth token
NotikOfferwall.show(context) Open offerwall full-screen
NotikOfferwall.showAsBottomSheet(context) Open offerwall as bottom sheet
NotikOfferwall.showRewardHistory(context) Open reward history screen
NotikOfferwall.hasOffers() Check if offers exist for this user
NotikOfferwall.onPostback(callback) Register postback listener
NotikOfferwall.startPostbackPolling() Start auto-polling for conversions
NotikOfferwall.stopPostbackPolling() Stop polling
NotikOfferwall.checkPostbacks() Manual postback check
NotikOfferwall.dispose() Clean up resources

Requirements #

  • Flutter >= 3.16.0
  • Dart >= 3.2.0
  • Android minSdk 21+
  • iOS 13.0+
  • A Notik publisher account (notik.me)

License #

MIT

2
likes
0
points
31
downloads

Publisher

unverified uploader

Weekly Downloads

Flutter SDK for the Notik Offerwall. Provides native offer listing, search, sort, categories, offer details, WebView-based offer flow, and postback tracking.

Homepage

License

unknown (license)

Dependencies

advertising_id, crypto, device_info_plus, flutter, http, package_info_plus, url_launcher, webview_flutter

More

Packages that depend on notik_offerwall

Packages that implement notik_offerwall