Banner / MREC

Display banner ads

Example @Composable to display the banner:

@Composable
fun BannerAdView(
    modifier: Modifier,
    loadParams: LoadParams,
    onDisplayed: (() -> Unit)? = null,
    onFailed: ((String) -> Unit)? = null,
    onClicked: (() -> Unit)? = null,
    onClosed: (() -> Unit)? = null,
) {
    AndroidView(
        modifier = modifier,
        factory = { context ->
            BannerView(context).apply {
                this.onDisplayed = onDisplayed
                this.onFailed = onFailed
                this.onClicked = onClicked
                this.onClosed = onClosed
                doOnAttach {
                    CoroutineScope(Dispatchers.Main).launch {
                        when (val result = load(loadParams = loadParams)) {
                            is BannerLoadSuccess -> {}
                            is BannerLoadFailure -> { onFailed?.invoke(result.error) }
                        }
                    }
                }
            }
        },
    )
}