Ads positioned within scrollable content, dynamically displaying Faixa ou OutStream formats based on the item’s position within the scroll view.
Show the Ad.
To display an ad in the ListViewwidget, or in any other flutter’s scrollable widget with index use R89InfiniteScrollAd widget, by adding it to the scroll item
Widget _buildItem(context, index) => Card(
child: Column(
children: [
Padding(
padding: const EdgeInsets.all(8.0),
child: Text("Item index $index"),
),
Center(
child: R89InfiniteScrollAd(
itemIndex: index, infiniteScrollId: infiniteScrollId),
)
],
),
);
R89InfiniteScrollAd has two required parameters
-
itemIndexthe item position in theListView -
infiniteScrollIdoR89SDKgenerated scroll Id, which is shared between the child items of the sameListView.
Here is how to generate infiniteScrollId
final int infiniteScrollId = R89SDK.adFactory.createInfiniteScroll(
configurationId: ConfigConstants.infiniteScrollTestR89ConfigId);
That all, find the full example at the bottom of this page.
Eventos do Ciclo de Vida
To receive the lifecycle events for a R89InfiniteScrollAd, provide BannerEventListener para R89InfiniteScrollAd via callbacksLifecycle parâmetro. Detalhes sobre BannerEventListener pode ser encontrado no Referência.
R89InfiniteScrollAd(
itemIndex: index,
infiniteScrollId: infiniteScrollId,
lifecycleCallbacks: BannerEventListener.callbacks(
onLoadedCallback: () {},
onImpressionCallback: () {},
onLayoutChangeCallback: (width, height) {},
onClickCallback: () {},
onOpenCallback: () {},
onCloseCallback: () {},
onFailedToLoadCallback: (error) {},
))
To receive the lifecycle events for overall scroll, provide InfiniteScrollEventListener para R89SDK.adFactory.createInfiniteScroll via callbacksLifecycle parâmetro. Detalhes sobre InfiniteScrollEventListener pode ser encontrado no Referência.
final int infiniteScrollId = R89SDK.adFactory.createInfiniteScroll(
configurationId: ConfigConstants.infiniteScrollTestR89ConfigId,
lifecycleCallbacks: InfiniteScrollEventListener.callbacks(
onRollCallback: (itemIdInData) {},
onRollFailedCallback: (itemIdInData) {},
onAdItemCreatedCallback: (adapterId, probability) {},
onAdItemFailedToCreateCallback: (message) {},
onAdItemLoadedCallback: (itemIdInData) {},
onAdItemFailedToLoadCallback: (itemIdInData, message) {},
onAdItemImpressionCallback: (itemIdInData) {},
onAdItemClickCallback: (itemIdInData) {},
onAdItemOpenCallback: (itemIdInData) {},
onAdItemCloseCallback: (itemIdInData) {},
));
Full Example.
import 'package:flutter/material.dart';
import 'package:playground/config_constants.dart';
import 'package:refinery89_monetize_app/r89_sdk.dart';
class ScrollPage extends StatefulWidget {
const ScrollPage({super.key});
@override
State createState() => _ScrollPageState();
}
class _ScrollPageState extends State {
final int infiniteScrollId = R89SDK.adFactory.createInfiniteScroll(
configurationId: ConfigConstants.infiniteScrollTestR89ConfigId);
@override
Widget build(BuildContext context) => ListView.builder(
itemCount: 500,
itemBuilder: (context, index) => _buildItem(context, index),
);
Widget _buildItem(context, index) => Card(
child: Column(
children: [
Padding(
padding: const EdgeInsets.all(8.0),
child: Text("Item index $index"),
),
Center(
child: R89InfiniteScrollAd(
itemIndex: index, infiniteScrollId: infiniteScrollId),
)
],
),
);
}