A sticky banner placement serves as a container for banner ads. It is commonly used as a static, constantly shown, part of the app’s presentation. The ad content of the banner changes over time. To create a placement you need to specify its name and size.
The sticky banner placement provides a banner ad view once and will keep responsible for refreshing the displayed ad content over time. So, once you’ve created the placement, get the ad container view via method getPlacementView() and display it on the screen. If auto-reloading is used, the placement will update the view content once it has got a new ad.
val bannerView = placement.getPlacementView()myBannerFrame.addView(bannerView)
Request Ad
You can load ads for the sticky banner placement either automatically (recommended) or manually.
Automatic Reload
To automatically load (and reload) the sticky banner placement enable auto-reload. If you do not set the refresh time interval seconds explicitly, AATKit will
Reload every 30 seconds (if no refresh time interval is set on the Dashboard)
Respect the refresh time interval setting of the Dashboard (which means, you can configure the interval without having to re-publish your app)
Note: if you make use of automatic reload, please make sure to disable (or not enable) automatic banner refresh at your ad networks of choice. Otherwise, the different auto reloads would interfere with each other.
// reload the banner placement every 30 seconds.placement.startAutoReload();// OR set refresh time manuallyplacement.startAutoReload(45);
// reload the banner placement every 30 seconds.placement.startAutoReload()// OR set refresh time manuallyplacement.startAutoReload(45)
The minimum refresh time is 30 seconds.
This needs to stop the auto-reload when it is no longer needed (e.g. if the view controller presenting ads will disappear):
placement.stopAutoReload();
placement.stopAutoReload()
Manual Load
To manually load the sticky banner placement:
placement.reload();// Or using force loadplacement.reload(true);
placement.reload()// Or using force loadplacement.reload(true)
Force Load
false (default): reload() will respect the current time interval.
true: reload() will immediately reload (irrespective of the fact when the last ad was loaded). This can be useful if the same sticky banner placement is used on various different pages of the app and you want to load a new ad every time the user navigates to another page (while still using auto-reloading).
Banner Content Gravity
If the placement is created with a size larger than the banner ad size (see placement creation), you can align the banner ad inside the placement view. To set the ad alignment, use the setContentGravity(gravity: Int) API passing the proper Gravity.
placement.setContentGravity(Gravity.CENTER);
placement.setContentGravity(Gravity.CENTER)
The above image is for a placement created with size 375x50 while the loaded ad is 320x50. The red background is the placement ad container after setting the gravity to Gravity.RIGHT (the red colour is just used here for explanatory purposes).
Complete Code Example
private StickyBannerPlacement placement = AATKit.createStickyBannerPlacement("<PLACEMENT_NAME>", BannerPlacementSize.Banner320x53);
@OverrideprotectedvoidonResume() { super.onResume();// [IMPORTANT] Notify AATKit about activity lifecycleAATKit.onActivityResume(this);// Set placement listener to listen to the callbacksplacement.setListener(this);// (optional) Set ad view alignment inside the placement viewplacement.setContentGravity(Gravity.CENTER);// Get the banner viewView bannerView =placement.getPlacementView();myBannerFrame.addView(bannerView);// reload the banner placement every 30 seconds.placement.startAutoReload();// OR set refresh time manuallyplacement.startAutoReload(30);}@OverrideprotectedvoidonPause() {// [IMPORTANT] Stop placement auto-reloadplacement.stopAutoReload();// [IMPORTANT] Notify AATKit about activity lifecycleAATKit.onActivityPause(this); super.onPause();}// StickyBannerPlacementListener implementation@OverridepublicvoidonPauseForAd(@NonNullPlacement placement) {// App is paused after banner got clicked}@OverridepublicvoidonResumeAfterAd(@NonNullPlacement placement) {// Back to the app after clicking on the ad}@OverridepublicvoidonHaveAd(@NonNullPlacement placement) {// The placement has loaded a new ad}@OverridepublicvoidonNoAd(@NonNullPlacement placement) {// The placement could not load a new ad}
privateval placement = AATKit.createStickyBannerPlacement("<PLACEMENT_NAME>", BannerPlacementSize.Banner320x53)protectedoverridefunonResume() {super.onResume()// [IMPORTANT] Notify AATKit about activity lifecycleonActivityResume(this)// Set placement listener to listen to the callbacks placement.listener =this// (optional) Set ad view alignment inside the placement view placement.setContentGravity(Gravity.CENTER)// Get the banner viewval bannerView = placement.getPlacementView() myBannerFrame.addView(bannerView)// reload the banner placement every 30 seconds. placement.startAutoReload()// OR set refresh time manually placement.startAutoReload(30)}protectedoverridefunonPause() {// [IMPORTANT] Stop placement auto-reload placement.stopAutoReload()// [IMPORTANT] Notify AATKit about activity lifecycleonActivityPause(this)super.onPause()}// StickyBannerPlacementListener implementationfunonPauseForAd(placement: Placement) {// App is paused after banner got clicked}funonResumeAfterAd(placement: Placement) {// Back to the app after clicking on the ad}funonHaveAd(placement: Placement) {// The placement has loaded a new ad}funonNoAd(placement: Placement) {// The placement could not load a new ad}