Flutter广告集成插件gtads_bqt的使用

Flutter广告集成插件gtads_bqt的使用

GTAds百度百青藤广告支持插件

横幅广告暂不可用。

GTAds插件版本 喜欢的插件 插件评分

Flutter交流群1 Flutter交流群2 Flutter反馈群

相关插件

  • baiduad 百青藤广告本体,内部已集成无需额外引入,配置相关查看插件说明。
  • GTAds 聚合广告插件基础库,必须引入。

使用

pubspec.yaml
dependencies:
  // 广告基础库 必须引入
  gtads: ^1.5.0
  // 百青藤广告支持
  gtads_bqt: ^1.5.x
引入
import 'package:gtads_bqt/gtads_bqt.dart';
使用

仅需通过以下方法插入广告至聚合插件,无需关注具体广告的调用。

// 参数依次为 别名、andorid app Id、ios app Id
GTAds.addProvider(GTAdsBqtProvider("bqt", "b423d90d", "a6b7fed6"));

广告位使用参考GTAds

完整示例Demo

以下是完整的示例代码,展示了如何在Flutter应用中集成并使用GTAds插件。

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

import 'package:flutter/services.dart';
import 'package:gtads/gtads.dart';
import 'package:gtads_bqt/gtads_bqt.dart';

import 'banner_page.dart';
import 'native_page.dart';
import 'splash_page.dart';

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Index(),
    );
  }
}

class Index extends StatefulWidget {
  [@override](/user/override)
  _IndexState createState() => _IndexState();
}

class _IndexState extends State<Index> {
  List<Map<String, bool>> initAd = [];

  [@override](/user/override)
  void initState() {
    super.initState();
    init();
  }

  Future<void> init() async {
    GTAds.addProvider(GTAdsBqtProvider("bqt", "b423d90d", "a6b7fed6"));
    initAd = await GTAds.init(isDebug: true);
    setState(() {});
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('GTAds百度百青藤广告支持插件'),
        ),
        body: Center(
          child: SingleChildScrollView(
            child: Column(
              children: [
                Text("初始化结果$initAd"),
                MaterialButton(
                  color: Colors.blue,
                  textColor: Colors.white,
                  child: const Text('横幅广告'),
                  onPressed: () async {
                    Navigator.push(
                      context,
                      MaterialPageRoute(
                        builder: (context) => const BannerPage(),
                      ),
                    );
                  },
                ),
                MaterialButton(
                  color: Colors.blue,
                  textColor: Colors.white,
                  child: const Text('激励广告'),
                  onPressed: () async {
                    var b = await GTAds.rewardAd(
                      codes: [
                        GTAdsCode(
                            alias: "bqt",
                            probability: 5,
                            androidId: "7792010",
                            iosId: "7800949")
                      ],
                      // 奖励名称
                      rewardName: "100金币",
                      // 奖励数量
                      rewardAmount: 100,
                      // 用户id
                      userId: "user100",
                      // 扩展参数
                      customData: "123",
                      timeout: 6,
                      callBack: GTAdsCallBack(onShow: (code) {
                        print("激励广告显示 ${code.toJson()}");
                      }, onFail: (code, message) {
                        print("激励广告失败 ${code?.toJson()} $message");
                      }, onClick: (code) {
                        print("激励广告点击 ${code.toJson()}");
                      }, onClose: (code) {
                        print("激励广告关闭 ${code.toJson()}");
                      }, onVerify:
                          (code, verify, transId, rewardName, rewardAmount) {
                        print(
                            "激励广告奖励 ${code.toJson()} $verify $transId $rewardName $rewardAmount");
                      }, onExpand: (code, param) {
                        print("激励广告自定义参数 ${code.toJson()} $param");
                      }),
                    );
                    if (b) {
                      print("激励广告开始请求");
                    } else {
                      print("激励广告开始请求失败");
                    }
                  },
                ),
                MaterialButton(
                  color: Colors.blue,
                  textColor: Colors.white,
                  child: const Text('插屏广告'),
                  onPressed: () async {
                    var b = await GTAds.insertAd(
                        codes: [
                          GTAdsCode(
                              alias: "bqt",
                              probability: 5,
                              androidId: "8351686",
                              iosId: "7803486")
                        ],
                        isFull: false,
                        timeout: 6,
                        callBack: GTAdsCallBack(
                          onShow: (code) {
                            print("插屏广告显示 ${code.toJson()}");
                          },
                          onFail: (code, message) {
                            print("插屏广告失败 ${code?.toJson()} $message");
                          },
                          onClick: (code) {
                            print("插屏广告点击 ${code.toJson()}");
                          },
                          onClose: (code) {
                            print("插屏广告关闭 ${code.toJson()}");
                          },
                        ));
                    if (b) {
                      print("插屏广告开始请求");
                    }
                  },
                ),
                MaterialButton(
                  color: Colors.blue,
                  textColor: Colors.white,
                  child: const Text('开屏广告'),
                  onPressed: () async {
                    Navigator.push(
                      context,
                      MaterialPageRoute(
                        builder: (context) => const SplashPage(),
                      ),
                    );
                  },
                ),
                MaterialButton(
                  color: Colors.blue,
                  textColor: Colors.white,
                  child: const Text('信息流广告'),
                  onPressed: () async {
                    Navigator.push(
                      context,
                      MaterialPageRoute(
                        builder: (context) => const NativePage(),
                      ),
                    );
                  },
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}

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

1 回复

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


当然,下面是一个关于如何在Flutter项目中集成并使用gtads_bqt插件来显示广告的示例代码。这个示例假设你已经创建了一个Flutter项目,并且已经在pubspec.yaml文件中添加了gtads_bqt依赖。

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  gtads_bqt: ^最新版本号

确保替换^最新版本号为当前可用的最新版本。

2. 导入插件并初始化

在你的Flutter项目的main.dart文件或其他需要显示广告的Dart文件中,导入gtads_bqt插件并进行初始化。

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Flutter 广告集成示例'),
        ),
        body: MyHomePage(),
      ),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  late GtAdsBqt gtAdsBqt;

  @override
  void initState() {
    super.initState();
    // 初始化广告插件
    gtAdsBqt = GtAdsBqt(
      appId: '你的广告平台APP ID', // 替换为你的广告平台APP ID
      adUnitId: '你的广告单元ID',  // 替换为你的广告单元ID
      listener: (GtAdsBqtEvent event, Map<String, dynamic>? data) {
        // 处理广告事件,如加载成功、失败、点击等
        if (event == GtAdsBqtEvent.loaded) {
          print('广告加载成功');
        } else if (event == GtAdsBqtEvent.failedToLoad) {
          print('广告加载失败: ${data?['message'] ?? '未知原因'}');
        } else if (event == GtAdsBqtEvent.clicked) {
          print('广告被点击');
        } else if (event == GtAdsBqtEvent.closed) {
          print('广告被关闭');
        }
      },
    );

    // 请求加载广告
    loadAd();
  }

  void loadAd() {
    gtAdsBqt.loadAd();
  }

  @override
  Widget build(BuildContext context) {
    return Center(
      child: ElevatedButton(
        onPressed: () {
          // 显示广告
          gtAdsBqt.showAd();
        },
        child: Text('显示广告'),
      ),
    );
  }
}

3. 处理广告生命周期

在上面的代码中,我们创建了一个GtAdsBqt实例,并为其提供了一个监听器来处理广告的各种事件,如加载成功、失败、点击和关闭。你可以根据这些事件来更新你的UI或执行其他逻辑。

4. 权限和网络配置

请确保你的Android和iOS项目已经配置了必要的网络权限和广告平台的SDK配置。这通常包括在AndroidManifest.xml中添加网络权限,以及在iOS的Info.plist中添加必要的广告标识符。

注意事项

  • 确保你已经注册了广告平台的账号,并获取了有效的appIdadUnitId
  • 不同的广告平台可能有不同的配置要求和SDK版本,请参考gtads_bqt插件的官方文档和广告平台的官方文档进行配置。
  • 在实际项目中,你可能需要更复杂的错误处理和UI更新逻辑。

以上代码提供了一个基本的框架,你可以根据需要进行扩展和修改。

回到顶部