Flutter广告中介插件gma_mediation_unity的使用

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

Google Mobile Ads Mediation of Unity Ads for Flutter

本文将介绍如何在Flutter应用中使用gma_mediation_unity插件来实现Unity广告中介。该插件允许通过Google Mobile Ads SDK进行Unity广告网络的中介。

插件简介

gma_mediation_unity是用于与Google Mobile Ads插件一起使用的Mediation Unity Ads Flutter插件。它通过Google Mobile Ads SDK实现了Unity广告网络的中介功能。

该插件使用Pigeon Flutter插件生成连接Dart层和各平台代码的类。若要添加或修改第三方SDK,请遵循此指南中的说明操作。

文档

有关如何与google_mobile_ads插件一起使用的详细信息,请参阅Unity Ads开发者指南

下载

请访问pub.dev获取插件的最新版本。

提出改进建议

若有任何bug报告、功能请求或其他改进建议,请使用GitHub问题跟踪器提交。

其他资源

许可证

本项目遵循Apache 2.0许可证

示例Demo

以下是完整的示例代码,展示如何在Flutter应用中集成并初始化gma_mediation_unity插件:

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

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  // 初始化Google Mobile Ads SDK
  MobileAds.instance.initialize();
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({Key? key}) : super(key: key);

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

class _MyAppState extends State<MyApp> {

  @override
  void initState() {
    super.initState();
    // 这里可以添加广告加载和显示逻辑
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Plugin example app'),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: () {
              // 模拟点击按钮加载广告
              print("Load Unity Ad");
              // 在此处调用您的广告加载函数
            },
            child: const Text('Load Unity Ad'),
          ),
        ),
      ),
    );
  }
}

注意事项

  1. 确保您已经在AdMob控制台中配置了Unity Ads中介。
  2. AndroidManifest.xmlInfo.plist(iOS)中添加必要的权限和配置。
  3. 根据需要调整广告单元ID和广告类型(如横幅、插屏等)。

通过以上步骤,您可以成功地在Flutter应用中集成并使用gma_mediation_unity插件来实现Unity广告中介。


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

1 回复

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


当然,以下是一个关于如何在Flutter项目中集成和使用gma_mediation_unity插件的示例代码案例。这个插件允许你在Flutter应用中集成Unity Ads作为广告中介。

步骤 1: 添加依赖

首先,你需要在pubspec.yaml文件中添加gma_mediation_unity依赖。

dependencies:
  flutter:
    sdk: flutter
  gma_mediation_unity: ^最新版本号  # 请替换为实际发布的最新版本号

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

步骤 2: 配置Unity Ads

  1. 下载Unity Ads SDK:从Unity Ads开发者网站下载最新版本的Unity Ads SDK。

  2. 配置Unity Ads

    • 将下载的SDK解压并集成到你的Unity项目中(如果你的项目是基于Unity的)。
    • 在Unity Ads开发者门户中创建一个新的应用,并获取你的game_id

步骤 3: 在Flutter项目中配置Unity Ads

  1. 配置Android
    • 将Unity Ads的Android SDK(通常是unityads-release.aar文件)和必要的资源文件(如AndroidManifest.xml中的配置)复制到你的Flutter项目的android目录下。
    • android/app/build.gradle文件中添加对Unity Ads的依赖。
dependencies {
    implementation fileTree(dir: "libs", include: ["*.aar"])
    // 其他依赖...
    implementation(name: 'unityads-release', ext: 'aar')
}
  1. 配置iOS
    • 将Unity Ads的iOS SDK(通常是UnityAds.framework)添加到你的Flutter项目的ios目录中。
    • 在Xcode中,将UnityAds.framework添加到你的项目的Frameworks, Libraries, and Embedded Content中。

步骤 4: 初始化并显示广告

在你的Flutter应用中,你需要初始化Unity Ads,并在适当的时候显示广告。以下是一个简单的示例代码:

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

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

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

class _MyAppState extends State<MyApp> {
  @override
  void initState() {
    super.initState();
    // 初始化Unity Ads
    GmaMediationUnity.initialize(
      gameId: '你的Unity Ads game_id', // 替换为你的game_id
      testMode: true, // 在开发阶段设置为true,发布时设置为false
    );

    // 监听广告加载完成事件
    GmaMediationUnity.onLoadComplete.listen((event) {
      print('广告加载完成: ${event.placementId}');
    });

    // 监听广告显示事件
    GmaMediationUnity.onShow.listen((event) {
      print('广告显示: ${event.placementId}');
    });

    // 监听广告点击事件
    GmaMediationUnity.onClick.listen((event) {
      print('广告点击: ${event.placementId}');
    });

    // 监听广告关闭事件
    GmaMediationUnity.onClose.listen((event) {
      print('广告关闭: ${event.placementId}');
    });

    // 监听广告错误事件
    GmaMediationUnity.onError.listen((event) {
      print('广告错误: ${event.placementId}, 错误信息: ${event.message}');
    });
  }

  void showAd() {
    // 显示广告
    GmaMediationUnity.loadAd(placementId: '你的广告位ID')
        .then((bool loaded) {
      if (loaded) {
        GmaMediationUnity.showAd(placementId: '你的广告位ID');
      } else {
        print('广告加载失败');
      }
    }).catchError((error) {
      print('加载广告时发生错误: $error');
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Flutter Unity Ads Example'),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: showAd,
            child: Text('显示广告'),
          ),
        ),
      ),
    );
  }
}

注意事项

  • 确保你已经正确配置了Unity Ads的SDK,并且game_idplacementId是正确的。
  • 在实际发布应用时,记得将testMode设置为false
  • 监听事件可以帮助你调试和跟踪广告的状态。

这个示例代码提供了一个基本的框架,你可以根据自己的需求进行扩展和修改。

回到顶部