「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证书管理和打包流程,提高开发效率。广告集成后,建议进行充分测试,确保在不同设备和网络环境下广告能够正常加载和显示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值