当前位置: 首页 > news >正文

「Flutter」Flutter集成Google Ads广告

Flutter集成Google Ads广告指南

本文档默认已经申请了Google Ads的账号

系统环境

  • Mac系统:macOS Big Sur 11.6.1
  • Flutter版本:Flutter (Channel stable, 2.5.3, on macOS 11.6.1 20G224 darwin-x64, locale zh-Hans-CN)

注意:Google Ads的广告集成需要科学上网环境

Google Ads申请广告ID

  1. 使用Google账号登录后开通Ads服务
  2. 进入Google Ads管理后台创建广告应用

申请广告应用

因为跨平台特性,Android和iOS无法共用一个应用。如果需要同时上架两个平台,需要分别创建两个应用。

输入应用名称即可完成创建。

申请应用下的广告单元

根据需要创建不同类型的广告单元:

  • 横幅广告
  • 插页广告
  • 激励广告
  • 原生广告

Flutter项目配置

使用官方插件:google_mobile_ads

  1. 在pubspec.yaml中添加依赖:
dependencies:
  google_mobile_ads: ^1.0.1
  1. 终端执行flutter pub get安装依赖

Android项目配置

  1. 修改android/app/build.gradle,将compileSdkVersion改为31
  2. 添加Ads服务依赖:
dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'com.google.android.gms:play-services-ads:20.5.0'
}
  1. 修改AndroidManifest.xml添加应用ID:
<manifest>
    <application>
        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
    </application>
</manifest>

iOS项目配置

  1. 使用Appuploader等iOS开发助手工具准备开发证书和描述文件
  2. 执行flutter build iosflutter build ios --no-codesign生成项目
  3. 打开ios/Runner.xcworkspace文件
  4. 编辑Info.plist文件,添加以下配置:
<key>GADApplicationIdentifier</key>
<string>ca-app-pub-XXXXXX~XXXXXXXX</string>
<key>SKAdNetworkItems</key>
<array>
    <!-- 此处省略多个SKAdNetworkIdentifier配置 -->
</array>
  1. 验证配置无误后保存

Flutter项目调用示例

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

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  MobileAds.instance.initialize();
  runApp(MyApp());
}

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

class _MyAppState extends State<MyApp> {
  InterstitialAd? _interstitialAd;
  
  
  void initState() {
    super.initState();
    _createInterstitialAd();
  }

  void _createInterstitialAd() {
    InterstitialAd.load(
      adUnitId: InterstitialAd.testAdUnitId,
      request: AdRequest(),
      adLoadCallback: InterstitialAdLoadCallback(
        onAdLoaded: (InterstitialAd ad) {
          _interstitialAd = ad;
        },
        onAdFailedToLoad: (LoadAdError error) {
          print('InterstitialAd failed to load: $error');
        },
      ));
  }

  void _showInterstitialAd() {
    if (_interstitialAd != null) {
      _interstitialAd!.show();
    }
  }

  
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          child: ElevatedButton(
            onPressed: _showInterstitialAd,
            child: Text('显示广告'),
          ),
        ),
      ),
    );
  }
}

总结

通过以上步骤,我们完成了Flutter项目中Google Ads的集成。在实际开发中,可以使用Appuploader等工具简化iOS证书管理和打包流程,提高开发效率。广告集成后,建议进行充分测试,确保在不同设备和网络环境下广告能够正常加载和显示。

相关文章:

  • WXJ196微机小电流接地选线装置使用简单方便无需维护
  • 路由策略/策略路由之route-policy
  • 水下塑料垃圾识别分割数据集labelme格式2703张6类别
  • Redis实现签到功能
  • SSM智能排课系统
  • SpringBoot 自定义输出控制台图标
  • ANP协议深度解析:智能体网络协议的演进与革新
  • 完整源码停车场管理系统,含新能源充电系统,实现了停车+充电一体化
  • Java学习手册:Java反射与注解
  • 企业级JDK升级思路分享(一)JDK11升级到JDK17
  • UE5蓝图设置界面尺寸大小
  • 【小工具】定时任务执行器
  • CUDA编程高阶优化:如何突破GPU内存带宽瓶颈的6种实战策略
  • 深入详解MYSQL的MVCC机制
  • 第一章 教育与教育学
  • 提权实战!
  • Python 基础语法汇总
  • 数据运营与数据分类
  • CPU(中央处理器)
  • 28.[MRCTF2020]Xor1(保姆教程)
  • 倒票“黄牛”屡禁不绝怎么破?业内:强化文旅市场票务公开制度
  • 哪条线路客流最大?哪个站点早高峰人最多?上海地铁一季度客流报告出炉
  • 学者三年实地调查被判AI代笔,论文AI率检测如何避免“误伤”
  • 美联储计划裁员约10%
  • 高新波任西安电子科技大学校长
  • 黑龙江省政府副秘书长许振宇,拟任正厅级领导