admel_sdk 1.0.33 copy "admel_sdk: ^1.0.33" to clipboard
admel_sdk: ^1.0.33 copied to clipboard

AdMel SDK for Flutter - Audio advertisement plugin with banner display, VAST support, mute detection, and auto-refresh.

1.0.33 #

  • Fix (iOS): VAST parser now correctly detects audio and image URLs that have no file extension. Previously, MediaFile URLs were matched by extension (.mp3, .wav, .m4a) only, causing production creative URLs to fail with "Missing audio or image URL in VAST". The parser now checks the type attribute (audio/mpeg etc.) first, falling back to extension matching. Same fix applied to StaticResource image detection via creativeType attribute. Raise iOS native SDK dependency to AdMel-SDK ~> 1.0.16.

1.0.32 #

  • Fix: onAdStarted / onAdStopped callbacks now reliably fire on Android during gameplay. Added Dart-side polling (500ms interval via isPlaying()) to supplement native→Dart invokeMethod callbacks, which can be dropped on Android when the Flutter engine is busy rendering. Native callbacks remain active as a fast-path on iOS.

1.0.31 #

  • Fix: onMuteStateChanged callback now reliably fires on Android during gameplay. Added Dart-side polling (2-second interval via isMuted()) to supplement native→Dart invokeMethod callbacks, which can be dropped on Android when the Flutter engine is busy rendering. Native callbacks remain active as a fast-path on iOS.

1.0.30 #

  • Feature: showAd() now supports custom-center positioning via relativeX / relativeY. When these parameters are provided, the ad banner is centered at the specified screen coordinate (expressed as a 0.0–1.0 ratio of screen width/height) instead of being placed from its top-left corner. This eliminates off-center placement caused by banner size differences between iPhone and iPad.
  • Raise minimum native SDK dependency to 1.0.15 (iOS: AdMel-SDK ~> 1.0.15, Android: admel-sdk:1.0.15).

1.0.29 #

  • Retry publish: bump native SDK dependency to 1.0.15 to resolve CocoaPods CDN propagation failure for 1.0.14.

1.0.28 #

  • Raise minimum native SDK dependency to 1.0.14 (iOS: AdMel-SDK ~> 1.0.14, Android: admel-sdk:1.0.14).

1.0.27 #

  • Revert: restore standard CocoaPods (iOS) and Maven Central (Android) dependencies for native SDK distribution. Removes experimental binary bundling approach (1.0.21–1.0.26).

1.0.20 #

  • Fix: ad playback now pauses (instead of stops) when device volume drops below the mute threshold during playback. Raising the volume resumes the ad from where it left off.
  • Raise minimum native SDK dependency to 1.0.13 (iOS: AdMel-SDK ~> 1.0.13).

1.0.19 #

  • Fix: startDucking is now called on onAdStarted (when ad audio actually begins) instead of showAd (when the ad is requested). Previously, ducking was activated immediately at showAd time, causing host app BGM/SE to be unnecessarily ducked during the initialRefreshInterval wait period before the first ad plays.
  • Change: mute detection threshold lowered from 30% to 20%.
  • Raise minimum native SDK dependency to 1.0.12 (iOS: AdMel-SDK ~> 1.0.12).

1.0.18 #

  • Raise minimum native SDK dependency to 1.0.11 (iOS: AdMel-SDK ~> 1.0.11).

1.0.17 #

  • Fix: stopDucking now reactivates the AVAudioSession with Playback + MixWithOthers after sending NotifyOthersOnDeactivation. On iPadOS, leaving the session inactive caused outputVolume to return 0.0, making isMuted() always report muted and permanently showing the volume warning overlay. This also prevents host app BGM/SE (audioplayers) from failing to resume after ad playback.
  • Fix: volume change detection now uses KVO on AVAudioSession.outputVolume (public API) instead of the private AVSystemController_SystemVolumeDidChangeNotification, which stopped firing reliably on iOS 16+. This ensures onMuteStateChanged(false) is delivered promptly when the user raises the device volume.
  • Raise minimum native SDK dependency to 1.0.10 (iOS: AdMel-SDK ~> 1.0.10).

1.0.16 #

  • Fix: infinite recursion crash in setMuteBannerEnabled: (iOS). The method was calling self.muteBannerEnabled = enabled which in Objective-C invokes the setter itself. Fixed by assigning directly to the instance variable _muteBannerEnabled.
  • Raise minimum native SDK dependency to 1.0.9 (iOS: AdMel-SDK ~> 1.0.9).

1.0.15 #

  • Fix: crash on app startup caused by startMonitoring firing checkMuteStatus synchronously during the initialize method channel handler. The initial check now runs on the next run loop iteration via dispatch_async (iOS), avoiding reentrant invokeMethod calls.
  • Raise minimum native SDK dependency to 1.0.8 (iOS: AdMel-SDK ~> 1.0.8).

1.0.14 #

  • Fix: onMuteStateChanged callback now fires even when muteBannerEnabled is false or SDK is paused. Previously, the callback was blocked by early returns in the banner control logic, causing apps that disabled the mute banner to never receive mute state change notifications.
  • Raise minimum native SDK dependency to 1.0.7.

1.0.13 #

  • Fix: mute monitoring now starts at initialize() instead of showAd(), so onMuteStateChanged fires and isMuted() returns accurate results before the first ad plays.
  • Fix: isMuted() reads the current device volume directly instead of returning a cached value, eliminating false negatives before monitoring starts.
  • Raise minimum native SDK dependency to 1.0.6 (iOS: AdMel-SDK ~> 1.0.6, Android: admel-sdk:1.0.6).

1.0.12 #

  • Fix: raise minimum native SDK dependency to 1.0.5 (iOS: AdMel-SDK ~> 1.0.5, Android: admel-sdk:1.0.5) to prevent build errors when using new APIs added in 1.0.11.

1.0.11 #

  • Feature: setMuteBannerEnabled(bool) — ミュートバナーの表示/非表示をアプリ側から制御可能に。false に設定すると既存のミュートバナーも即時非表示。デフォルト true
  • Feature: isMuted() — デバイスの現在のミュート状態(音量 30% 以下)を非同期で取得。
  • Feature: onMuteStateChanged コールバック — デバイスがミュート閾値を超えた/下回ったときにアプリへ通知。setAdEventListeners で登録可能。
  • Fix: SDK が pause 中はミュートバナーを表示しないよう修正(iOS・Android 共通)。
  • Update native SDK dependency to 1.0.5 (Android: admel-sdk 1.0.5, iOS: AdMel-SDK 1.0.5).

1.0.10 #

  • Feature: initial refresh interval before the first ad plays. The SDK now waits initialRefreshInterval seconds (default 30s, dev: 5s) after showAd() is called before fetching and playing the very first ad. The value is overridden by the server's /v1/init response (initialRefreshInterval / refreshInterval fields), matching the Unity plugin behavior.
    • Android: AdMelSDK.isFirstPlay flag + Handler.postDelayed
    • iOS: AdMelSDK.isFirstPlay flag + dispatch_after

1.0.9 #

  • Update native SDK dependency to 1.0.3 (Android: admel-sdk 1.0.3, iOS: AdMel-SDK 1.0.3).

1.0.8 #

  • Feature: transparent BGM ducking during ad playback. While an audio ad is playing, the plugin now asks the OS to lower the volume of any other audio currently playing in the host app (BGM / SE) and restores it automatically when the ad finishes or is stopped.
    • Android: requests AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK and abandons it.
    • iOS: activates the shared AVAudioSession with .duckOthers and deactivates it with NotifyOthersOnDeactivation. Publishers do not need to write any code. Implemented entirely in the Flutter plugin layer so the shared native SDK remains framework-agnostic (no impact on Unity or other native-SDK consumers).

1.0.7 #

  • Fix: auto-refresh is now enabled by default, matching the documentation. Previously the native SDK shipped with enabled = false and consumers had to call setAutoRefresh(enabled: true, ...) explicitly after initialize().

1.0.6 #

  • Fix: iOS linker error - add static_framework and -ObjC linker flag for static library xcframework

1.0.5 #

  • Fix: iOS use @import AdMelSDK module import for static library xcframework

1.0.4 #

  • Full API update: AdMelSdk, AdMelEnvironment, showAd(), setMediaId(), setUserId()
  • Ad lifecycle events (onAdStarted, onAdStopped, onAdCompleted)
  • Coin reward animation support
  • Environment-based initialization (development/production)
  • Native plugin sync for both iOS and Android

1.0.3 #

  • Fix: iOS import for AdMelSDK framework header

1.0.2 #

  • Fix: Android Kotlin import for renamed AdMelSDK native class

1.0.1 #

  • Initial public release
  • Audio ad playback with VAST protocol support
  • Banner ad display with customizable appearance
  • Mute detection and visual banner fallback
  • Auto-refresh for continuous ad rotation
  • Playback controls (pause, resume, stop)
  • Volume control
  • iOS support via AdMel-SDK (CocoaPods)
  • Android support via jp.admel:admel-sdk (Maven Central)
0
likes
140
points
1.14k
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

AdMel SDK for Flutter - Audio advertisement plugin with banner display, VAST support, mute detection, and auto-refresh.

Homepage
Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on admel_sdk

Packages that implement admel_sdk