Flutter广告中介插件gma_mediation_dtexchange的使用

发布于 1周前 作者 yuanlaile 来自 Flutter

Flutter广告中介插件gma_mediation_dtexchange的使用

简介

gma_mediation_dtexchange 是一个用于 Flutter 的插件,它允许通过 Google Mobile Ads SDK 中介集成 DT Exchange 广告网络。这个插件使用 Pigeon Flutter 插件生成 Dart 层与各平台代码之间的桥梁类。要添加或修改第三方 SDK,可以参考 Pigeon 的文档。

文档

有关如何与 google_mobile_ads 插件一起使用的详细说明,请参阅 DT Exchange 的开发者指南

下载

您可以在 pub.dev 上找到该插件的最新版本。

提出改进建议

如果您发现 bug 或有功能请求,或者想提出其他改进建议,请使用 GitHub 的问题跟踪器

其他资源

  • AdMob 帮助中心
  • Ad Manager 帮助中心

许可证

本项目采用 Apache 2.0 License 许可证。


完整示例 Demo

以下是一个完整的示例,展示了如何在 Flutter 应用中使用 gma_mediation_dtexchange 插件来展示 DT Exchange 的中介广告。

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  google_mobile_ads: ^2.0.0
  gma_mediation_dtexchange: ^1.0.0

2. 初始化 Google Mobile Ads

在应用启动时初始化 Google Mobile Ads。您可以在 main.dart 文件中进行如下操作:

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

void main() {
  // 初始化 Google Mobile Ads
  WidgetsFlutterBinding.ensureInitialized();
  MobileAds.instance.initialize();

  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  BannerAd? _bannerAd;

  @override
  void initState() {
    super.initState();
    // 创建并加载横幅广告
    _createBannerAd();
  }

  void _createBannerAd() {
    _bannerAd = BannerAd(
      adUnitId: 'YOUR_BANNER_AD_UNIT_ID', // 替换为您的广告单元 ID
      size: AdSize.banner,
      request: AdRequest(),
      listener: BannerAdListener(
        onAdLoaded: (ad) {
          print('Banner ad loaded.');
        },
        onAdFailedToLoad: (ad, error) {
          print('Banner ad failed to load: $error');
          ad.dispose();
        },
      ),
    )..load();
  }

  @override
  void dispose() {
    // 释放广告资源
    _bannerAd?.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Plugin example app'),
        ),
        body: Column(
          children: [
            Expanded(
              child: Center(
                child: Text('Test app with DT Exchange Mediation'),
              ),
            ),
            if (_bannerAd != null)
              Align(
                alignment: Alignment.bottomCenter,
                child: Container(
                  width: _bannerAd!.size.width.toDouble(),
                  height: _bannerAd!.size.height.toDouble(),
                  child: AdWidget(ad: _bannerAd!),
                ),
              ),
          ],
        ),
      ),
    );
  }
}

3. 配置中介

为了使 DT Exchange 成为中介的一部分,您需要在 AdMob 控制台中配置中介。具体步骤如下:

  1. 登录到 AdMob 控制台。
  2. 导航到“中介”部分。
  3. 选择或创建一个新的中介组。
  4. 添加 DT Exchange 作为中介合作伙伴,并按照提示完成配置。
  5. 将生成的广告单元 ID 用于上面的 adUnitId

4. 运行应用

确保您已经正确配置了广告单元 ID 和中介设置后,运行您的 Flutter 应用。您应该能够看到来自 DT Exchange 的中介广告显示在应用中。

5. 测试广告

为了确保广告正常工作,建议使用测试广告单元 ID。您可以从 AdMob 文档中获取测试广告单元 ID,或者在 AdRequest 中启用测试设备:

AdRequest(
  keywords: <String>['foo', 'bar'],
  contentUrl: 'http://foo.com/bar.html',
  nonPersonalizedAds: true,
  testDevices: <String>[], // 添加测试设备 ID
)

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

1 回复

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


当然,以下是如何在Flutter项目中集成和使用gma_mediation_dtexchange广告中介插件的示例代码。这个插件通常用于集成和管理多个广告网络,以实现广告中介功能。

1. 添加依赖

首先,在你的Flutter项目的pubspec.yaml文件中添加gma_mediation_dtexchange依赖。

dependencies:
  flutter:
    sdk: flutter
  gma_mediation_dtexchange: ^x.y.z  # 请使用最新版本号

2. 导入插件

在你的Dart文件中(通常是main.dart或某个广告相关的页面),导入插件。

import 'package:gma_mediation_dtexchange/gma_mediation_dtexchange.dart';

3. 初始化插件

在应用的启动逻辑中(例如main.dartmain函数中),初始化广告中介插件。

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化 GMA Mediation DT Exchange 插件
  GmaMediationDtExchange.initialize(
    appId: "YOUR_APP_ID",  // 替换为你的应用ID
    adUnitId: "YOUR_AD_UNIT_ID",  // 替换为你的广告单元ID
    // 其他初始化参数(如果有)
  );

  runApp(MyApp());
}

4. 展示广告

接下来,你可以在你的应用中展示广告。以下是一个简单的展示横幅广告的示例。

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

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  
  GmaMediationDtExchange.initialize(
    appId: "YOUR_APP_ID",
    adUnitId: "YOUR_AD_UNIT_ID",
  );

  runApp(MyApp());
}

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

class AdScreen extends StatefulWidget {
  @override
  _AdScreenState createState() => _AdScreenState();
}

class _AdScreenState extends State<AdScreen> {
  BannerAd? _bannerAd;

  @override
  void initState() {
    super.initState();
    createBannerAd();
  }

  void createBannerAd() {
    _bannerAd = BannerAd.createAd(
      adUnitId: "YOUR_BANNER_AD_UNIT_ID",  // 替换为你的横幅广告单元ID
      adSize: AdSize.banner,
      request: AdRequest(
        // 可以在这里添加定向参数等
      ),
    )..load();

    _bannerAd?.show(
      anchorOffset: 0.0,
      anchorType: AnchorType.bottom,
    );

    _bannerAd?.adListener = AdListener(
      onAdLoaded: () {
        print("Banner ad loaded.");
      },
      onAdFailedToLoad: (int errorCode, String errorMessage) {
        print("Banner ad failed to load: $errorMessage");
      },
      onAdOpened: () {
        print("Banner ad opened.");
      },
      onAdClosed: () {
        print("Banner ad closed.");
      },
      onAdLeftApplication: () {
        print("User left the app from the banner ad.");
      },
    );
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Ad Mediation Example"),
      ),
      body: Center(
        child: Text("Banner ad will be shown at the bottom."),
      ),
    );
  }

  @override
  void dispose() {
    _bannerAd?.dispose();
    super.dispose();
  }
}

注意事项

  1. 应用ID和广告单元ID:确保你使用的是从广告平台获取的正确ID。
  2. 广告监听器:添加适当的广告监听器来处理广告加载、显示、关闭等事件。
  3. 错误处理:在生产环境中,务必处理广告加载失败的情况,并为用户提供友好的反馈。

结论

以上代码展示了如何在Flutter项目中集成和使用gma_mediation_dtexchange广告中介插件来展示横幅广告。根据你的需求,你还可以集成其他类型的广告(如插屏广告、视频广告等),并添加更多的配置和监听器。确保查阅官方文档以获取最新的集成指南和最佳实践。

回到顶部