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

ZIP yuklab olish

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

  1. Arxivni olishiabox_prebid-flutter-sdk-1.0.0.zip iaBox dan
  2. O'rnatishpubspec.yaml ga plugin qo'shing, flutter pub get
  3. Android / iOS sozlash — manifest, Info.plist, pod install
  4. SDK ishga tushirish — ilova boshida IABoxPrebid.initialize()
  5. 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

ParametrAndroidiOS
Flutter>= 3.16.0>= 3.16.0
Dart>= 3.0.0>= 3.0.0
min OSAndroid 6.0 (API 23)iOS 14.0
compileSdk / XcodecompileSdk 34Xcode 15.0+
Prebid SDKprebid-mobile-sdk 3.3.1PrebidMobile 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.

ParametrTurMajburiyTavsif
accountIdStringHamkor akkaunt ID (odatda Bundle ID)
serverUrlStringPrebid Server URL
timeoutMsint❌ (10000)Auksion timeout, ms
shareGeoLocationbool❌ (true)Geolokatsiyani uzatish
SDK bir marta ishga tushadi. /status xatosi muhim emas — bidlar /openrtb2/auction ga 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

MuammoYechim
initialize() false qaytardiserverUrl va accountId ni tekshiring; timeoutMs ni oshiring
Banner ko'rinmaydiInit muvaffaqiyatli ekanini tekshiring; configId ni tekshiring
Paket topilmadipubspec ga path: qo'shing, flutter pub get
Android: klik brauzerni ochmaydiManifestga AdBrowserActivity qo'shing
iOS: No module PrebidMobilecd ios && pod install bajaring
deviceId noldan iboratATT rad etilgan — Info.plist ni tekshiring

Demo ilova

To'liq ishlaydigan misol SDK ichidagi example/ katalogida.

PluginPrebid iOSPrebid Android
1.0.03.3.03.3.1