Admob Adaptive Banner Is Not Showing In Jetpack Compose
Solution 1:
First thing you need to check when your banner is not showing is adUnitId
.
Also it can be not shown if the width passed to adSize
is too big. But in your case, your padding
applied to Column
stops it from showing full width.
I suggest you not using unknown constants like 40
. When you're sure that current view is top one, you can calculate width inside column like screenWidthDp - 2 * padding
The most "accurate" is to get width of column with onSizeChanged
.
I've made a sample to test AdView
with different widths, and none seems working good. But I suggest you check out on a real adUnitId
instead of the test one, maybe there situation is better.
val deviceCurrentWidth = LocalConfiguration.current.screenWidthDp
val padding = 16var i by remember { mutableStateOf(0) }
var containerWidth by remember { mutableStateOf<Int?>(null) }
Column(
horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier
.padding(padding.dp)
.fillMaxWidth()
.onSizeChanged {
containerWidth = it.width
}
) {
val items =
listOf(
"deviceCurrentWidth - 40" to deviceCurrentWidth - 40,
"deviceCurrentWidth - padding * 2" to deviceCurrentWidth - padding * 2,
"AdSize.FULL_WIDTH" to AdSize.FULL_WIDTH,
"onSizeChanged" to with(LocalDensity.current) {
containerWidth?.let { containerWidth ->
(containerWidth / density).roundToInt()
}
}
)
items.forEach {
val (title, width) = it
if (width == null) {
return@forEach
}
Text(title)
AndroidView(
factory = { context ->
AdView(context).apply {
adSize = AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(
context,
width
)
adUnitId = "ca-app-pub-3940256099942544/6300978111"
loadAd(AdRequest.Builder().build())
}
},
update = { adView ->
adView.loadAd(AdRequest.Builder().build())
i // needed to update view on i change
},
)
}
LaunchedEffect(Unit) {
while (true) {
delay(1000)
i++
}
}
}
Result:
p.s. Also a little tip: use a modifier as the last argument: in this case you do not need to use a comma, so it becomes much easier to add and delete lines
Column(
horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier
.fillMaxWidth()
)
Post a Comment for "Admob Adaptive Banner Is Not Showing In Jetpack Compose"