OMNIBOX Flutter SDK Dart · iOS · Android
Prebid Mobile SDK orqali kross-platforma reklama integratsiyasi. Banner va outstream video.
SDK yuklab olish
Arxiv iabox_prebid-flutter-sdk-1.0.0.zip — plagin, INTEGRATION.md va demo ilova
Umumiy ko'rinish
IABox Prebid Flutter SDK ni iOS va Android ga ulash bo'yicha hamkorlar qo'llanmasi.
SDK Prebid Mobile (iOS 3.3.0 / Android 3.3.1) ustiga qurilgan. Banner, interstitial va outstream video reklamalari Standalone rejimida qo'llab-quvvatlanadi.
Dart API ikkala platformada bir xil. Native sozlash farq qiladi — quyidagi bo'limlarni ko'ring.
Integratsiya tartibi
- Arxivni olish —
iabox_prebid-flutter-sdk-1.0.0.zipiaBox dan - O'rnatish —
pubspec.yamlga plugin qo'shing,flutter pub get - Android / iOS sozlash — manifest, Info.plist,
pod install - SDK ishga tushirish — ilova boshida
IABoxPrebid.initialize() - Banner yoki outstream — init dan keyin
IABoxBanner/IABoxOutstreamVideo
iOS da ishga tushirishdan oldin ATT ruxsatini so'rash tavsiya etiladi (iOS sozlash).
SDK paketi
iabox_prebid-flutter-sdk-1.0.0.zip arxivi iabox_prebid/ papkasini — plugin, qo'llanma va demo bilan o'z ichiga oladi.
iaBox menejeridan alohida: configId, accountId va kerak bo'lsa serverUrl (https://ia.box/ads/prebid).
iabox_prebid/
├── INTEGRATION.md
├── pubspec.yaml
├── lib/
├── android/
├── ios/
└── example/
import 'package:iabox_prebid/iabox_prebid.dart';
Talablar
| Parametr | Android | iOS |
|---|---|---|
| Flutter | >= 3.16.0 | >= 3.16.0 |
| Dart | >= 3.0.0 | >= 3.0.0 |
| min OS | Android 6.0 (API 23) | iOS 14.0 |
| compileSdk / Xcode | compileSdk 34 | Xcode 15.0+ |
| Prebid SDK | prebid-mobile-sdk 3.3.1 | PrebidMobile 3.3.0 |
O'rnatish
1. Arxivni oching
iabox_prebid papkasini loyihaga nusxalang, masalan packages/iabox_prebid/.
2. Bog'liqlik qo'shing
Variant A — mahalliy papka (iaBox arxivi):
3. Bog'liqliklarni o'rnating
flutter pub get bajaring. iOS da: cd ios && pod install.
4. Import
Mavjud: IABoxPrebid, IABoxBanner, IABoxOutstreamVideo.
5. Platformani sozlang
Quyidagi Android va iOS bo'limlariga qarang.
dependencies:
flutter:
sdk: flutter
iabox_prebid:
path: packages/iabox_prebid
dependencies:
iabox_prebid:
git:
url: URL_FROM_IABOX
ref: v1.0.0
cd packages/iabox_prebid/example
flutter pub get
cd ios && pod install && cd ..
flutter run
Android sozlash
AndroidManifest.xml ga ruxsatlar, Android 11+ uchun queries va AdBrowserActivity qo'shing. build.gradle da minSdk 23 o'rnating.
android {
defaultConfig {
minSdk 23
targetSdk 34
}
}
android.useAndroidX=true
android.enableJetifier=true
iOS sozlash
flutter pub get dan keyin pod install bajaring. Info.plist ga ATT va ATS qo'shing. UI ko'ringandan keyin ATT so'rang.
iOS da adboxsdk.new.js bilan banner kreativlari plagin ichidagi WKWebView orqali render qilinadi — qo'shimcha native kod kerak emas.
cd ios
pod install
cd ..
NSUserTrackingUsageDescription
This identifier will be used to deliver personalized ads to you.
NSAppTransportSecurity
NSAllowsArbitraryLoads
import 'package:app_tracking_transparency/app_tracking_transparency.dart';
Future requestATT() async {
final status = await AppTrackingTransparency.trackingAuthorizationStatus;
if (status == TrackingStatus.notDetermined) {
await AppTrackingTransparency.requestTrackingAuthorization();
}
}
SDK ishga tushirish
Ilova boshida bir marta, reklamadan oldin chaqiriladi. Future<bool> qaytaradi.
| Parametr | Tur | Majburiy | Tavsif |
|---|---|---|---|
accountId | String | ✅ | Hamkor akkaunt ID (odatda Bundle ID) |
serverUrl | String | ✅ | Prebid Server URL |
timeoutMs | int | ❌ (10000) | Auksion timeout, ms |
shareGeoLocation | bool | ❌ (true) | Geolokatsiyani uzatish |
SDK bir marta ishga tushadi./statusxatosi muhim emas — bidlar/openrtb2/auctionga ketadi.
await IABoxPrebid.initialize(
accountId: 'YOUR_ACCOUNT_ID',
serverUrl: 'https://ia.box/ads/prebid',
timeoutMs: 10000,
shareGeoLocation: true,
);
Future _initAds() async {
final success = await IABoxPrebid.initialize(
accountId: 'YOUR_ACCOUNT_ID',
serverUrl: 'https://ia.box/ads/prebid',
timeoutMs: 10000,
shareGeoLocation: true,
);
setState(() => _isAdReady = success);
}
Outstream video
Outstream kontent ichida ijro etiladi. IABoxOutstreamVideo dan foydalaning — videoni Prebid render qiladi.
Android: manifestga AdBrowserActivity qo'shing; onVideoCompleted va hideOnComplete qo'llab-quvvatlanadi.
iOS: onVideoCompleted / hideOnComplete qo'llab-quvvatlanmaydi — vidjetni qo'lda olib tashlang.
Outstreamni birinchi ko'rsatishda Offstage yoki nol balandlikdagi konteynerga qo'ymang (Android).
IABoxOutstreamVideo(
configId: 'YOUR_VIDEO_CONFIG_ID',
width: 300,
height: 250,
protocols: const [2, 3, 4, 5],
hideOnComplete: true,
onAdLoaded: () {},
onAdFailed: () {},
onAdClicked: () {},
onVideoCompleted: () {},
)
Maxfiylik / GDPR
Reklama yuklashdan oldin setPrivacyConfig ni chaqiring. IAB TCF v2 va GPP qo'llab-quvvatlanadi.
await IABoxPrebid.setPrivacyConfig(
tcfString: 'CPxxxxxxxxxxxxxxxxx',
gppString: 'DBABMA~CPxxxx',
gppSid: [7],
);
Hodisalar va callbacklar
Vidjet callbacklari: onAdLoaded, onAdFailed, onAdClicked, onVideoCompleted (faqat Android).
Global oqim: IABoxPrebid.events.listen(...) — onBannerLoaded, onBannerFailed, onVideoLoaded va boshqalar.
final sub = IABoxPrebid.events.listen((event) {
switch (event['method']) {
case 'onBannerLoaded':
break;
case 'onBannerFailed':
break;
case 'onVideoCompleted':
break;
}
});
Muammolarni hal qilish
| Muammo | Yechim |
|---|---|
initialize() false qaytardi | serverUrl va accountId ni tekshiring; timeoutMs ni oshiring |
| Banner ko'rinmaydi | Init muvaffaqiyatli ekanini tekshiring; configId ni tekshiring |
| Paket topilmadi | pubspec ga path: qo'shing, flutter pub get |
| Android: klik brauzerni ochmaydi | Manifestga AdBrowserActivity qo'shing |
| iOS: No module PrebidMobile | cd ios && pod install bajaring |
| deviceId noldan iborat | ATT rad etilgan — Info.plist ni tekshiring |
Demo ilova
To'liq ishlaydigan misol SDK ichidagi example/ katalogida.
| Plugin | Prebid iOS | Prebid Android |
|---|---|---|
| 1.0.0 | 3.3.0 | 3.3.1 |