clever_ads_solutions 4.5.4
clever_ads_solutions: ^4.5.4 copied to clipboard
The CAS.AI Flutter plugin allows you to easily monetize your apps for iOS and Android using lot of Ads SDKs in mediation.
4.5.3 #
- [Android] Fixed build error
Unresolved reference 'AdImpression'.
4.5.0 #
4.4.1 #
- Updated CAS Android and iOS dependencies to 4.4.1
- Renamed
AdError.rejectedtoAdError.codeRejectedfor consistency with other error codes. - Migration to the new Developer Docs
4.3.0 #
Major changes #
- Version bumped to 4.3 to align with native SDK versions.
- Completely rewritten Android and iOS platform code for improved performance, stability, and better integration with native SDKs.
- Introduced new
CASMobileAdsclass. DeprecatedCASandMediationManagerclasses are still available for use but they may be removed in a future release. - The CAS SDK initialization is now done via a single function
CASMobileAds.initialize(...)that uses aFutureto return the newInitializationStatusstructure. - The Ad format management has been modernized and streamlined. All ad classes now extend the base AdInstance class and share similar callbacks.
- Introduced
createAndLoad(...)method for each ad format, accepting all possible configuration options and automatically initiating ad loading. This improvement simplifies and optimizes the creation of ad instances. - Introduced support for Native Ads using built-in templates or native platform view factories.
- The Banner ad management is now handled via the
CASBannerclass, which can becreateAndLoad()independently of the widget state and displayed using the newCASWidget. Platform view rendering has been optimized by simplifying the widget class. - The CAS ID only needs to be passed once during initialization if you are using a single ID.
- The
AdContentInfostructure now provides ad information synchronously, without requiringawaitofFuture. - Added the
debugGeographyto overridePrivacyGeographyforConsentFlowto test different consent dialogs. - The
ConsentFlow.show()functions now completeFuture<int>only after the consent form is dismissed and return the resulting consent flow status. - For detailed information on all new functions, please refer to the updated wiki.
- Removed several functions that were previously deprecated.
Migration table #
Deprecated functions are still supported but no longer recommended.
| Deprecated | Replacement |
|---|---|
CAS.buildManager()... |
CASMobileAds.initialize(...) |
CAS.targetingOptions... |
CASMobileAds.targetingOptions... |
CAS.settings.setMutedAdSounds() |
CASMobileAds.setAdSoundsMuted() |
CAS.settings.setDebugMode() |
CASMobileAds.setDebugLoggingEnabled() |
CAS.settings.setTrialAdFreeInterval() |
CASMobileAds.setTrialAdFreeInterval() |
CAS.settings.setTaggedAudience() |
CASMobileAds.initialize(targetAudience:) |
CAS.settings.setTestDeviceId() |
CASMobileAds.initialize(testDeviceIds:) |
CASInterstitial.create() |
CASInterstitial.createAndLoad(...) |
CASInterstitial.impressionListener |
CASInterstitial.onAdImpression |
CASInterstitial.contentCallback |
CASInterstitial.onAdLoaded and others |
CASAppOpen.create() |
CASAppOpen.createAndLoad(...) |
CASAppOpen.impressionListener |
CASAppOpen.onAdImpression |
CASAppOpen.contentCallback |
CASAppOpen.onAdLoaded and others |
CASRewarded.create() |
CASRewarded.createAndLoad(...) |
CASRewarded.impressionListener |
CASRewarded.onAdImpression |
CASRewarded.contentCallback |
CASRewarded.onAdLoaded and others |
OnRewardEarnedListener |
CASRewarded.onUserEarnedReward |
BannerWidgetState()... |
CASBanner.createAndLoad(...) |
BannerWidget(...) |
CASWidget(ad:) |
AdSize.getAdaptiveBannerInScreen() |
maxWidth = MediaQuery.of(context).size.widthand AdSize.getAdaptiveBanner(maxWidth) |
0.9.0 #
- Updated CAS Android and iOS dependencies to 4.3.0
- Updated
AdErrorcodes for compatibility with CAS 4.
Bug Fixes #
- Fixed a type mismatch issue in
AdErrorFactory. #46 - Fixed an
IndexOutOfRangeExceptioninonConsentFlowDismissed(). - Fixed a
MissingPluginExceptioninCASInterstitial.setMinInterval(). - [iOS] Fixed
OnImpressionListenernot being triggered forBannerWidget.
Deprecations #
The following functions are deprecated. They are still supported for now but are not recommended for use in new implementations.
- Deprecated
ConsentFlow.withDismissListener(OnDismissListener)as it always returnsConsentStatus.undefined. UseConsentFlow.setOnDismissCallback(OnConsentFlowDismissedCallback)instead, which provides a validintstatus. Refer to constants inConsentFlowfor status values. - Deprecated
MediationManager.enableAppReturn(). Migrate to the newCASAppOpenorCASInterstitialAPIs and enable this feature via theisAutoshowEnabledproperty. - Deprecated
MediationManager.setAdLoadCallback()as it's no longer the recommended way to listen for ad loading events. Use the new implementation in individual ad classes instead. - Deprecated
AdContentInfo.getSourceId()as it's no longer recommended and will be removed in future versions. UsegetSourceName()instead. - Deprecated
AdsSettings.setLoadingMode()in favor of the new ad class implementation, which provides full control over the ad lifecycle.
0.8.9 #
- Fixed
BannerWidgetStateImpl.disposefailed to callsuper.disposeissue #45.
0.8.8 #
- [Android] Fixed build failure related to missing style attribute
windowOptOutEdgeToEdgeEnforcementby increasingcompileSdkVersionto 35 in the plugin.
0.8.4 #
- Hotfix the native 4.1.0.1 iOS.
0.8.2 #
0.8.1 #
0.8.0 #
Features #
Changes #
- Please check the updated Wiki for details about the CAS 4 release.
- All ad formats are now managed using a CAS ID string with the new
CASAppOpen,CASInterstitial, andCASRewardedad objects. Read more about the new implementation below. Previously, ad management required working with aMediationManagerinstance. You can now preload and cache multiple instances of each ad format, reducing latency and improving ad display performance. - All ad formats have
OnAdImpressionListenerto collect impression data via newAdContentInfostructure. - Added Autoload mode for
CASAppOpen,CASInterstitialandCASRewardedad instances. - Added automatic initialization of the Tenjin SDK when the API key is provided in the CAS SDK initialization parameters.
AdError.descriptionnow provides more detailed error information. A single error code may include multiple detailed messages.
Bug Fixes #
- Fixed an issue with the wrong arguments in the
setGenderandsetLoadingModemethods. - Fixed an error on call
withUserIdmethod.
0.7.6 #
Features #
Changes #
- [Android] (From DTExchange SDK update) Fixed usage of Android Advertising ID to be compliant with Google Play Ads policy.
- [iOS] Requires apps to build with Xcode 16.1 or above.
Bug Fixes #
- Fixed an issue where the banner was white.
- Fixed an issue with the wrong argument type in the
onAdViewFailedmethod.
0.7.4 #
0.7.3 #
Bug Fixes #
- Fixed an issue with creating AppOpen ads via MediationManager.
- Fixed an issue where Banner events were received only by the last banner listener.
0.7.2 #
0.7.0 #
Features #
- Added support for AppOpen ads.
Changes #
- [Android] Requires a minimum
minSdkof 23.
Bug Fixes #
- [Android] Fixed error:
PlatformException(Platform views cannot be displayed below API level 23). - Fixed error:
MissingPluginException(No implementation found for method dispose on channel 'banner').
0.6.2 #
0.6.0 #
Features #
Changes #
- Methods for configuring ads settings and targeting options in the
CASclass deprecated. Use dedicated singletons of theAdsSettingsandTargetingOptionsclasses in CAS:CAS.settings;CAS.targetingOptions.
- Floating banners deprecated; use banners in the widget tree.
CASBannerViewandBannerViewdeprecated; useBannerWidgetinstead.MediationManager.getAdView(AdSize)deprecated. UseBannerWidgetinstead.
- Most enum values renamed to follow Dart's naming convention, using camelCase.
UserConsentdeprecated; useConsentStatusinstead.
AdSizereworked, added new methods:getSmartBanner()replaces deprecatedAdSize.Smart;getInlineBanner(int width, int maxHeight);getAdaptiveBanner(int maxWidthDp)replaces deprecatedBannerView.maxWidthDpi;getAdaptiveBannerInScreen()replaces deprecatedAdSize.Adaptive.
Bug Fixes #
- Fixed error:
channel sent a message from native to Flutter on a non-platform thread.
Update Adapters #
Below are important changes in the adapters that should be noted. Please refer to the native SDKs release notes for a complete overview of all adapter updates.
- [Android] Yandex Ads
- ⚠️ [SDK] The minimum AppMetrica version is now 7.2.0 (Flutter plugin 3.1.0). This is only important if your project already has the AppMetrica Flutter Plugin integrated. You can skip the integration if you are not using it.
- ⚠️ [SDK] The minimum Android Gradle plugin version is now 7.0.
0.5.1 #
0.5.0 #
Changes #
- [Android] Requires a minimum
compileSdkVersionof 34. - [iOS] Requires apps to build with Xcode 15.3 or above.
- The CASExchange adapter has been included to the Optimal Ads Solutions.
- Previously beta adapters are now available to all: CASExchange, HyprMX, and StartIO.
- All the package files have been renamed to comply with naming conventions for files.
Please useimport 'package:clever_ads_solutions/clever_ads_solutions.dart';instead. - Removed the deprecated dependency
package_info_plus.
Bug Fixes #
- [iOS] Fixed rare fatal error:
No bridge module.
0.4.0 #
Features #
- Wraps Android and iOS 3.8.1 SDK.
- Added
import 'package:clever_ads_solutions/clever_ads_solutions.dart';which includes all package imports.
New ads networks support in closed beta #
- CASExchange - is a cutting-edge exchange platform designed to extend our SDK, enabling integration with Demand Side Platforms (DSPs).
- Ogury
- LoopMe
Bug Fixes #
- [Android] Fixed
IllegalArgumentExceptionfrom BannerView (#10)