-
Notifications
You must be signed in to change notification settings - Fork 4
Early Access SDK
Str4tos edited this page Apr 29, 2025
·
22 revisions
- Please check the updated Wiki for details about the CAS 4 release.
- Starting in version 4.0.0, the CAS.AI SDK requires all apps to run on a minimum Android API level 23 to run. To adjust the API level, change the
minSdkvalue in your app-levelbuild.gradlefile to 23 or higher. - Added support for the Native Ad format.
- 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
OnImpressionListenerto collect impression data via newAdContentInfostructure. - The
show(Activity?)method for screen ads no longer requires anActivity, but it is still recommended when possible. The CAS SDK will attempt to determine the last createdActivityof your app. - Added Autoload mode for
CASAppOpenad instance. - Added automatic initialization of the Tenjin SDK when the API key is provided in the CAS SDK initialization parameters.
-
AdError.getMessage()now provides more detailed error information.
A single error code may include multiple detailed messages.
All error code constants have been moved fromAdErrortoAdErrorCode. - Added a new adapter for the YSO Network.
- Added a new adapter for Prado Ads (Closed Beta). Contact your account manager if you would like to try this new ad network.
- The automatic display of App Return Ads replaced to new auto show mode for
CASAppOpenandCASInterstitialad instances. To enable this feature, use theisAutoshowEnabledproperty.
Early beta versions
- Fixed an issue where screen ads could not be displayed with the "Ad already displayed" error due to a load call occurring during ad display.
- Fixed
IllegalStateExceptioncrash from Native AdcreateAdChoicesContentView()when an ad content was reused. - Fixed
IllegalStateExceptioncrash from Native Ad contentdestroy(). - Fixed
StackOverflowExceptioncrash from Native Ad contentat android.view.Choreographer. - Fixed a rare issue where
onNativeAdFailedToShow()was triggered with the "Ad Expired" error for valid content. - Fixed an issue where
CASMediaViewwithWrap Contentcould have a size of0. - Fixed a Native Ad content reuse issue from LiftoffMonetize.
- Fixed a rare issue where the load ad call for bidding ad content was lost.
- Improved screen ad content checks for
show(). - Added support GPP HDR for Bid Requests.
- Update SDK: Unity Ads (4.14.0), Yandex Ads (7.11.0), InMobi (10.8.2), Pangle (6.5.0.6), Bigo (5.2.1)
- Fixed a rare issue blocking interstitial loading due to the rewarded extra fill feature.
- Fixed some minor errors in the mediation logic.
- Improved performance of loading multiple ads simultaneously.
- Fixed some issues.
- Renamed
AdContenttoAdContentInfo. - Renamed functions in the
CASBannerViewto be consistent with other ad formats:-
isAdReadytoisLoaded -
loadNextAdtoload
-
- Added
val contentInfo: AdContentInfo?property for each ad formats to get loaded ad content info. - Added new adapter for Prado Ads. Contact our manager if you want to try a new ad network. To integrate, you need to include the adapter to build:
cas {
adapters {
prado = true
}
}- Added collection of internal ads metrics for CAS.
- Improved suspension of banner refresh timer when it is outside the screen.
- Improved ad expiration tracking system.
- Improved handling and logs of native ad display errors.
- Internal fixes.
- Removed LoopMe adapter support.
- Includes adapter updates from version 3.9.9.
- [Critical DTExchange fix] Fixed usage of Android Advertising ID to be compliant with Google Play Ads policy.
- Renamed
AdFormat.MRECtoAdFormat.MEDIUM_RECTANGLE. - Fixed InMobi Bidding.
- Fixed some issues with the native ad format.
- Improved various aspects to accelerate ad loading process.
- Enhanced performance of Bidding requests.
- Includes adapter updates from version 3.9.8.
- Update for AppOpen, Interstitial, Rewarded:
- The screen ad instance can now be loaded if it will only be used in
ScreenAdContentCallback. Make sure to calldestroy()to release application resources. - The screen ad instances no longer requires a context to create (context can be optionally
null). - The
load()method for screen ads is deprecated in favor ofload(Context?). - The
show(Activity?)method for screen ads no longer requires anActivity, but it is still recommended to pass anActivitywhen possible. The CAS SDK will attempt to determine the last createdActivityof your app.
- The screen ad instance can now be loaded if it will only be used in
- Update for Native format:
-
CASMediaViewcan now have a size ofWRAP_CONTENT. In this case, it will use all available space while maintaining the aspect ratio of the ad content. -
NativeAdContentcan now be set repeatedly toCASNativeViewwithout causing an error. However, note that you should avoid situations where the sameNativeAdContentis set to multipleCASNativeViewinstances simultaneously. Also, make sure to always calldestroy()forNativeAdContentthat is no longer in use, in order to release application resources. - The
CASNativeView.setNativeAdTemplate(NativeAdContent, AdSize)method is now deprecated in favor of the newsetAdTemplateSize(AdSize)method. This new method still creates a view layout with the specified size, but now you must callsetNativeAd(NativeAdContent)to populate the content.
-
[!NOTE]
Creating the view layout may cause a delay in UI rendering, so it is recommended to specify the template size once during initialization. After that, you can set differentNativeAdContentfor the same view without any loss in rendering performance.
- 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..withMediationExtras("tenjin_key", TENJIN_SDK_KEY) - Fixed
java.lang.ClassCastException: LayoutParams cannot be cast to MarginLayoutParamsfromCASNativeView. - Fixed a tracking issues for YsoNetwork and Yandex Ads impressions.
- Fixed an issue where Mintegral video ads would not play in their native format.
- Fixed an issue where Mintegral AppOpen ads could show underneath existing dialogs.
- Fixed a rare issue where on some tablets the banner size would load in Leaderboard format instead of the normal one.
- Fixed an issue where Native Ads did not trigger loading callbacks.
- Fixed a rare issue where AppOpen Ads could appear on top of Interstitial Ads.
- Fixed a rare issue where fullscreen ads were not shown due to
AdErrorCode.ALREADY_DISPLAYED. - Fixed display issues with CASExchange.
- Fixed tracking issues for YsoNetwork impressions.
- Added new
ConsentFlow.Status.UNKNOWNthat can only occur if CPM has not been initialized yet. - Added new
AdErrorCode.REJECTEDthat occurs when the device is not supported by all services. - Improved CAS initialization:
- Added new
InitialConfiguration.consentFlowStatuswith status of Consent Flow orUNKNOWN. -
InitializationError.NO_CONNECTIONnow immediately interrupt the initialization process. - CAS initialization can now occur as needed during ad loading.
- Added new
-
CASBannerViewnow has a size of (0, 0) when no ad is loaded. You can useWRAP_CONTENTfor this case. - Optimized mediation initialization.
- Includes adapter updates from version 3.9.7.
- Fixed one of the InMobi processes.
- Fixed potential loss of activity for showing Consent Flow when CAS initialization.
- Improved Yandex Ads bidding requests.
- Improved YSO Network bidding requests.
- Optimized mediation processes.
- Includes adapter updates from version 3.9.5.
- Fixed crash from CASExchange adapter.
- Fixed some internal bugs.
- Fixed YSO Network adapter.
- Fixed
NullPointerExceptionfrom IronSource adapter. - Fixed
ActivityNotFoundExceptionfrom CASExchange adapter. - Fixed an issue where SDK automatic initialization would complete incorrectly.
- Fixed an issue where ads would fail to load when multiple CAS IDs were used.
- Optimized some internal processes.
- Includes adapter updates from version 3.9.4.
- Fixed internal critical bugs in mediation.
- Optimized some internal processes.
- The
NativeAdContentCallback.onAdFailedToShowfunction renamed toonNativeAdFailedToShow. - Added new adapter for YSO Network. Contact our manager if you want to try a new ad network. To integrate, you need to add a new repository to project settings:
maven {
name = "YSOAdsRepo"
url = "https://ysonetwork.s3.eu-west-3.amazonaws.com/sdk/android"
content { it.includeGroup("com.ysocorp") }
}And include the adapter to build:
cas {
adapters {
ysoNetwork = true
}
}- Fixed some internal exceptions.
- Added
CASMediaView.imageScaleTypeproperty. - Added
CASNativeLoader.isStartVideoMutedproperty. - Added Native Ads support from more ad sources.
- Added App Open Ads support from more ad sources.
Important
We've moved!
Visit the updated CAS.AI docs.
- Integration
- Initialization
- Additional mediation steps
- Google Play data disclosure
- App-ads.txt🔗
- App Open Ad
- Banner Ad
- Interstitial Ad
- Rewarded Ad
- Native Ad