Flutter广告集成插件flutter_qq_ads的使用

Flutter广告集成插件flutter_qq_ads的使用

🚀 核心功能

  • ✅ 开屏广告
  • ✅ 插屏广告
  • ✅ 激励视频
  • ✅ Banner
  • ✅ 信息流

📃 接入文档

  • 极速接入、快速体验、持续更新
  • 变现方案 = 【GroMore】+【AdSpark】+【AdContent】

📌 广告系列插件(FlutterAds)

插件 描述
flutter_gromore_pro 帮你大幅提升广告收益,发挥出最大的用户价值
flutter_gromore_ads 字节跳动、穿山甲、GroMore 聚合 Flutter 广告开源版插件
flutter_pangle_ads 字节跳动、穿山甲 Flutter 广告插件
flutter_qq_ads 腾讯广告、广点通、优量汇 Flutter 广告插件
flutter_adspark 巨量广告/穿山甲的广告监测、增长分析、归因上报、事件管理 Flutter 版插件
flutter_adcontent 穿山甲内容输出 Flutter 版插件,支持短剧和小视频

📣 推荐使用 GroMore

  • 【Gromore Pro】可进行多家广告瀑布流竞价,让您拥有更高的广告收益,发挥最大的用户价值

Gromore Pro

完整示例 Demo

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

// 引入广告配置文件
import 'ads_config.dart';
import 'pages/home_page.dart';

void main() {
  // 绑定引擎
  WidgetsFlutterBinding.ensureInitialized();
  
  // 设置广告监听事件
  setAdEvent();
  
  // 初始化广告 SDK 并显示开屏广告
  init().then((value) {
    if (value) {
      FlutterQqAds.showSplashAd(
        AdsConfig.splashId, // 开屏广告ID
        logo: AdsConfig.logo, // Logo 图片路径
      );
    }
  });

  // 启动应用
  runApp(MyApp());
}

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

class _MyAppState extends State<MyApp> {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: HomePage(), // 主页面
    );
  }
}

/// 初始化广告 SDK
Future<bool> init() async {
  bool result = await FlutterQqAds.initAd(AdsConfig.appId); // 初始化广告SDK
  debugPrint("广告SDK 初始化${result ? '成功' : '失败'}");
  return result;
}

/// 设置广告监听
Future<void> setAdEvent() async {
  FlutterQqAds.onEventListener((event) {
    debugPrint('adId:${event.adId} action:${event.action}');
    
    // 错误事件处理
    if (event is AdErrorEvent) {
      debugPrint(' errCode:${event.errCode} errMsg:${event.errMsg}');
    } 
    // 激励事件处理
    else if (event is AdRewardEvent) {
      debugPrint(' transId:${event.transId} userId:${event.userId} customData:${event.customData}');
    }
  });
}

ads_config.dart 示例

class AdsConfig {
  static const String appId = "你的APP ID"; // 应用ID
  static const String splashId = "你的开屏广告ID"; // 开屏广告ID
  static const String logo = "assets/logo.png"; // Logo图片路径
}

home_page.dart 示例

import 'package:flutter/material.dart';

class HomePage extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("首页"),
      ),
      body: Center(
        child: Text("欢迎来到首页!"),
      ),
    );
  }
}

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

1 回复

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


当然,下面是一个关于如何在Flutter项目中集成并使用flutter_qq_ads插件的示例代码。请注意,你需要先确保你的Flutter开发环境已经正确配置,并且已经在pubspec.yaml文件中添加了flutter_qq_ads依赖。

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  flutter_qq_ads: ^最新版本号  # 请替换为最新的版本号

然后运行flutter pub get来安装依赖。

2. 配置Android和iOS项目

Android配置

android/app/src/main/AndroidManifest.xml中添加必要的权限和配置:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.yourapp">

    <!-- 添加必要的权限 -->
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

    <!-- QQ广告SDK所需的Activity配置 -->
    <application
        ...>
        <activity
            android:name="com.tencent.android.qqad.banner.QQBannerViewActivity"
            android:configChanges="orientation|screenSize|keyboardHidden"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" />
        <activity
            android:name="com.tencent.android.qqad.fullvideo.QQFullVideoActivity"
            android:configChanges="orientation|screenSize|keyboardHidden"
            android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" />
        <activity
            android:name="com.tencent.android.qqad.splash.QQSplashActivity"
            android:configChanges="orientation|screenSize|keyboardHidden"
            android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" />
        <activity
            android:name="com.tencent.android.qqad.interstitial.QQInterstitialActivity"
            android:configChanges="orientation|screenSize|keyboardHidden"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" />
        <activity
            android:name="com.tencent.android.qqad.rewardvideo.QQRewardVideoActivity"
            android:configChanges="orientation|screenSize|keyboardHidden"
            android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" />
    </application>
</manifest>

同时,在android/app/build.gradle中添加以下内容(替换为你的QQ广告SDK的app_id):

android {
    ...
    defaultConfig {
        ...
        manifestPlaceholders = [
                QQ_APP_ID: "你的QQ广告SDK的app_id"
        ]
    }
}

iOS配置

对于iOS项目,你需要在Info.plist中添加一些必要的配置,并确保你的项目已经配置了QQ广告的App ID。具体步骤可以参考QQ广告SDK的官方文档。

3. 初始化并使用广告

在你的Flutter项目中,你可以按照以下方式初始化并使用QQ广告:

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

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

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  void initState() {
    super.initState();
    // 初始化QQ广告SDK
    FlutterQqAds.init(appId: "你的QQ广告SDK的app_id");
    
    // 加载横幅广告示例
    loadBannerAd();
    
    // 加载插屏广告示例
    loadInterstitialAd();
  }

  void loadBannerAd() {
    FlutterQqAds.loadBannerAd(
      posId: "你的横幅广告位ID",
      success: (adView) {
        // 成功加载横幅广告,可以将其添加到widget树中
        setState(() {
          _bannerAdView = adView;
        });
      },
      fail: (code, msg) {
        print("加载横幅广告失败: $code, $msg");
      },
    );
  }

  void loadInterstitialAd() {
    FlutterQqAds.loadInterstitialAd(
      posId: "你的插屏广告位ID",
      success: (ad) {
        // 成功加载插屏广告,可以在合适的时候展示
        _interstitialAd = ad;
      },
      fail: (code, msg) {
        print("加载插屏广告失败: $code, $msg");
      },
    );
  }

  BannerAdView? _bannerAdView;
  InterstitialAd? _interstitialAd;

  void showInterstitialAd() {
    if (_interstitialAd != null) {
      _interstitialAd!.show(
        success: () {
          print("插屏广告展示成功");
          // 重新加载插屏广告以便下次使用
          loadInterstitialAd();
        },
        fail: (code, msg) {
          print("插屏广告展示失败: $code, $msg");
        },
        close: () {
          print("插屏广告关闭");
        },
      );
    }
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Flutter QQ Ads Demo'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              _bannerAdView ?? Container(), // 显示横幅广告
              SizedBox(height: 20),
              ElevatedButton(
                onPressed: showInterstitialAd,
                child: Text('展示插屏广告'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

注意事项

  1. 广告位ID:确保你使用的是QQ广告平台提供的正确的广告位ID。
  2. 测试环境:在开发测试阶段,可以使用QQ广告提供的测试广告位ID进行测试。
  3. 隐私政策:在实际应用中,确保你的应用有合适的隐私政策,并且用户同意接收广告。

以上是一个基本的集成示例,根据实际需求,你可能需要进一步调整和扩展代码。

回到顶部