# Banner Cache

### Note <a href="#markdown-header-creating-placement" id="markdown-header-creating-placement"></a>

Banner cache is currently only available on the [3.3-beta-release](https://bitbucket.org/addapptr/flutter-binding/src/3.3-beta-release/) branch.

### Create Banner Cache

To create banner cache, call `createBannerCache` method:

```dart
_aatKitBinding.createBannerCache()
```

You can change the cache configuration if needed. Please modify corresponding variables or pass more parameters to the constructor of `BannerCacheConfiguration` (Android) or`AATBannerCacheConfiguration` (iOS):

{% code title="AATKitBinding.kt" %}

```kotlin
    //Change banner cache configuration if needed
    private val bannerCachePlacementName = "bannerCachePlacement"
    private val bannerCacheSize = 2
    
    ...
    
    private fun createBannerCache() {
        //Set more parameters of BannerCacheConfiguration if needed
        val configuration = BannerCacheConfiguration(bannerCachePlacementName, bannerCacheSize)
        configuration.delegate = bannerCacheListener
        bannerCache = AATKit.createBannerCache(configuration)
    }
```

{% endcode %}

{% code title="AATKitBinding.swift" %}

```swift
    //Change banner cache parameters if needed
    private let bannerCachePlacementName = "bannerCachePlacement"
    private let bannerCacheSize = 2
    
    ...
    
    
    private func createBannerCache() {
        //Set more parameters of AATBannerCacheConfiguration if needed
        let configuration = AATBannerCacheConfiguration(placementName: bannerCachePlacementName, size: bannerCacheSize)
        configuration.delegate = bannerCacheDelegate
        Self.bannerCache = AATSDK.createBannerCache(configuration: configuration)
    }
```

{% endcode %}

### Consume Banners

Next banner is consumed automatically when adding `AATKitBanner` widget with passed `type` parameter as `AATKitBannerType.cached:`

```dart
AATKitBanner(
  type: AATKitBannerType.cached,
)
```

### Destroy old banner

Banner is destroyed automatically when `AATKitBanner` widget is no longer attached to the UI.

### Destroy no longer needed BannerCache <a href="#markdown-header-destroy-no-longer-needed-bannercache" id="markdown-header-destroy-no-longer-needed-bannercache"></a>

For proper memory management, BannerCache needs to be destroyed when is no longer needed. The `destroyBannerCache` method destroys the BannerCache:

```dart
_aatKitBinding.destroyBannerCache();
```

### Code Example

Please see [list\_page.dart](https://bitbucket.org/addapptr/flutter-binding/src/3.3-beta-release/lib/pages/list_page.dart) to check how banner cache is integrated within `ListView` widget. Please note our example app requires to call creating banner cache manually by pressing the `Create banner cache` button from the [home\_page.dart](https://bitbucket.org/addapptr/flutter-binding/src/3.3-beta-release/lib/pages/home_page.dart).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://aatkit.gitbook.io/aatkit-flutter-binding/formats/banner-cache.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
