Flutter - Monetarisierungs-SDK-Dokumentation

⌘K
  1. Flutter - App mit SD monetarisieren...
  2. Benutzerhandbuch
  3. Anzeigenformate
  4. Infinite Scroll

Infinite Scroll

Ads positioned within scrollable content, dynamically displaying Banner oder 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

  • itemIndex the item position in the ListView

  • infiniteScrollId der R89SDK generated scroll Id, which is shared between the child items of the same ListView.

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.

Lebenszyklusereignisse

To receive the lifecycle events for a R89InfiniteScrollAd, provide BannerEventListener zu R89InfiniteScrollAd über LebenszyklusRückrufe Parameter. Einzelheiten zu BannerEventListener kann in der Referenz.

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 zu R89SDK.adFactory.createInfiniteScroll über LebenszyklusRückrufe Parameter. Einzelheiten zu InfiniteScrollEventListener kann in der Referenz.

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),
            )
          ],
        ),
      );
}

Wie können wir helfen?