To enable GDPR data collection restrictions, call the restrictDataCollection method with the appropriate value for users who are EU Data Subjects. This method should be called before startWithAppId
To enable GDPR data collection restrictions, call the restrictDataCollection method with the appropriate value for users who are EU Data Subjects. This method should be called before startWithAppId
Changed behavior of Chartboost.setShouldRequestInterstitialsInFirstSession to match the iOS SDK:
This setting now only applies to interstitial ads. It no longer applies to rewarded video ads.
This setting will now be checked whether or not there is a delegate set. SDK 6 and below only checked the value if a delegate had been set.
Removed MoreApps support and deprecated API methods:
Chartboost.hasMoreApps() will always return false.
Chartboost.cacheMoreApps() and showMoreApps() will both call didFailToLoadMoreApps(location, END_POINT_DISABLED).
Deprecated Chartboost.isWebviewEnabled()
Removed the unused EMPTY_LOCAL_AD_LIST error code.
Added VIDEO_UNAVAILABLE_FOR_CURRENT_ORIENTATION error code, which can occur when playing a native ad.
InPlay changes:
CBInPlay.getAppIcon will now throw an exception if there is a failure to load the icon file or to decode it as a bitmap.
Added public final fields to CBInPlay (appName, location, largeAppIconUrl, largeAppIconFile).
The sample app was erroneously checking CBInPlay.hasInPlay() after calling CBInPlay.getInPlay(). It now uses the getInPlay() result without checking hasInPlay()
AdUnit assets are handled in arbitrary subdirectories.
If a bitmap or video is found to be corrupt when attempting to show an ad, we now delete the underlying file and call didFailToLoad on the delegate.
Removed MoreApps from ChartboostExampleApp.
willDisplayVideo delegate is called before starting CBImpressionActivity. This is primarily so that on Unity, the willDisplayVideo callback will be executed before the ad shows, rather than after.
Added a delay with exponential back-off between ad cache or show failures.
The Chartboost Android SDK no longer supports the age gate feature. API methods related to age gate are being deprecated and will be removed in a future release.
Publishers only: All Chartboost ads are now shown using CBImpressionActivity. You must add CBImpressionActivity to your AndroidManifest.xml file, like this:<activity android:name="com.chartboost.sdk.CBImpressionActivity" android:excludeFromRecents="true" android:hardwareAccelerated="true" android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" android:configChanges="keyboardHidden|orientation|screenSize" />Note: Make sure hardware acceleration is added and enabled when declaring the CBImpressionActivity in the manifest.
New method setActivityCallbacks(boolean enabled) used to enable the activity lifecycle callbacks. Only available for Android 4.X and higher. This behavior is disabled by default.
Added a retry mechanism for downloading failed assets.
Cached impressions on soft bootups are invalidated if any shared assets are deleted.
android.permission.WRITE_EXTERNAL_STORAGE is now an optional (but recommended) permission instead of required.
New recommended permission android.permission.READ_PHONE_STATE allows the SDK to handle calls interrupting video playback during videos.
New method, public void didPauseClickForConfirmation(Activity activity), to handle Age Gate functionality. Previous method didPauseClickForConfirmation() is now deprecated.
Extending ChartboostActivity as a method of integration is deprecated. If you rely on this functionality please contact us.
All public methods are now static, so rather than using instance calls (e.g. this.cb) you can use the class name to call methods’ names (e.g. Chartboost.onCreate()).
SDK initialization API name and its parameters are changed.
ChartboostDelegate is not an interface anymore, but an abstract class. This means you don’t need to know ahead of time (or implement) the delegate callbacks that will be needed.
New activity callbacks, onPause() and onResume(), added.
Java API docs are provided along with SDK and a sample app (CBSample).
New product: Post-Install Analytics exposes in-app purchasing API for developers to track Google Play and Amazon Appstore in-app purchases. More information
New product: Tracking. This product is mainly used to log session events, user events, system events and debug events that are recorded by the SDK and sent to our servers.
Carrier information like carrier name, MCC, MNC, ISO and phone type is sent in every API request.
Permission android.permission.ACCESS_NETWORK_STATE is now required.
jb flag is sent on every request to determine if the device a jailbroken or rooted device.
New CBLocation constants (a default set of location constants which can be used during impression calls) provided to developers.
Improved interstitial and MoreApps page animations; we recommend you target Android OS 4.0+ for best results.
Improved close button handling after device orientation changes.
Added age gate for ad links, accessible via a new shouldPauseClickForConfirmation() delegate method. Learn more
Fixed rare bug that served incorrect ad sizes.
Improved SDK organization: All Chartboost properties and settings are accessible/editable via a new CBPreferences class.
Added error constants that can be used to print delegate method failure reasons in log.
Renamed didFailToLoadUrl delegate method to didFailToRecordClick in order to more granularly describe event failures.
Added ability to configure logging for reports to Chartboost Support, accessible separate from the Chartboost instance via CBPreferences.setLoggingLevel(). Options are:
NONE: Nothing is logged.
INTEGRATION: The default setting — suspected integration errors will be logged (debug builds only).
ALL: Suspected integration errors, plus diagnostic errors and messages, will be logged (in debug and release builds).
Added client-side support for Google Play Services Advertising ID tracking.
ChartboostActivity and ChartboostNativeActivity are simple alternatives to implementing Chartboost in your app. Simply extend your activities from either class (depending on whether you use native activities or not), provide the app ID and signature, and you’re done!
Changed documentation to suggest calling Chartboost.startSession() and cb.showInterstitial(); in your activity’s onStart() method, instead of in onCreate().
ChartboostDefaultDelegate is a new abstract class that serves as a ChartboostDelegate. Extending from this instead will allow you to skip overriding the methods you are not interested in, at the expense of not being able to inherit from your own base class. The default implementation returns true for any method that returns a boolean in the delegate.
didFailToLoadUrl() is called when the result of a click in an impression fails to load.
Added exceptions to warn you if you have forgotten to properly exclude Chartboost from your proguard using the line -keep class com.chartboost.sdk.** { *; }
Simultaneous identical interstitial or MoreApps request attempts will fail immediately. However, simultaneous interstitial requests with different locations are fine.
Fix allowing Chartboost servers to differentiate buggy Android 2.x devices that all share the same ANDROID_ID
Fixed an infrequent HTTP connection error during image downloads.
Fixed bug where if the network is lost while viewing the MoreApps page, a click would cause a progress bar to hang forever.
Fixed edge case crashes related to caching images.
Method Chartboost.orientation() is now called getOrientation()
Added ability to disable animations and fixed animation type none
Fixed memory leak that could sometimes occur with the activity impressions setting.
Removed dependence of sensor listener unless orientation is overridden.
Removed all dependencies on AsyncTask, ensuring full compatibility with multithreaded apps.
Fixed bug where screen stayed dark after closing interstitials on certain problem devices (including 4.1.2 Nexus S and Nexus 10).
Fixed interference with game-rate sensor listeners on certain problem devices (including 2.3.x Galaxy S1 and Galaxy S2).
Fixed crash when cacheInterstitial() was called off the UI thread.
Change: Show impression calls will immediately fail (and call delegate method) if an impression is already visible.
Stopped delegate method shouldDisplayLoadingViewForMoreApps() from being fired when showing interstitials.
Fixed delegate method shouldRequestMoreApps() was not being called as specified.
Fixed harmless Lint error about invalid package reference (also no longer necessary to include -dontwarn java.lang.management.** in your proguard configuration).
Fixed memory leak involved in using Chartboost in multiple subsequent activities.
Fail gracefully in low memory situations.
Added ability to suppress off-thread method calling exceptions for certain unusual use cases.
Add chartboost.jar.properties and doc directory to libs
Adds support for campaign targeting by language.
Significant memory management improvements.
SDK no longer retains an activity reference, be sure to implement cb.onDestroy() in your activity’s onDestroy() method.
Improved stability when WiFi connected without internet connectivity
Interstitials now work in the Android emulator.
Removed deprecated methods, see documentation or the example project.
Added descriptive exceptions to occur in certain wrong implementation scenarios.
Now compatible with NativeActivity and other edge case scenarios.
Safer and more efficient image loading.
Fixed showMoreApps() when delegate is null.
Variety of stability and compatibility improvements.
Improved reliability when using proguard. Be sure to add the following to your proguard.cfg: -keep class com.chartboost.** { *; } -dontwarn java.lang.management.**
New native More-Apps page: faster, less memory, less network activity.
Asset caching: individual assets are cached & only downloaded if they don’t exist in cache.
Cache expiration: cached interstitials automatically expire after 24 hours.
Multi orientation support: if your app works in both orientations, simply select both (landscape and portrait) in the dashboard.
No longer uses an activity to display the view (better performance).
Handles tracking of cached interstitials properly.
Countless performance & stability upgrades.
New API method: cb.onCreate initializes Chartboost with cb.onCreate(Context, appID, appSignature, chartboostDelegate or null)
New API method: cb.startSession(), removed cb.install()
New delegate method: didCacheInterstitial called when an interstitial is successfully cached from the server, interstitial location identifier passed in.
New delegate method: didCacheMoreApps called when the MoreApps page is successfully cached from the server.
New delegate method: shouldRequestInterstitialsInFirstSession default is YES, you may override to NO if you don’t want interstitials displayed until after the 2nd startSession (for compliance with Human Interface Guidelines).