Flutter广告集成插件cs_ironsource_ad的使用

cs_ironsource_ad

使用 ironSource SDK-7.2.5

开始使用

此项目是一个用于 Flutter 的插件包起点,该插件包包含适用于 Android 和/或 iOS 的平台特定实现代码。

对于 Flutter 入门帮助,您可以查看我们的 在线文档,其中提供了教程、示例、移动开发指南和完整的 API 参考。

完整示例代码

以下是一个完整的示例代码,展示如何在 Flutter 应用中集成 cs_ironsource_ad 插件:

import 'package:cs_ironsource_ad/ironsource.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';

import 'providers/banner_providers.dart';
import 'widgets/banner_widget.dart';
import 'widgets/button_ads.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MultiProvider(
      providers: [
        ChangeNotifierProvider(create: (_) => BannerProvider()),
      ],
      child: MaterialApp(
        home: Scaffold(
          appBar: AppBar(
            centerTitle: true,
            title: const Text('Flutter IronSource Demo'),
          ),
          body: Stack(
            children: <Widget>[
              Container(
                padding: const EdgeInsets.symmetric(vertical: 50.0),
                alignment: Alignment.center,
                child: Column(
                  crossAxisAlignment: CrossAxisAlignment.center,
                  children: const <Widget>[
                    ButtonAdsWidget(),
                    BannerWidget(),
                  ],
                ),
              ),
              // Banner ad
              Consumer<BannerProvider>(builder: (context, bannerProv, child) {
                return bannerProv.isBannerShow
                    ? Align(
                        alignment: Alignment.bottomCenter,
                        child: IronSourceBannerAd(
                          keepAlive: true,
                          listener: BannerAdListener(),
                          size: BannerSize.BANNER,
                          // size: BannerSize.LARGE,
                          // size: BannerSize.LEADERBOARD,
                          // size: BannerSize.RECTANGLE,
                          // size: BannerSize.SMART,
                          /* size: BannerSize(
                          type: BannerSizeType.BANNER,
                          width: 400,
                          height: 50,
                        ), */
                          // backgroundColor: Colors.amber,
                        ),
                      )
                    : const SizedBox();
              }),
            ],
          ),
        ),
      ),
    );
  }
}

详细说明

  1. 导入必要的库

    import 'package:cs_ironsource_ad/ironsource.dart';
    import 'package:flutter/material.dart';
    import 'package:provider/provider.dart';
    
  2. 定义主应用类

    void main() {
      runApp(const MyApp());
    }
    
    class MyApp extends StatelessWidget {
      const MyApp({Key? key}) : super(key: key);
    
  3. 构建应用布局

      @override
      Widget build(BuildContext context) {
        return MultiProvider(
          providers: [
            ChangeNotifierProvider(create: (_) => BannerProvider()),
          ],
          child: MaterialApp(
            home: Scaffold(
              appBar: AppBar(
                centerTitle: true,
                title: const Text('Flutter IronSource Demo'),
              ),
              body: Stack(
                children: <Widget>[
                  Container(
                    padding: const EdgeInsets.symmetric(vertical: 50.0),
                    alignment: Alignment.center,
                    child: Column(
                      crossAxisAlignment: CrossAxisAlignment.center,
                      children: const <Widget>[
                        ButtonAdsWidget(),
                        BannerWidget(),
                      ],
                    ),
                  ),
                  // Banner ad
                  Consumer<BannerProvider>(builder: (context, bannerProv, child) {
                    return bannerProv.isBannerShow
                        ? Align(
                            alignment: Alignment.bottomCenter,
                            child: IronSourceBannerAd(
                              keepAlive: true,
                              listener: BannerAdListener(),
                              size: BannerSize.BANNER,
                              // size: BannerSize.LARGE,
                              // size: BannerSize.LEADERBOARD,
                              // size: BannerSize.RECTANGLE,
                              // size: BannerSize.SMART,
                              /* size: BannerSize(
                              type: BannerSizeType.BANNER,
                              width: 400,
                              height: 50,
                            ), */
                              // backgroundColor: Colors.amber,
                            ),
                          )
                        : const SizedBox();
                  }),
                ],
              ),
            ),
          ),
        );
      }
    }
    

更多关于Flutter广告集成插件cs_ironsource_ad的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter广告集成插件cs_ironsource_ad的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


cs_ironsource_ad 是一个 Flutter 插件,用于在 Flutter 应用中集成 IronSource 广告平台。IronSource 是一个流行的广告平台,支持多种广告格式,包括横幅广告、插页广告、激励视频广告等。

以下是如何在 Flutter 项目中使用 cs_ironsource_ad 插件的步骤:

1. 添加依赖

首先,在 pubspec.yaml 文件中添加 cs_ironsource_ad 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  cs_ironsource_ad: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 以获取依赖项。

2. 初始化 IronSource

main.dart 文件中初始化 IronSource SDK。通常,你需要在应用的启动时进行初始化。

import 'package:flutter/material.dart';
import 'package:cs_ironsource_ad/cs_ironsource_ad.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化 IronSource
  await CsIronsourceAd.init(
    appKey: 'YOUR_IRONSOURCE_APP_KEY',
  );

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: HomeScreen(),
    );
  }
}

3. 显示广告

你可以在应用的任何地方使用 cs_ironsource_ad 插件来显示广告。以下是一些常见的广告类型的使用示例:

3.1 横幅广告

import 'package:flutter/material.dart';
import 'package:cs_ironsource_ad/cs_ironsource_ad.dart';

class HomeScreen extends StatefulWidget {
  @override
  _HomeScreenState createState() => _HomeScreenState();
}

class _HomeScreenState extends State<HomeScreen> {
  @override
  void initState() {
    super.initState();
    _loadBannerAd();
  }

  Future<void> _loadBannerAd() async {
    await CsIronsourceAd.loadBannerAd();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('IronSource Banner Ad'),
      ),
      body: Center(
        child: Text('Banner Ad is being loaded...'),
      ),
    );
  }
}

3.2 插页广告

import 'package:flutter/material.dart';
import 'package:cs_ironsource_ad/cs_ironsource_ad.dart';

class HomeScreen extends StatefulWidget {
  @override
  _HomeScreenState createState() => _HomeScreenState();
}

class _HomeScreenState extends State<HomeScreen> {
  @override
  void initState() {
    super.initState();
    _loadInterstitialAd();
  }

  Future<void> _loadInterstitialAd() async {
    await CsIronsourceAd.loadInterstitialAd();
  }

  Future<void> _showInterstitialAd() async {
    await CsIronsourceAd.showInterstitialAd();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('IronSource Interstitial Ad'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: _showInterstitialAd,
          child: Text('Show Interstitial Ad'),
        ),
      ),
    );
  }
}

3.3 激励视频广告

import 'package:flutter/material.dart';
import 'package:cs_ironsource_ad/cs_ironsource_ad.dart';

class HomeScreen extends StatefulWidget {
  @override
  _HomeScreenState createState() => _HomeScreenState();
}

class _HomeScreenState extends State<HomeScreen> {
  @override
  void initState() {
    super.initState();
    _loadRewardedVideoAd();
  }

  Future<void> _loadRewardedVideoAd() async {
    await CsIronsourceAd.loadRewardedVideoAd();
  }

  Future<void> _showRewardedVideoAd() async {
    await CsIronsourceAd.showRewardedVideoAd();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('IronSource Rewarded Video Ad'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: _showRewardedVideoAd,
          child: Text('Show Rewarded Video Ad'),
        ),
      ),
    );
  }
}

4. 处理广告事件

你可以监听广告事件,例如广告加载成功、广告关闭、用户获得奖励等。以下是一个处理激励视频广告事件的示例:

CsIronsourceAd.setRewardedVideoListener(
  onRewardedVideoAdOpened: () {
    print('Rewarded Video Ad Opened');
  },
  onRewardedVideoAdClosed: () {
    print('Rewarded Video Ad Closed');
  },
  onRewardedVideoAdRewarded: (String placementName) {
    print('User rewarded with $placementName');
  },
  onRewardedVideoAdShowFailed: (String error) {
    print('Rewarded Video Ad Show Failed: $error');
  },
);

5. 其他配置

你还可以根据需要配置其他 IronSource 选项,例如设置用户 ID、启用测试模式等。

await CsIronsourceAd.setUserId('YOUR_USER_ID');
await CsIronsourceAd.setConsent(true);
await CsIronsourceAd.setMetaData('key', 'value');
回到顶部