appodeal / Appodeal-Flutter-Plugin

Official Flutter Plugin that adds Appodeal SDK support to your Flutter application.
https://pub.dev/packages/stack_appodeal_flutter
Apache License 2.0
18 stars 3 forks source link

Banner Ads Disappear on Tab Switch in Android Using AppodealBanner #59

Closed takuya-ohmuro closed 4 months ago

takuya-ohmuro commented 6 months ago

Description: When displaying banner ads in a multi-tab setup on Android using AppodealBanner, the banners disappear upon switching tabs. This issue does not occur on iOS, where the banners remain visible as expected.

Steps to Reproduce:

Implement AppodealBanner in a Flutter application with multiple tabs. Run the app on an Android device. Switch between the tabs. Observe that the banner ads disappear when switching tabs.

Expected Behavior: The banner ads should remain visible when switching between tabs, similar to the behavior observed on iOS.

Actual Behavior: Banner ads disappear upon switching tabs on Android.

import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:ienon/foundation/constant/constants.dart';
import 'package:ienon/foundation/util/logger.dart';
import 'package:ienon/state/subscription.dart';
import 'package:stack_appodeal_flutter/stack_appodeal_flutter.dart';

class BannerAdWidget extends HookConsumerWidget {
  const BannerAdWidget({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context, WidgetRef ref) {
    useFuture(useMemoized(() {
      Appodeal.setBannerCallbacks(
          onBannerLoaded: (isPrecache) => logger.info('onBannerLoaded'),
          onBannerFailedToLoad: () => logger.info('onBannerFailedToLoad'),
          // other callbacks
      );
      return null;
    }));

    return ref.watch(subscriptionProvider).when(
          data: (data) => data == null && Constants.of().flavor == Flavor.prod
              ? Container(
                  alignment: Alignment.center,
                  child: const AppodealBanner(
                      adSize: AppodealBannerSize.BANNER, placement: "default"))
              : const SizedBox(),
          // other cases
        );
  }
}

Environment:

Flutter version: 3.16.4 Appodeal Flutter plugin version: 3.2.0

da2gl commented 5 months ago

@takuya-ohmuro Hello, thank you for bringing up this issue. We are aware of the behavior you mentioned in the tabs or viewpager logic. We have conducted research on it, and you can find more details here.

Currently, the recommended approach is to utilize a single banner view for all screens.