- Updated the Android SDK to 4.8.0 and iOS SDK to 4.8.0.
- Added Publishing Ads Solutions designed for apps enrolled in CAS.AI Mobile Game Publishing.
- Added
CAS.MobileAds.targetingOptions.userIDproperty to update User ID aftr CAS initialization. - Added
IMediationManager.SetServerSideVerificationData(string)to be included in server-side verification callbacks for Rewarded Ads. (Closed beta) - [iOS] This release requires a minimum Xcode version of 26.2.
- [Android] This release requires a minimum Android API level of 24.
- [iOS] Fixed conflicting types for UnityIsPaused with Unity 6.5.
- Updated the Android SDK to 4.7.4 and iOS SDK to 4.7.4.
- Added Unity Package Manager signature to archive.
- [iOS] Fixed the need to manually run
pod installfor the fix from the 4.7.3. (#19)
- Added new adapter for Bidease (closed beta).
- Added new adapter for Moloco (closed beta).
- See the native SDKs release notes 4.7.3 for Android and iOS.
- [iOS] Fixed build error: No such module or file
MobileAdsBundle.bundle - [iOS] Fixed build error with Unity 6000.3.0f1+: Undefined symbols for
AppMetricaLibraryAdapter(#19)
- See the native SDKs release notes 4.7.0 for Android and iOS.
- Added
placementparameter for labeling the display location of all ad formats. Read more in the updated documentation. - [Android] Fixed build error
Failed to transform hybid.sdk-3.8.1.aarby downgrading the Verve Adapter to 3.7.1 for Unity versions below 6.0. - [Editor] Fixed typos in the text.
- [iOS] Fixed
NullReferenceExceptionin build configuration.
- See the native SDKs release notes 4.6.3 for Android and iOS.
- [iOS] Added support for AdAttributionKit. The project is configured automatically.
- See the native SDKs release notes 4.6.2 for Android and iOS.
- [iOS] Fixed an issue where adapters from Optimal Ads Solutions were included in Families Ads Solutions.
- See the native SDKs release notes 4.6.0 for Android and iOS.
- [iOS] This release requires a minimum Xcode version of 26.0.
- See the native SDKs release notes 4.5.2 for Android and iOS.
- Updated links to the new CAS documentation.
- The Maticoo, Smaato, and Verve mediation adapters are now out of closed beta and available to all developers.
- Added new adapter for PubMatic (closed beta).
- [Android] Added new adapter for Monetrix (closed beta).
- [Android] Added automatic downgrade of the Audience Network SDK version for compatibility with Unity 2023 and earlier.
- [Android] Added automatic downgrade of the YSO Network SDK version for compatibility with Unity 2023 and earlier.
Because the latest versions of some adapters require a newer version of Gradle, automatic downgrading of adapter versions was added for Unity versions that use an older Gradle. In this case, please ignore the adapter integration warnings.
- See the native SDKs release notes 4.4.1 for Android and iOS.
- [iOS] This release requires a minimum Xcode version of 16.4.
- Fixed CAS Settings window issue #17 with
Auto loading enabled. - Migration to the new Developer Docs
- Removed adapter for Yandex Ads.
- Added new adapter for Yango Ads. Now included in the Optimal solution.
- Restored SuperAwesome support with new bidding integration for interstitial and rewarded ads
- Added new adapter for Verve (closed beta).
Please refer to the native SDKs release notes for a complete overview of all adapter updates.
- See the native SDKs release notes 4.2.0 for Android and iOS.
- Added new adapter for Maticoo (closed beta).
- [Android] The update to Yandex Ads SDK 7.15.0 allowed the removal of the
resolutionStrategyinbaseProjectTemplate.gradlepreviously used to forcibly downgrade versions ofcom.yandex.android:mobileadsandplay-services-ads-identifier. These issues are no longer relevant, so please ensure your Gradle files do not contain outdated resolutionStrategy configurations.
- See the native SDKs release notes for Android 4.2.0 and iOS 4.2.1.
- Added
CAS.EventExecutor.IsOnMainThread()to check if the current thread is Unity’s main thread.
- Discover the native 4.1.2 SDKs release notes for Android and iOS.
- The SuperAwesome adapter was removed as the SDK has been deprecated and is no longer receiving updates.
- [Android] Added dependency resolution strategy to use
play-services-ads-identifier:18.1.0for min API 25 and below, due to a known crash with version 18.2.0. See the Android Issue for more information. - [Android] Added automatic rollback to Yandex Ads SDK 7.9.0 when using Android Gradle Plugin (AGP) versions below 7.5 due to minimum compatibility requirements starting from Yandex Ads SDK 7.10.0.
- [Android] Removed the need for manual
resolutionStrategyinbaseProjectTemplate.gradle— you can safely delete it if previously added. - [Android] Added option to override Gradle Wrapper and Android Gradle Plugin versions in CAS Other Settings. The specified versions will be pre-set for the Android Studio project without requiring manual project export. Please ensure compatibility of all build components when using this option. Leave the fields empty to avoid overriding the versions.
- Discover the native 4.0.2 SDKs release notes for Android and iOS. Increased the minimum Android API level to 23.
AdType.AppOpencan now be disabled like other formats. It is disabled by default, so make sure to enable it if you plan to use it.- Added new adapter for YSO Network.
- Added new adapter for Prado Ads. Contact our manager if you want to try a new ad network.
- Added
DebugGeography.RegulatedUSStateoption to support testing with regulated US states. - Added
InitialConfig.consentFlowStatusto get same status fromConsentFlow.WithCompletionListener. - Added automatic initialization of the Tenjin SDK when you provide the API key in the CAS SDK initialization parameters. The CAS SDK will handle the
Connect(),OptIn(), orOptOut()functions calls for Tenjin SDK.
CAS.MobileAds.BuildManager()
.WithMediationExtras("tenjin_key", <TENJIN_SDK_KEY>)
...AdErroris now a struct instead of an enum, and its message field provides more detailed error information. There can be multiple detailed messages for a single error code. New errors have been added: AdError.Timeout and AdError.NotInitialized.- Added
IMediationManager.DisposeAd(AdType)method for freeing up memory from loaded ads. After calling this method, useIMediationManager.LoadAd(AdType)to reload ads or to continue automatic ad loading. - Deprecated all
LoadingManagerModeexceptManualandAuto (Optimal). - Removed
ConsentFlow.WithCompletionListenerwithAction, please use listener withAction<ConsentFlow.Status>instead. - Removed
IManagerBuilder.WithInitListener, please useWithCompletionListenerinstead. - Removed
Include Ads SDK versions to Gradle/Podfileoption from settings window. - [Android] Removed
Optimize Google Ad loadingoption from settings window and is enabled by default by Google Mobile Ads SDK v.24.0.0. - [Android] Removed "Remove property tag from GMA SDK" feature from Google Mobile Ads Editor Settings as this tag has been removed from Google Mobile Ads SDK v.24.0.0 Android Manifest.
- Update External Dependency Manager for Unity to 1.2.185.
- The LoopMe network support has been removed.
- Fixed manual loading of ads before SDK is fully initialized.
- [iOS] Fixed banner ad position issue in landscape orientation after fullscreen ads.
- [iOS] Requires apps to build with Xcode 16.1 or above.
- [Android] (From DTExchange SDK update) Fixed usage of Android Advertising ID to be compliant with Google Play Ads policy. #15
- [iOS] Fixed a rare
EXC_BAD_ACCESScrash fromAdMetaData.
- [Android] Fixed an issue where the Android Gradle files was cleared before build.
- The Manager Ad Object will no longer display an initialization error on unsupported platforms.
- The warning "Not found config file" will no longer be displayed for the test "demo" CAS ID.
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 (Unity plugin 6.3.0).⚠️ [SDK] The minimum Android Gradle plugin version is now 7.0 (Unity 2021.3.41f+)
- [iOS] Google Ads
- [lib] Fixed a bug related to MarketplaceKit that would cause the SDK to crash when running on MacOS.
- [Android] Fixed potential ANR from AppStateNotifier initialization.
- Discover the native 3.9.2 SDKs release notes for Android and iOS.
- Added new methods for retrieving user consent information for individual vendors and additional providers.
ConsentStatus googleConsent = CAS.MobileAds.settings.getVendorConsent(755)
ConsentStatus audienceNetworkConsent = CAS.MobileAds.settings.getAdditionalConsent(89)- [Editor] Fixed compilation error: name
CASPostGenerateGradlecould not be found.Please remove the
CASDeveloperfrom the Sciripting Define Symbols if it was added to work around this issue. - [iOS] Fixed the
EXC_BAD_ACCESScrash that occurred when accessingAdMetaDataslightly later. - [Android] Added an alternative maven repository for Madex artifacts for those who had difficulties accessing the official repository.
- The CASExchange adapter has been included to the Optimal Ads Solutions.
- Previously beta adapters are now available to all: CASExchange, HyprMX, and StartIO.
- [Android] Requires a minimum compileSdkVersion of 34.
- [iOS] Requires apps to build with Xcode 15.3 or above.
- [Android] Fixed gradle build error
Could not find method apply()in Unity 2022+. - [Editor] Fixed exception log when detecting Gradle version in Unity 6.
- [iOS] Fixed a critical issue related to the position of Banner ads.
- [iOS] Fixed
NSUserTrackingUsageDescriptionlocalization withcom.unity.localizationpackage. - [iOS] Fixed XCode build error
CASResources no such file or directorywhen the unity project was compiled on Windows. - [iOS] Fixed an issue where the UIViewController is invalid for the Consent Flow.
- Discover the native 3.8.0 SDKs release notes for Android and iOS.
- Added a log with useful information about ad impression with disabled verbose logs.
- Added support new
AdPosition:MiddleCenter,MiddleLeft,MiddleRight. - Added support for offset (X, Y) position from any
AdPosition. Previously, onlyTopLeftwas supported. - Added optional parameter
AdPositionto methodSetPosition(int x, int y, AdPosition position = AdPosition.TopLeft)method. - Added new method
SetPositionPx(int x, int y, AdPosition position = AdPosition.TopLeft)to set (X, Y) offset in pixels. - Added new method
float CAS.MobileAds.GetDeviceScreenScale()to retrieve the device screen scale in independent pixels (DP). Use this scale to convert pixels to DP and vice versa. - The
rectInPixelsis now available immediately in theOnLoadedevent. - The
rectInPixelswill not be reset when the banner is hidden, the values remain from the last display on the screen.
- [iOS] Fixed the position of banner ads after changing the device orientation.
- [Android] Removed gradle property
enableDexingArtifactTransformfor Unity 2022.2+ as deprecated with newest gradle versions.
- The
ConsentFlowAdObject.showOnAwakeIfRequiredchanged toFalseby default. - The
ManagerAdObject.initializeOnAwakechanged toFalseby default. - [Android] The
CASPlugin.androidlibhas been replaced byCASUnityBridge.aarfor compatibility with Unity 6. - [Android] Now Gradle file modifications will be performed in temporary build files instead of project assets.
- [iOS] The
Info.plistconfiguration post-process was moved toint.MaxValue - 10order to workaround the issue when other plugins were overriding parameters, such as SKAdNetowkrIDs.
- CASExchange - is a cutting-edge exchange platform designed to extend our SDK, enabling integration with Demand Side Platforms (DSPs).
- Ogury
- LoopMe
- Discover the native 3.7.3 SDKs release notes for Android and iOS.
- Added new
EnableOptionsButtonevent forConsentFlowAdObjectto enable/disable Consent option button.
- [iOS] Fixed
EXC_BAD_ACCESScrash fromdidCloseAdcallback.
- The MyTarget network support has been removed. Our team considers MyTarget to be ineffective and excludes it from CAS mediation.
Please remove the MyTarget adapter if you are using it.
- Discover the native 3.7.2 SDKs release notes for Android and iOS.
- Introduced automatic collect impression level data to Tenjin Analytics. (Closed beta)
- [iOS] Fixed an issue where the AppReturn ads events could be raised from outside the Unity Mein Thread.
- [iOS] Fixed the Privacy Info invalid API reason declaration for
UnityFrameworkin the UserDefaults category. The issue stemmed from the SuperAwesome framework, which received an update with the fix. - [Editor] Fixed the compilation error
The type or namespace name 'NUnit' could not be found. - [Editor] Fixed an error when the plugin component was not found after the unitypackage integration.
- [Editor] Fixed plugin version checking given Revision part.
- The native SDK remains version 3.7.0.
- [Android] Fixed
Exception: JNI: Unknown signature for type 'CAS.Android.CASConsentFlowClient'.
- Discover the latest features in native 3.6.1 SDKs for Android and iOS.
- Added support
AdType.AppOpen. Read integration guides for UnityEditor or Script C# - Added new static events in
CAS.MobileAdsclass:OnApplicationBackgroundandOnApplicationForeground. It's important to use new events when you want to show AppOpen ads on user returning to the game. - Added
ConsentFlowAdObjectcomponent. - Added option to disable
ConsentFlowviaManagerAdObjectcomponent. - Added
ConsentFlowAdObjectoptional field forManagerAdObjectto configureConsentFlowon Ads initialization. - Added
ConsentFlow.Statusenum and new event forConsentFlow.WithCompletionListener(Action<ConsentFlow.Status>). - Added
ConsentFlow.DebugGeographyenum andConsentFlow.WithDebugGeography()method to sets debug geography for testing purposes. - Added
ShowIfRequired()method forConsentFlowinstance to show the consent form only if it is required and the user has not responded previously. - Added
Show()method forConsentFlowinstance with the same functionality as theCAS.MobileAds.ShowConsentFlow(ConsentFlow)but easier to use.
new ConsentFlow()
.WithDebugGeography(ConsentFlow.DebugGeography.EEA)
.WithCompletionListener((status) =>
{
if (status == ConsentFlow.Status.Obtained)
{
// User consent obtained.
}
})
.ShowIfRequired();- Made
CAS.MobileAds.ShowConsentFlow()obsolete in favor of newShowIfRequired()orShow()methods forConsentFlowinstance. - Made
OnAdOpeningevents obsolete. Please useOnAdImpressionevent to collectAdMetaDataabout the ad impression orOnAdShownevent ifAdMetaDatais not used. - Performance improvements when forwarding native callbacks.
- In manual ad loading mode, the SDK will no longer trigger
OnAdFailedToLoadevents before closing the Interstitial and Rewarded ads. - [Android] Added
androidx.lifecycle:lifecycle-process:2.6.2dependency. - [Editor] Added
ConsentFlowcompletion events implementation to testing in editor. - [Editor] Removed
Delay measurement of the Ad SDK initializationoption, which applies in any case.
- [iOS] Fixex Banner ads moving after full screen due to a safe area bug in Unity Engine.
- [Editor] The Utils class alias has been hidden to avoid conflict with the global namespace.
- StartIO
- Discover the latest features in native 3.6.0 SDKs for Android and iOS.
- [iOS] The minimum supported Xcode version has been increased to 15.1.
- [iOS] Added support for the Apple Privacy Manifest update to ensure publisher compliance with new App Store submission requirements.
- [iOS] Added required
AdSupportandAppTrackingTransparencyframeworks ifUserTrackingUsageDescriptiondefined in settings window. - Added
CAS.MobileAds.targetingOptions.locationCollectionEnabledproperty to collect from the device the latitude and longitude coordinated truncated to the hundredths decimal place. AndLocation targeting if alloweddefault value for both platforms to settings window. Collect occurs only if your application already has the relevant end-user permissions and if the target audience is not children. - Make
CAS.MobileAds.settings.trackLocationEnabledobsolete in favor of locationCollectionEnabled in targetingOptions for both platforms.
- Fixed the mapping of
AdNetwork.DTExchangeto the native CAS for theAdMetaDatastructure.
- [Android] Fixed
NullPointerExceptionwhen initializing CAS ifWithMediationExtras()was not used. (experienced on 3.5.4)
- Madex
- Fixed invoke of
InterstitialAdObject.OnAdShownevent. - [Android] Added workaround to migrate Kotlin 1.8.0 since it no longer supports JVM targets 1.6 and 1.7.
- Discover the latest features in native 3.5.2 SDKs for Android and iOS.
- [Android] Added
packagingOptionsto gradle files to pick the first occurrence ofMETA-INF/kotlinx_coroutines_core.versionandMETA-INF/core-utils_release.kotlin_modulefiles. This will fix the duplicate issue. - [iOS] Added a delay before calling
UnityUpdateMuteState()to fix an issue with Unity losing audio after closing a fullscreen ad.
- Wraps Android and iOS 3.5.0 SDK
- Added new
CAS.MobileAds.targetingOptions.SetKeywords()to sets a list of keywords, interests, or intents related to your application. Words or phrase describing the current activity of the user for targeting purposes. - Added new
CAS.MobileAds.targetingOptions.contentUrlto sets the content URL for a web site whose content matches the app's primary content. This web site content is used for targeting and brand safety purposes. - [Android] Added new Editor Option to Optimize initialization and Google Ad loading. Look for the new option in
CAS Android Settings > Other Settingswindow. By default, optimization is active. - [Android] Added Editor Options to removing the property tag from the Android Manifest of the Google Mobile Ads Android SDK. This is enabled for projects using Android Gradle Plugin version 4.2.1 and lower.
GMA Android SDK 22.4.0 and above introduces a property tag in its Android Manifest that is not compatible with lower versions of Android Gradle Plugin (used by Unity 2022.1 and below).
- [Android] The update to
CASPlugin.androidlib/AndroidManifest.xmloccurs not in Project Assets but in the generated Gradle project. - [Editor] Cleaned up scripts by removing redundant code.
- The Meta Audience Network has been included to the Optimal Ads Solutions.
Please complete Additional integration steps to enable Meta monetization.
- The Bigo Ads has been included to the Optimal Ads Solutions.
- The AdColony network support has been removed. The AdColony will sunset and migrate to DTExchange.
Please remove the AdColony adapter if you are using it.
- [Android] Now
CASPlugin.androidlibis placed inCleverAdsSolution/Plugins/Androidinstead ofAssets/Plugins/Android. The obsoleteCASPlugin.androidlibwill be automatically removed during the application build.
- BidMachine
- [iOS] Fixed rare crash from
AdViewRectCallback.
- Wraps Android and iOS 3.4.1 SDK
- A new
CAS.MobileAds.settings.trialAdFreeIntervalproperty has been introduced to defines the time interval, in seconds, starting from the moment of the initial app installation, during which users can use the application without ads being displayed while still retaining access to the Rewarded Ads and App Open Ads formats.Within this interval, users enjoy privileged access to the application's features without intrusive advertisements.
- The
CAS.MobileAds.settingswill be return a more correct Privacy states.
- [iOS] Updated minimum supported version to iOS 13.
- The MyTarget has been removed from the Optimal/Families Ads Solutions, as the MyTarget is focused only on the CIS region.
If you want to continue using MyTarget monetization, just include the adapter to your app.
- The AdColony has been removed from the Optimal/Families Ads Solutions. The AdColony will sunset and migrate to DTExchange on January 3, 2024.
If you want to continue using AdColony monetization, just include the adapter to your app.
- Now the Interstitial Ad load callback will only be fired after the interval between impressions has expired.
- [iOS] Added
UnityUpdateMuteState()invoke after closing the fullscreen ad to fix an issue with Unity losing audio.
- Wraps Android and iOS 3.3.2 SDK
- Added
AdNetwork.CASExchange - [Android] Optimized calling native methods for managing banners.
- [Android] Fixed an issue with an invisible banner ad with Unity 2021.3.31f1 and 2022.3.10f1.
- [iOS] Fixed
YandexMobileAdsBundle.bundle is not addedwith usseduse_frameworks! :linkage => :staticin Podfile.Due to an bug in the Yandex Ads SDK, we had to add the bundle to the app target.
- [iOS] Fixed
Multiple commands producewith Dynamic frameworks ifuse_frameworks!in Podfile. - [iOS] Fixed issue with missing
CFBundleShortVersionStringin App target ifuse_frameworks!in Podfile.
We are working to resolve issues with
use_frameworks!, however we still recommend setuse_frameworks! :linkage => :staticonly in Podfile.
- [iOS] The Pangle has been removed from the Families Ads Solution.
The Pangle source does not provide ads under COPPA restrictions. The Pangle is still included in the Optimal Ads Solution.
- [iOS] Fixed issue with missing
CFBundleShortVersionStringin UnityFramework. - [iOS] Fixed issue with copying dynamic frameworks to app archive.
- [Android] Fixed a rare issue with the banner could be hidden by another view.
- Fixed automatic removal of the Tapjoy adapter that could cause build errors.
- Bigo
- Wraps Android and iOS 3.3.0 SDK
- Added the option to switch to using Google User Messaging Platform instead of CAS Consent Flow.
Please contact support to migrate to a certified CMP.You also have the opportunity to independently use any certified CMP before CAS initialization and CAS SDK will transmit information about the user’s consent for mediation.
- Added the options to define the Limited Data Use and Advertising Tracking flags for Meta Audience Network in the inspector of
ManagerAdObject. - Added an
OnInitialziationFailedevent to theManagerAdObjectinspector. - Added an
InitializationErrorclass with const strings to compare withInitialConfiguration.errorvalues.
- The Meta Audience Network has been removed from the optimal advertising solution.
If you want to continue using the Audience Network for monetization, then add the adapter dependency and comply with its privacy requirements.
- The Network names have been replaced with more conventional ones in the Firebase
ad_impressionevent. - The
AdMetaData.identifierproperty now returns the Placement ID from the network on which the ad was shown. - The
AdNetwork.Vunglerenamed to LiftoffMonetize. - The
AdNetwork.DigitalTurbinerenamed to DTExchange.
- HyprMX - Focused to USA region only.
- Smaato - Support Banner ad only.
- [iOS] Updated ATT dialog text to be consistent with Apple policy (3.2.2 Unacceptable).
- Removed Tapjoy network support.
Video product Tapjoy is now integrated as a demand partner on the ironSource, iSX exchange.
- Added debug price ($1) and creative ID for test ads impression.
- [Editor] Fixed
Metadata file could not be foundduring version package update. - [Editor] Disabled of Gradle Tools version update for Used Gradle wrapper version in build.
- [Android] Fixed
Exception: No such proxy method: onCASInitializedwith Test Ad Mode.
- [Android] Fixed signature exception from
CAS.Android.CASConsentFlowClient. - [Android] Fixed rare
UnsupportedOperationExceptionfrom Test Ads Activity. - [iOS] Fixed fatal error
Library not loadedfor DigitalTurbine. - [iOS] Fixed a critical performance bug for AudienceNetwork, Tapjoy, UnityAds.
- Wraps Android and iOS 3.2.0 SDK
- Added
ConsentFlow.WithCompletionListener()to invoke Action when the dialog is dismissed. - Added
MobileAds.ShowConsentFlow()method to manually display ConsentFlow, before and after CAS initialization.On CAS initialization, the ConsentFlow still can be displayed automatically when conditions are met.
MobileAds.ShowConsentFlow(
new ConsentFlow()
.WithCompletionListener(() => Debug.Log("The dialog is dismissed."))
);- Added
IManagerBuilder.WithCompletionListener()with newInitialConfigurationparameter:
MobileAds.BuildManager().WithCompletionListener((config) =>
{
string initErrorOrNull = config.error;
string userCountryISO2OrNull = config.countryCode;
bool protectionApplied = config.isConsentRequired;
IMediationManager manager = config.manager;
}).Build();- The list of networks that are included in the Clever solutions has been changed.:
- Optimal solution: Added Chartboost and DTExchange.
- Families solution: Added Chartboost and DTExchange.
- The CAS ConsentFlow dialog will not be present to users who have seen the Google User Messaging Platform form. The user's choice will apply to all networks in the mediation.
- The
AdsSettings.analyticsCollectionEnabledis deprecated and enabled by default for CrossPromo. - [Android] The Launcher Gradle template file is no longer required.
- [Android] The Base Gradle template file is no longer required for Unity 2022.2 or newer.
- [Android] The Multidex is no longer required.
- [Android] The Gradle version update is no longer required for Unity 2022.2 or newer.
- [Android] The Queries is no longer required for CrossPromo.
- [iOS] The
Unity-iPhonetarget is no longer required in the Podfile. - [iOS] The Queries Schemes is no longer required in the Info.plist.
- [Editor] Added one click plugin version update for
.unitypackageintegration in Editor Ads Settings window. - [Editor] Added option to
Include Ad dependency versionsin Editor Ads Settings window. The Ads SDK versions are no longer visible in Gradle and Podfile by default. - [Editor] The
Most popular country of usersoption is no longer required. - [Editor] The
CASEditorSettingsinspector is hidden.
- [Android] Fixed Unity Activity freezing after Return to App Ads closed.
- [Editor] Fixed infinity import assets bug on Windows Unity Editor.
- Changes to
AdsSettings.userConsentandAdsSettings.userCCPAStatusare now saved even after initialization CAS. You still need to restart the application to apply changes to mediation.
- [Editor] Typo in Settings Template Util Field (#3)
- [Android] Unity 2022.2+ Support with EDM4U 1.2.176 update. Requires
settingsTemplate.gradleto be enabled.
- [Editor] Added feature to check and remove Legacy Unity Ads package.
- [Editor] The CAS plugin version query has been moved to the background.
- [Editor] Simplify your External Dependency Manager installation process with a single click.
- [iOS] Fixed the initial position of the banner ads.
- [iOS] Fixed publishing app with new list of app tracking descriptions from CAS 3.0.2.
- [Editor] Compiled important plugin scripts to provide access to documentation when integrated by Unity Package Manager.
- [Editor] Improved unity editor plugin cache.
- [Editor] The dialog of new version of the plugin before build has been replaced with a warning log.
- [Android] Improved stability of full-screen ads when restarting the application from the desktop.
- [Android] Added automatic management of the Advertiser ID (
AD_ID) permission depending on the selected audience. You have the option to Add/Remove the permission under Other settings section.
- [Android] Fixed
IAdView.rectInPixelsvalues.
- Added a built-in consent flow to automatically present users with GDPR and Apple ATT dialogue.
The dialog will not be shown if at least one of the following conditions is true:- If
CAS.MobileAds.settings.taggedAudienceequalsAudience.Children. - If
CAS.MobileAds.settings.userConsentnot equalsConsentStatus.Undefined. - If the user is located in countries that do not require information protection.
- If ConsentFlow is disabled:
- If
CAS.MobileAds.BuildManager().WithConsentFlow(
new ConsentFlow(isEnabled: false)
).Build()- A new
OnAdImpressionevent has been added to get a more precise revenue per ad impression than from the ad opening event. - Update
InterstitialAdObject,RewardedAdObjectandReturnToPlayAdObject:event OnAdClosedis now called afterevent OnAdFailedToShowautomatically.- Added
event OnAdImpression- event withAdMetaDataand more precise revenue. - Added
bool isAdReady- check ready ad to present. - Added
void LoadAd()- manual load ad.
- Added
double revenueproperty toAdMetaDatato get revenue for each impression. - Added alternative names for
IManagerBuilder CAS.MobileAds.BuildManager()methods:Initialize()->Build()WithManagerIdAtIndex(int)->WithCASId(int)WithManagerId(string)->WithCASId(string)
- [Android] The minimum Android API level supports is 21.
- [iOS] The minimum iOS version supports is 12.0.
- The list of networks that are included in the Clever solutions has been changed:
- Optimal solution: Added Yandex Ads.
- [Android] Families solution: Removed AppLovin.
- [iOS] Families solution: Removed AppLovin, Added Yandex Ads.
AppLovin no longer has advertising for a children's audience.
- Removed deprecated functions from CAS version 2.x. See Migrate from 2.x to 3.0 page.
- Enabled by default
CAS.MobileAds.settings.allowInterstitialAdsWhenVideoCostAreLoweroption. - The dependency on native CAS SDK is now built-in Unity Package.
- [iOS] Disable bitcode, as Apple deprecated it in Xcode 14.
- [Android] Fixed build issue with
jcenter()repository. - [iOS] Fixed Main Thread Checker issue when app using Firebase Dynamic Links.
- [iOS] Fixed the position of banner ad on the screen.
- [iOS] Fixed
WithInitListener()call. - [iOS] Fixed disabling Bitcode for UnityFramework.
- Improved stability of the
AdMetaDataclass to get information about ad impressions. - Added
IAdView.OnImpressionevent withAdMetaDatastructure and invoked only once for each new ad impression. - Added
impressionDepthproperty for theAdMetaDatastructure to get the amount of impressions of all ad formats to the current user. - Added
lifetimeRevenueproperty for theAdMetaDatastructure to get the total revenue in USD from impressions of all ad formats to the current user. - Added new
AdSize.ThinBanner. Thin banners have a smaller height, taller banners compared to anchored adaptive banners. - Allowed simultaneous collection of
ad_impressionandCAS_Impressionanalytics events with the same parameters. - [iOS] Added option to enable build Bitcode in
Ads Settings > Other. By default disabled.
- The minimum iOS version supports is iOS 11.
- The
MobileAds.settingsare saved between sessions. - The
MobileAds.settings.isExecuteEventsOnUnityThreadis enabled by default. - The option to use the Medium Rectangle size has been removed from the settings window. Just select the Banner format to use the Medium Rectangle size.
- The
IAdView.rectInPixelsreturnRect.zerowhen ad view is not active. - Plugin caching the value of
IAdView.rectInPixelson C# side to reduse number of calls to the native side. - The ID of the current device for
MobileAds.settings.SetTestDeviceIds()will be printed in the logs even if theCAS.settings.isDebugModeis disabled. - Mediation is no longer used for devices defined in
MobileAds.settings.SetTestDeviceIds(). List of test devices should be defined before first MediationManager initialized. - Deprecated
IAdView.OnPresentedandIAdViwe.OnHiddenevents. These events are invoked when the ad view's changesIAdView.SetActive(). - Deprecated
IMediationManager.OnLoadedAdevent in favor of the new separateIMediationManager.OnInterstitialAdLoadedandIMediationManager.OnRewardedAdLoadedevents. - Deprecated
IMediationManager.OnFailedToLoadAdevent in favor of the new separateIMediationManager.OnInterstitialAdFailedToLoadandIMediationManager.OnRewardedAdFailedToLoadevents withAdErrorenum. UseAdError.GetMessage()to get the error text.
[iOS] For iOS 12.2.0 or earlier builds, added /usr/lib/swift to XCode > Build Settings > Runpath Search Paths to prevent any issues with libswiftCore.dylib.
[Android] Added update of the mainTemplate.gradle version if the file was created by Unity 2019.2 or older.
- Fixed
AdSize.AdaptiveBannerin portrait orientation. - Fixed refresh
AdSize.AdaptiveFullWidthon orientation changed. - [iOS] Fixed crash from
[CASUView bannerAdView:willPresent:]after application closed. - [Android] Fixed the Banner ad position in center of the screen with cutouts.
- [Editor] Fixed compilation errors for Unity 2017.
Unity 2017 is not officially supported and is not recommended for use. Please let us know about the issues and we will try to fix them.
- [Android] Wraps 2.8.4-rc1 SDK
- [iOS] Wraps 2.8.4-rc1 SDK
- Added new
AdSize.AdaptiveFullWidthto pick the best ad size for full full screen width.AdSize.AdaptiveBannercan pick the ad size for screen width but not more than 728dp.
- Improved algorithm for processing bids with undisclosed prices.
- Improved ad serving algorithm to increase the average revenue of Banner Ads.
- Restored support for Fyber advertising network in closed beta.
- No longer supported
IMediationManager.GetLastActiveMediation(AdType)feature. - [Android] Fixed
FormatExceptionfromAdMetaData.GetDouble(). - [iOS] Force disable
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIESfor Framework target. Cause build error when embed for both targets.
- [Android] Fixed Android Proguard issue with
NoSuchMethodError. - [iOS] Fixed simultaneous access crash on
BiddingManager.init(_:_:). - [iOS] Fixed index out of range crash.
- [Editor] Fixed Ads Settings inspector bug.
- Fixed internal reflection issue.
- Added new property
AdMetaData.creativeIdentifierto get the creative id tied to the ad, if available.You can report creative issues to our Ad review team using this id.
- Added new property
AdMetaData.identifierto get internal demand source name in CAS database. - Added feature to link your CAS app to Google Analytics to automatic measurement of ad revenue. Read more on our wiki page.(beta)
- Added new
AdError.Configurationwhen configuration error has been detected in one of the mediation ad networks. - Added new
CAS.MobileAds.BuildManager().WithUserID(userID)to set user id. The userID is a unique identifier supplied by your application and must be static for each user across sessions. - Improved initialization performance.
- [Android] All events from the native CAS SDK are called on a Background Thread instead of the Android UI Thread to avoid ANRs on unity reflection.
Use the
MobileAds.settings.isExecuteEventsOnUnityThreadfor all events orEventExecutor.Add()for each event to switch to the Unity Thread. - [Android] The Banner position inside the container now depends on the selected
AdPosition, if the actual ad size is different.
If the Proguard is active, then you have NoSuchMethodError on device. Fix it by following steps:
- Enable Custom Proguard file in Player Settings window.
- Add keep line to the file:
-keep interface com.cleversolutions.ads.android.CAS$ManagerBuilder { *; }
⚠️ [iOS] Updated minimum supported Xcode version to 13.2.1.- [Android] Removed option to disable
ExoPlayer. AppLovin added the dependency on ExoPlayer so that it is always used. - Migration from
CASInitSettingsclass toIManagerBuilderinterface.
- Added feature to get the
creativeIdentifier. - Clicking on ad analytics event will be fired once per impression.
- Clicking on ad skips the video ad.
- Improved banner ads to promote non-app ad.
- [Android] Fixed video restart feature.
- [Android] Fixed build error
FileNotFoundException: gradleOut.aabfor Unity 2018 with Gradle Wrapper 6.5+. - [iOS] Fixed XCode Parse issue for
eventNameselector. - Minor editor logic fixes.
- [Editor] Added option to disabled
Build preprocessinCleverAdsSlutions > Android Settings. - [Editor] Added
Assets > CleverAdsSolutions > Configure projectmenu to manually invoke the configuration project for successful build. The configuration can be called automatically before the build process when optionBuild preprocessenabled. - [Editor] Disabled error log for unregistered CAS ID when test mode is active.
- [Android] Improved automatic activation of MultiDex and AndroidX.
- [Android] The automatic
Update Gradle Pluginoccurs depending on selected version of the Gradle Wrapper in Unity preferences of External Tools. Added support for Gradle Wrapper 6.5. - [Android] Added option to disable
Update Gradle PlugininCleverAdsSlutions > Android Settings.Without updating the gradle plugin, the build may not succeed due to known issues.
- [Android] Added option to disable
ExoPlayerinCleverAdsSlutions > Android Settingsif you only want to use MediaPlayer. - [Android] Added feature to activate the required Gradle Templates without going to the Player Settings.
- [Android] Added generation
CASPlugin.androidlib/res/xml/meta_network_security_config.xmlto useandroid:networkSecurityConfiginAndroidManifest.xmlfor Meta Audience Network. - [Android] Disabled declare
JavaVersion.VERSION_1_8in gradle file. Unity already defines JavaVersion by default.
- The
CAS_Failevent analytic is no longer collected when theIAdsSettings.analyticsCollectionEnabledis disabled. - The
PSV_AdEventevent analytic is no longer collected.Contact support if you still want to collect this event.
- [Android] Fixed ProGuard rules for native callbacks.
- [iOS] Added Chartboost support(beta).
- [Editor] Disabled warning about new CAS version on build if
Auto check for CAS updatesoption is disabled.
- [Android] Notches on the screen no longer offset the banner position in the center.
- [Android] Added a dependency on a
com.google.android.exoplayer:exoplayerto avoid ANR fromandroid.media.MediaPlayer.- Also added
android.enableDexingArtifactTransform=falseproperty to avoidjava.lang.AbstractMethodErrorcrash from ExoPlayer interface conflict.
- Also added
- Improved error messages while showing ads. Instead of the
No Fillmessage, will beAd are not readyorNo internet connection detected. - Before closing fullscreen ad no longer fires
OnFailedToLoadAd. It should be considered that the shown ad cannot be shown again. Wait for a new ad loading notification to show it. - Banner auto refresh no longer fires
OnFailedwhen the current ad is still valid. - Fixed banner fires
OnLoadedwhen Admob auto refresh. - For a potential increase revenue, we disabled filtering of ineffective floors from the waterfall, after CAS 2.5.0 update.
- [Android] Wraps 2.6.5 SDK
- [Editor] Fixed Top Left banner position with ussing
BannerAdObject.
- [Android] You no longer need to add a dependency on AppSetId because it is always applied.
- Fixed a bug where the set of the banner position in the Top Center was not applied.
- [Android] Automatic deletion of the deprecated
jCenter()repository to avoid Timeout error when the repository is not responding. - [Android] Improved automatic gradle file configuration behavior.
- Fixed saving ads settings for Windows Editor.
- Added support for Android 12 devices for apps targeting API 31.
- Added CAS.ATTrackingStatus.Request(callback), which provides a Tracking Authorization request and the Tracking Authorization status of the iOS application.
- Added Delay measurement of the Google SDK initialization option in
CleverAdsSlutions > Settingswindow. - Added option to disable
Auto check for CAS updatesinCleverAdsSlutions > Settingswindow when you would like to check for updates yourself. - Added option to select
Most popular country of usersinCleverAdsSlutions > Settingswindow to prepare a CAS resources for the selected country.. - [Android] Improved Proguard compatibility. Reduced the SDK size.
- [Android] Added option to disable
Multi DEXinAndroid Settingswindow when your app does not require splitting into multiple dex. - [iOS] Added
Set User Tracking Usage desciptionoption iniOS Settingsto configure localizad description of Tracking Authorization Request.
- The CAS no longer affects to Facebook Audience network Data processing options for Users in California and iOS Advertising Tracking Enabled
⚠️ You will need to implement the flag irrespective of the use of mediation.
CAS.ATTrackingStatus.Request((status) => {
CAS.MobileAds.BuildManager()
.WithMediationExtras(MediationExtras.facebookDataProcessing, "LDU_1_1000")
.WithMediationExtras(MediationExtras.facebookAdvertiserTracking, track ? "1" : "0")
.Initialize();
});- [Android] With Android 12 many mediation partners are starting to include the
com.google.android.gms.permission.AD_IDpermission.
⚠️ Use newRemove permission to use Advertising IDoption inAndroid Settingswindow to remove the permission for all manifests.
Also, some mediation partners are already working with a newApp set IDthat you can add to your game in theAndroid Settings > Advanced Integrationsection.
- Improved calculation of the
AdSize.AdaptiveBanner. - We had to rethink the structure of banners and banner sizes to make their work clearer and more efficient.
- Each a
AdSizehas its own unique ad view.Single.AdSizeinstance forIMediationManager - Added a new
IAdViewinterface to manage the singleAdSizeinstance.
IMediationManager manager = MobileAds.BuildManager().Initialize();
IAdView adView = manager.GetAdView( AdSize.MediumRectangle );- Separated the
AdSize.MediumRectanglefromAdFlags.Bannerformat to newAdFlags.MediumRectangleformat to better configuration of the mediation manager.
- Fixed compilation error with Unity 2021.2 and newer.
- Fixed compilation error with .NET 3.5.
- Improved stability and performance.
- [Android] Improved detection of installed applications that have cross-promo SDK version 2.6+ on Android 11+.
- Added load error "Impression cap" when ad creative has reached its daily cap for user.
- Added option of creative to lock rotation of full-screen ads.
- Added option of creative to disable background for full-screen ads.
- Added option of creative to disable banner for full-screen ads.
- The composition of the
Optimalsolution has been changed: + Pangle, + TapJoy, + MyTarget,Kidoz,FairBid - [iOS] Create new a Families solution designed for applications aimed at a children's audience.
- Removed support for the following networks: FairBid, Start.IO, Smaato, MoPub
- [iOS] Official release for iOS 15 support.
- [iOS] Improvements in the framework structure to avoid problems with classes implemented in both targets.
- [iOS] Added overwriting of App Transport Security settings in
Info.plist. - [iOS] Added recording of all used SDKs to the Podfile.
- [iOS] Added warning when Link frameworks statically disabled.
We recommend enabling
Add use_frameworks!andLink frameworks staticallyfound underAssets -> External Dependency Manager -> iOS Resolver -> Settingsmenu. Failing to do this step may result in undefined behavior of the plugin and doubled import of frameworks.
- Fixed a rare error in the name of the cas settings file.
- Fixed native dependency management when moving
Dependencies.xmlfiles fromAssets/CleverAdsSolutionsfolder. - [iOS] Fixes for iOS build with Unity 2019.3+ and XCode 13.
You can integrate any set of networks using the advanced integration in the Assets > CleverAdsSolutions > Settings window.
Smaato - Privacy Policy
Available for Android only. Coming soon for iOS.
- [Android] Wraps 2.5.1 SDK
- Only Test Ads are used with the Development Build to avoid changing the Test Ads Mode checkbox.
Make sure you disable Development build and use real ad manager ID before publishing your app!
- [Editor] The Test Banner simulation is more similar to real size.
- [Editor] The Test Banenr size and position can be changed in play mode using the inspector.
- [Editor] The application is allowed to build when the server is not available. However, still not recommended and may reduce mediation revenue.
- [Editor] Improved Admob App Id filling.
- [Android] Fixed load the Banner Ads automatically after initialization.
- Deprecated
CAS.MobileAds.BuildManager().WithManagerId()in favor ofAssets>CleverAdsSolutions>Settingsmenu andCAS.MobileAds.BuildManager().WithManagerIdAtIndex().Defining Manager Id in the builder is not enough to setup the project correctly.
You can integrate any set of networks using the advanced integration in the Assets > CleverAdsSolutions > Settings window.
Pangle - Privacy Policy
Available for Android only. Coming soon for iOS.
- Chartboost is no longer supported. At the moment, Chartboost architecture does not allow us to effectively compete with other networks. We will keep an eye on changes in the future and look forward to receiving support back.
- Deprecated
CAS.MobileAds.BuildManager().WithTestAdMode(false)in favor ofAssets>CleverAdsSolutions>Settingsmenu.Defining test mode in the builder is not enough to get true test ads.
- Deprecated
CAS.MobileAds.Initialize()in favor ofBuildManager().Since the test ad mode is obsolete, we recommend using the builder with new initialization options.
Read more release notes in the Github releases