Getting Started
Welcome to the Teads Flutter SDK — Teads' premium video advertising and content recommendations in a single Flutter plugin, with one Dart API for both iOS and Android.
What is the Teads Flutter SDK?
teads_flutter gives Flutter apps a single Dart API over Teads' in-app ad formats. Most placements wrap the
native iOS and Android Teads SDKs; the Feed placement is implemented in Dart. Either
way you write Dart only — there is no platform channel work on your side.
Built for Flutter developers who want to:
- Display premium video advertisements inside their content
- Show content recommendation widgets to increase engagement
- Monetize with a single, comprehensive solution
- Keep one codebase for iOS and Android
Quick Start Overview
1. Install the plugin
Add the dependency and complete the small amount of Android and iOS setup. → See the Installation Guide
2. Configure the SDK once
TeadsSdk.configure() at app start, before any placement exists.
3. Add placements
Drop a widget into your tree, or call the data API and render it yourself. → See the Integration Guide
What You Can Build
Placement types
| Placement | Dart API | What it is |
|---|---|---|
| Feed | FeedPlacement | SmartFeed — a self-paginating recommendations feed |
| Media (InRead) | MediaPlacement | Premium video/display ad rendered inline in your content |
| Banner | BannerPlacement | Fixed-purpose banner slot |
| Interstitial | InterstitialPlacement | Fullscreen ad; preload, then present |
| Recommendations | Recommendations.fetch | Recommendation data — you build the list UI |
Not supported:
- ❌ Media Native placement
Recommendations returns data rather than a widget, deliberately: it lets you render
recommendations with your own list widgets and styling. See
Recommendations.
Key benefits
- Cross-platform — one Dart API for iOS and Android
- Null-safe Dart — full type definitions, no dynamic maps in the public API
- Self-sizing widgets — placements resize themselves as the creative loads
- Event-driven — typed callbacks for every placement lifecycle event
- Injectable interfaces — depend on an abstraction and swap in a test double
Quick Setup
Configure the SDK once, before creating any placement:
import 'package:teads_flutter/teads_flutter.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await TeadsSdk.configure('YOUR_APP_KEY');
runApp(const MyApp());
}
Basic Media (InRead) placement
MediaPlacement(
config: MediaPlacementConfig(
pid: 84242,
articleUrl: 'https://example.com/article/123',
),
)
Basic Feed placement
FeedPlacement(
config: FeedPlacementConfig(
widgetId: 'MB_1',
installationKey: 'NANOWDGT01',
articleUrl: 'https://example.com/article/123',
),
)
With event callbacks
MediaPlacement(
config: MediaPlacementConfig(pid: 84242),
onReady: () => debugPrint('Ad ready'),
onFailed: (TeadsAdError error) => debugPrint('Failed: ${error.reason}'),
onClicked: (TeadsAdClick click) => debugPrint('Clicked: ${click.url}'),
onEvent: (TeadsAdEvent event, Map<String, dynamic>? data) {
debugPrint('Event: $event');
},
)
Need more detail? The snippets above are deliberately minimal. The Integration Guide covers every placement, event handling, dark mode, and fullscreen video.
Where to Go Next
Essential guides
- Installation — the dependency, Android Gradle, and iOS CocoaPods setup
- Prerequisites — versions, checklists, and what to verify before release
- Integration Guide — every placement, with complete examples
- Test Configurations — the test PIDs and widget IDs to develop against
Features
- Placement Events — the full event vocabulary
- Settings & Configuration — every config field, per placement
- Privacy & Consent — GDPR, CCPA, GPP, and iOS App Tracking Transparency
- Logging — log levels and routing SDK logs into your own pipeline
- Recommendations Viewability — reporting impressions for your own list UI
Requirements
- Flutter 3.44+ (Dart 3.12+)
- iOS 15.0+ deployment target
- Android
minSdkVersion24+ - JDK 17 or 21 for the Android build
Support & Resources
- Support: Support
- Troubleshooting: Troubleshooting Guide
Ready to start? Follow the Installation Guide, then the Integration Guide.