- [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
CASPostGenerateGradle
could not be found.Please remove the
CASDeveloper
from the Sciripting Define Symbols if it was added to work around this issue. - [iOS] Fixed the
EXC_BAD_ACCESS
crash that occurred when accessingAdMetaData
slightly 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
NSUserTrackingUsageDescription
localization withcom.unity.localization
package. - [iOS] Fixed XCode build error
CASResources no such file or directory
when 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, onlyTopLeft
was supported. - Added optional parameter
AdPosition
to 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
rectInPixels
is now available immediately in theOnLoaded
event. - The
rectInPixels
will 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
enableDexingArtifactTransform
for Unity 2022.2+ as deprecated with newest gradle versions.
- The
ConsentFlowAdObject.showOnAwakeIfRequired
changed toFalse
by default. - The
ManagerAdObject.initializeOnAwake
changed toFalse
by default. - [Android] The
CASPlugin.androidlib
has been replaced byCASUnityBridge.aar
for compatibility with Unity 6. - [Android] Now Gradle file modifications will be performed in temporary build files instead of project assets.
- [iOS] The
Info.plist
configuration post-process was moved toint.MaxValue - 10
order 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
EnableOptionsButton
event forConsentFlowAdObject
to enable/disable Consent option button.
- [iOS] Fixed
EXC_BAD_ACCESS
crash fromdidCloseAd
callback.
- 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
UnityFramework
in 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.MobileAds
class:OnApplicationBackground
andOnApplicationForeground
. It's important to use new events when you want to show AppOpen ads on user returning to the game. - Added
ConsentFlowAdObject
component. - Added option to disable
ConsentFlow
viaManagerAdObject
component. - Added
ConsentFlowAdObject
optional field forManagerAdObject
to configureConsentFlow
on Ads initialization. - Added
ConsentFlow.Status
enum and new event forConsentFlow.WithCompletionListener(Action<ConsentFlow.Status>)
. - Added
ConsentFlow.DebugGeography
enum andConsentFlow.WithDebugGeography()
method to sets debug geography for testing purposes. - Added
ShowIfRequired()
method forConsentFlow
instance to show the consent form only if it is required and the user has not responded previously. - Added
Show()
method forConsentFlow
instance 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 forConsentFlow
instance. - Made
OnAdOpening
events obsolete. Please useOnAdImpression
event to collectAdMetaData
about the ad impression orOnAdShown
event ifAdMetaData
is not used. - Performance improvements when forwarding native callbacks.
- In manual ad loading mode, the SDK will no longer trigger
OnAdFailedToLoad
events before closing the Interstitial and Rewarded ads. - [Android] Added
androidx.lifecycle:lifecycle-process:2.6.2
dependency. - [Editor] Added
ConsentFlow
completion events implementation to testing in editor. - [Editor] Removed
Delay measurement of the Ad SDK initialization
option, 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
AdSupport
andAppTrackingTransparency
frameworks ifUserTrackingUsageDescription
defined in settings window. - Added
CAS.MobileAds.targetingOptions.locationCollectionEnabled
property to collect from the device the latitude and longitude coordinated truncated to the hundredths decimal place. AndLocation targeting if allowed
default 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.trackLocationEnabled
obsolete in favor of locationCollectionEnabled in targetingOptions for both platforms.
- Fixed the mapping of
AdNetwork.DTExchange
to the native CAS for theAdMetaData
structure.
- [Android] Fixed
NullPointerException
when initializing CAS ifWithMediationExtras()
was not used. (experienced on 3.5.4)
- Madex
- Fixed invoke of
InterstitialAdObject.OnAdShown
event. - [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
packagingOptions
to gradle files to pick the first occurrence ofMETA-INF/kotlinx_coroutines_core.version
andMETA-INF/core-utils_release.kotlin_module
files. 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.contentUrl
to 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 Settings
window. 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.xml
occurs 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.androidlib
is placed inCleverAdsSolution/Plugins/Android
instead ofAssets/Plugins/Android
. The obsoleteCASPlugin.androidlib
will 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.trialAdFreeInterval
property 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.settings
will 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 added
with usseduse_frameworks! :linkage => :static
in Podfile.Due to an bug in the Yandex Ads SDK, we had to add the bundle to the app target.
- [iOS] Fixed
Multiple commands produce
with Dynamic frameworks ifuse_frameworks!
in Podfile. - [iOS] Fixed issue with missing
CFBundleShortVersionString
in App target ifuse_frameworks!
in Podfile.
We are working to resolve issues with
use_frameworks!
, however we still recommend setuse_frameworks! :linkage => :static
only 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
CFBundleShortVersionString
in 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
OnInitialziationFailed
event to theManagerAdObject
inspector. - Added an
InitializationError
class with const strings to compare withInitialConfiguration.error
values.
- 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_impression
event. - The
AdMetaData.identifier
property now returns the Placement ID from the network on which the ad was shown. - The
AdNetwork.Vungle
renamed to LiftoffMonetize. - The
AdNetwork.DigitalTurbine
renamed 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 found
during version package update. - [Editor] Disabled of Gradle Tools version update for Used Gradle wrapper version in build.
- [Android] Fixed
Exception: No such proxy method: onCASInitialized
with Test Ad Mode.
- [Android] Fixed signature exception from
CAS.Android.CASConsentFlowClient
. - [Android] Fixed rare
UnsupportedOperationException
from Test Ads Activity. - [iOS] Fixed fatal error
Library not loaded
for 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 newInitialConfiguration
parameter:
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.analyticsCollectionEnabled
is 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-iPhone
target 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
.unitypackage
integration in Editor Ads Settings window. - [Editor] Added option to
Include Ad dependency versions
in Editor Ads Settings window. The Ads SDK versions are no longer visible in Gradle and Podfile by default. - [Editor] The
Most popular country of users
option is no longer required. - [Editor] The
CASEditorSettings
inspector 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.userConsent
andAdsSettings.userCCPAStatus
are 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.gradle
to 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.rectInPixels
values.
- 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.taggedAudience
equalsAudience.Children
. - If
CAS.MobileAds.settings.userConsent
not 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
OnAdImpression
event has been added to get a more precise revenue per ad impression than from the ad opening event. - Update
InterstitialAdObject
,RewardedAdObject
andReturnToPlayAdObject
:event OnAdClosed
is now called afterevent OnAdFailedToShow
automatically.- Added
event OnAdImpression
- event withAdMetaData
and more precise revenue. - Added
bool isAdReady
- check ready ad to present. - Added
void LoadAd()
- manual load ad.
- Added
double revenue
property toAdMetaData
to 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.allowInterstitialAdsWhenVideoCostAreLower
option. - 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
AdMetaData
class to get information about ad impressions. - Added
IAdView.OnImpression
event withAdMetaData
structure and invoked only once for each new ad impression. - Added
impressionDepth
property for theAdMetaData
structure to get the amount of impressions of all ad formats to the current user. - Added
lifetimeRevenue
property for theAdMetaData
structure 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_impression
andCAS_Impression
analytics 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.settings
are saved between sessions. - The
MobileAds.settings.isExecuteEventsOnUnityThread
is 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.rectInPixels
returnRect.zero
when ad view is not active. - Plugin caching the value of
IAdView.rectInPixels
on 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.isDebugMode
is 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.OnPresented
andIAdViwe.OnHidden
events. These events are invoked when the ad view's changesIAdView.SetActive()
. - Deprecated
IMediationManager.OnLoadedAd
event in favor of the new separateIMediationManager.OnInterstitialAdLoaded
andIMediationManager.OnRewardedAdLoaded
events. - Deprecated
IMediationManager.OnFailedToLoadAd
event in favor of the new separateIMediationManager.OnInterstitialAdFailedToLoad
andIMediationManager.OnRewardedAdFailedToLoad
events withAdError
enum. 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.AdaptiveBanner
in portrait orientation. - Fixed refresh
AdSize.AdaptiveFullWidth
on 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.AdaptiveFullWidth
to pick the best ad size for full full screen width.AdSize.AdaptiveBanner
can 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
FormatException
fromAdMetaData.GetDouble()
. - [iOS] Force disable
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES
for 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.creativeIdentifier
to 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.identifier
to 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.Configuration
when 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.isExecuteEventsOnUnityThread
for 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
CASInitSettings
class toIManagerBuilder
interface.
- 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.aab
for Unity 2018 with Gradle Wrapper 6.5+. - [iOS] Fixed XCode Parse issue for
eventName
selector. - Minor editor logic fixes.
- [Editor] Added option to disabled
Build preprocess
inCleverAdsSlutions > Android Settings
. - [Editor] Added
Assets > CleverAdsSolutions > Configure project
menu to manually invoke the configuration project for successful build. The configuration can be called automatically before the build process when optionBuild preprocess
enabled. - [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 Plugin
occurs 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 Plugin
inCleverAdsSlutions > Android Settings
.Without updating the gradle plugin, the build may not succeed due to known issues.
- [Android] Added option to disable
ExoPlayer
inCleverAdsSlutions > Android Settings
if 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.xml
to useandroid:networkSecurityConfig
inAndroidManifest.xml
for Meta Audience Network. - [Android] Disabled declare
JavaVersion.VERSION_1_8
in gradle file. Unity already defines JavaVersion by default.
- The
CAS_Fail
event analytic is no longer collected when theIAdsSettings.analyticsCollectionEnabled
is disabled. - The
PSV_AdEvent
event 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 updates
option 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:exoplayer
to avoid ANR fromandroid.media.MediaPlayer
.- Also added
android.enableDexingArtifactTransform=false
property to avoidjava.lang.AbstractMethodError
crash from ExoPlayer interface conflict.
- Also added
- Improved error messages while showing ads. Instead of the
No Fill
message, will beAd are not ready
orNo 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
OnFailed
when the current ad is still valid. - Fixed banner fires
OnLoaded
when 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 > Settings
window. - Added option to disable
Auto check for CAS updates
inCleverAdsSlutions > Settings
window when you would like to check for updates yourself. - Added option to select
Most popular country of users
inCleverAdsSlutions > Settings
window to prepare a CAS resources for the selected country.. - [Android] Improved Proguard compatibility. Reduced the SDK size.
- [Android] Added option to disable
Multi DEX
inAndroid Settings
window when your app does not require splitting into multiple dex. - [iOS] Added
Set User Tracking Usage desciption
option iniOS Settings
to 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_ID
permission.
⚠️ Use newRemove permission to use Advertising ID
option inAndroid Settings
window to remove the permission for all manifests.
Also, some mediation partners are already working with a newApp set ID
that you can add to your game in theAndroid Settings > Advanced Integration
section.
- 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
AdSize
has its own unique ad view.Single.AdSize
instance forIMediationManager
- Added a new
IAdView
interface to manage the singleAdSize
instance.
IMediationManager manager = MobileAds.BuildManager().Initialize();
IAdView adView = manager.GetAdView( AdSize.MediumRectangle );
- Separated the
AdSize.MediumRectangle
fromAdFlags.Banner
format to newAdFlags.MediumRectangle
format 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
Optimal
solution 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 statically
found underAssets -> External Dependency Manager -> iOS Resolver -> Settings
menu. 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.xml
files fromAssets/CleverAdsSolutions
folder. - [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>Settings
menu 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>Settings
menu.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