Flutter广告集成插件cs_fyber_ad的使用

Flutter广告集成插件cs_fyber_ad的使用

介绍

cs_fyber_ad 是一个用于在 Flutter 应用中集成广告功能的插件。它支持多种广告类型,例如激励视频广告、插屏广告、横幅广告等。本文将详细介绍如何使用 cs_fyber_ad 插件,并提供完整的示例代码。


使用步骤

1. 添加依赖

首先,在 pubspec.yaml 文件中添加 cs_fyber_ad 依赖:

dependencies:
  cs_fyber_ad: ^版本号

然后运行以下命令以安装依赖:

flutter pub get

2. 初始化插件

在应用启动时初始化插件,并设置必要的参数。例如,设置应用 ID、用户 ID 和安全令牌。

import 'dart:developer';

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

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

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

  [@override](/user/override)
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  [@override](/user/override)
  void initState() {
    super.initState();

    // 设置回调函数
    CsFyberAd().setOfferWallAvailable(offerWallAvailable);
    CsFyberAd().setOfferWallNotAvailable(offerWallNotAvailable);
    CsFyberAd().setOfferWallRequestError(offerWallRequestError);

    // 开启调试日志
    CsFyberAd().setDebugLog(isDebug: true);

    // 初始化插件
    CsFyberAd().init(appId: "123456");
    CsFyberAd().setUserId(userId: "userId");
    CsFyberAd().setupOfferWall(securityToken: "token");

    // 请求广告
    CsFyberAd().requestOfferWall(placementId: "Default");
  }

  // 广告可用回调
  offerWallAvailable() {
    log("CSFyber callback: offerWallAvailable");
  }

  // 广告不可用回调
  offerWallNotAvailable(String formatMess) {
    log("CSFyber callback: offerWallNotAvailable = formatMess - " + formatMess);
  }

  // 请求广告失败回调
  offerWallRequestError(String errorMess) {
    log("CSFyber callback: offerWallRequestError = errorMess - " + errorMess);
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('CSFyber广告示例'),
        ),
        body: Center(
          child: TextButton(
            onPressed: () {
              // 显示激励视频广告
              CsFyberAd().showOfferWall();
            },
            child: const Text(
              "显示广告",
              style: TextStyle(color: Colors.red),
            ),
          ),
        ),
      ),
    );
  }
}

3. 配置广告类型

激励视频广告

激励视频广告通常用于奖励用户完成某些任务(如观看广告)。以下是配置激励视频广告的代码:

// 设置激励视频广告回调
CsFyberAd().setRewardedShowed(rewardedShowed);
CsFyberAd().setRewardedClicked(rewardedClicked);
CsFyberAd().setRewardedHided(rewardedHided);
CsFyberAd().setRewardedShowFailure(rewardedShowFailure);
CsFyberAd().setRewardedAvailable(rewardedAvailable);
CsFyberAd().setRewardedUnavailable(rewardedUnavailable);
CsFyberAd().setRewardedCompletion(rewardedCompletion);
CsFyberAd().setRewardedRequestStart(rewardedRequestStart);

// 定义回调函数
rewardedShowed(String placementId, String impressionDataStr) {
  log("CSFyber callback: rewardedShowed = placementId - " + placementId + ", impressionDataStr - " + impressionDataStr);
}

rewardedClicked(String placementId) {
  log("CSFyber callback: rewardedClicked = placementId - " + placementId);
}

rewardedHided(String placementId) {
  log("CSFyber callback: rewardedHided = placementId - " + placementId);
}

rewardedShowFailure(String placementId, String impressionDataStr) {
  log("CSFyber callback: rewardedShowFailure = placementId - " + placementId + ", impressionDataStr - " + impressionDataStr);
}

rewardedAvailable(String placementId) {
  log("CSFyber callback: rewardedAvailable = placementId - " + placementId);
}

rewardedUnavailable(String placementId) {
  log("CSFyber callback: rewardedUnavailable = placementId - " + placementId);
}

rewardedCompletion(String placementId, bool success) {
  log("CSFyber callback: rewardedCompletion = placementId - " + placementId + ", success - " + success.toString());
}

rewardedRequestStart(String placementId) {
  log("CSFyber callback: rewardedRequestStart = placementId - " + placementId);
}

插屏广告

插屏广告通常在应用的关键节点展示。以下是配置插屏广告的代码:

// 设置插屏广告回调
CsFyberAd().setInterstitialShowed(interstitialShowed);
CsFyberAd().setInterstitialClicked(interstitialClicked);
CsFyberAd().setInterstitialHided(interstitialHided);
CsFyberAd().setInterstitialShowFailure(interstitialShowFailure);
CsFyberAd().setInterstitialAvailable(interstitialAvailable);
CsFyberAd().setInterstitialUnavailable(interstitialUnavailable);
CsFyberAd().setInterstitialRequestStart(interstitialRequestStart);

// 定义回调函数
interstitialShowed(String placementId, String impressionDataStr) {
  log("CSFyber callback: interstitialShowed = placementId - " + placementId + ", impressionDataStr - " + impressionDataStr);
}

interstitialClicked(String placementId) {
  log("CSFyber callback: interstitialClicked = placementId - " + placementId);
}

interstitialHided(String placementId) {
  log("CSFyber callback: interstitialHided = placementId - " + placementId);
}

interstitialShowFailure(String placementId, String impressionDataStr) {
  log("CSFyber callback: interstitialShowFailure = placementId - " + placementId + ", impressionDataStr - " + impressionDataStr);
}

interstitialAvailable(String placementId) {
  log("CSFyber callback: interstitialAvailable = placementId - " + placementId);
}

interstitialUnavailable(String placementId) {
  log("CSFyber callback: interstitialUnavailable = placementId - " + placementId);
}

interstitialRequestStart(String placementId) {
  log("CSFyber callback: interstitialRequestStart = placementId - " + placementId);
}

横幅广告

横幅广告通常固定在屏幕底部或顶部。以下是配置横幅广告的代码:

// 设置横幅广告回调
CsFyberAd().setBannerLoaded(bannerLoaded);
CsFyberAd().setBannerShowed(bannerShowed);
CsFyberAd().setBannerClicked(bannerClicked);
CsFyberAd().setBannerRequestStart(bannerRequestStart);
CsFyberAd().setBannerError(bannerError);

// 定义回调函数
bannerLoaded(String placementId) {
  log("CSFyber callback: bannerLoaded = placementId - " + placementId);
}

bannerShowed(String placementId, String impressionDataStr) {
  log("CSFyber callback: bannerShowed = placementId - " + placementId + ", impressionDataStr - " + impressionDataStr);
}

bannerClicked(String placementId) {
  log("CSFyber callback: bannerClicked = placementId - " + placementId);
}

bannerRequestStart(String placementId) {
  log("CSFyber callback: bannerRequestStart = placementId - " + placementId);
}

bannerError(String placementId, String message) {
  log("CSFyber callback: bannerError = placementId - " + placementId + ", message - " + message);
}

4. 调用广告

在需要展示广告的地方调用对应的广告方法。例如,展示激励视频广告:

TextButton(
  onPressed: () {
    CsFyberAd().showOfferWall();
  },
  child: const Text(
    "显示激励视频广告",
    style: TextStyle(color: Colors.red),
  ),
)

完整示例代码

以下是完整的示例代码,展示了如何集成 cs_fyber_ad 插件并实现激励视频广告的功能:

import 'dart:log';

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

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

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

  [@override](/user/override)
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  [@override](/user/override)
  void initState() {
    super.initState();

    // 设置回调函数
    CsFyberAd().setOfferWallAvailable(offerWallAvailable);
    CsFyberAd().setOfferWallNotAvailable(offerWallNotAvailable);
    CsFyberAd().setOfferWallRequestError(offerWallRequestError);

    // 开启调试日志
    CsFyberAd().setDebugLog(isDebug: true);

    // 初始化插件
    CsFyberAd().init(appId: "123456");
    CsFyberAd().setUserId(userId: "userId");
    CsFyberAd().setupOfferWall(securityToken: "token");

    // 请求广告
    CsFyberAd().requestOfferWall(placementId: "Default");
  }

  // 广告可用回调
  offerWallAvailable() {
    log("CSFyber callback: offerWallAvailable");
  }

  // 广告不可用回调
  offerWallNotAvailable(String formatMess) {
    log("CSFyber callback: offerWallNotAvailable = formatMess - " + formatMess);
  }

  // 请求广告失败回调
  offerWallRequestError(String errorMess) {
    log("CSFyber callback: offerWallRequestError = errorMess - " + errorMess);
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('CSFyber广告示例'),
        ),
        body: Center(
          child: TextButton(
            onPressed: () {
              // 显示激励视频广告
              CsFyberAd().showOfferWall();
            },
            child: const Text(
              "显示广告",
              style: TextStyle(color: Colors.red),
            ),
          ),
        ),
      ),
    );
  }
}

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

1 回复

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


cs_fyber_ad 是一个用于在 Flutter 应用中集成 Fyber 广告的插件。Fyber 是一个移动广告平台,提供多种广告形式,如插页式广告、横幅广告和视频广告等。通过 cs_fyber_ad 插件,你可以轻松地在 Flutter 应用中集成这些广告。

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 cs_fyber_ad 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  cs_fyber_ad: ^0.0.1  # 请确认最新版本

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

2. 初始化插件

在你的 Flutter 应用中,首先需要初始化 cs_fyber_ad 插件。通常在 main.dart 文件中进行初始化:

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

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await CsFyberAd.initialize(
    appId: 'your_app_id',
    securityToken: 'your_security_token',
    userId: 'your_user_id',
  );
  runApp(MyApp());
}

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

在上面的代码中,替换 your_app_idyour_security_tokenyour_user_id 为你在 Fyber 平台上的实际值。

3. 加载和显示广告

你可以使用 CsFyberAd 提供的方法来加载和显示广告。以下是一些常用方法:

插页式广告

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

class HomeScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Fyber Ad Example'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () async {
            await CsFyberAd.loadInterstitialAd();
            await CsFyberAd.showInterstitialAd();
          },
          child: Text('Show Interstitial Ad'),
        ),
      ),
    );
  }
}

横幅广告

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

class HomeScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Fyber Ad Example'),
      ),
      body: Column(
        children: [
          Expanded(
            child: Center(
              child: ElevatedButton(
                onPressed: () async {
                  await CsFyberAd.loadBannerAd();
                  await CsFyberAd.showBannerAd();
                },
                child: Text('Show Banner Ad'),
              ),
            ),
          ),
          Container(
            height: 50,
            child: CsFyberAd.getBannerAdWidget(),
          ),
        ],
      ),
    );
  }
}

视频广告

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

class HomeScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Fyber Ad Example'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () async {
            await CsFyberAd.loadRewardedVideoAd();
            await CsFyberAd.showRewardedVideoAd();
          },
          child: Text('Show Rewarded Video Ad'),
        ),
      ),
    );
  }
}

4. 处理广告事件

你可以监听广告的加载、显示、关闭等事件,以便在广告展示过程中执行一些操作。例如:

CsFyberAd.setAdListener(
  onAdLoaded: () {
    print('Ad loaded');
  },
  onAdFailedToLoad: (error) {
    print('Ad failed to load: $error');
  },
  onAdClosed: () {
    print('Ad closed');
  },
  onAdClicked: () {
    print('Ad clicked');
  },
);
回到顶部