Flutter广告集成插件teads_admob_adapter的使用

Flutter广告集成插件teads_admob_adapter的使用


Teads logo

如果你想要在你的iOS应用中通过Google Mobile Ads中介展示Teads广告,那么你来对地方了。


目录


安装文档

有关集成说明,请参阅Teads SDK文档


运行示例应用

克隆此仓库,用Android Studio打开它,并运行sampleapp项目。


安装Teads Admob Adapter Flutter框架

Teads SDK目前通过Pub分发。 它包含了通过Google Mobile Ads服务提供“出流”视频广告所需的一切。


使用包

要将teads_admob_adapter包添加到你的应用中:

  1. 依赖于它

    • 打开位于应用文件夹内的pubspec.yaml文件,在dependencies下添加teads_admob_adapter:

      dependencies:
        teads_admob_adapter: ^版本号
      
  2. 安装它

    • 终端:运行flutter pub get
    • 或者从Android Studio/IntelliJ:点击pubspec.yaml顶部操作栏中的Packages get。
    • 或者从VS Code:点击pubspec.yaml顶部操作栏右侧的Get Packages。
  3. 导入它

    • 在Dart代码中添加相应的导入语句。
import 'package:teads_admob_adapter/teads_admob_adapter.dart';

认证

Teads SDK支持IAB的Open Measurement SDK(OM SDK)。OM SDK为移动应用中展示的广告带来了透明度,标准化了可视性和验证测量。Teads是IAB合规公司之一。

iab certification badge

更新日志

查看更新日志


示例代码

import 'dart:io';

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

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

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

  [@override](/user/override)
  Widget build(BuildContext context) {
    const String title = 'TeadsAdmobAdapter InRead Ads Demo';
    return MaterialApp(
      title: title,
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const InRead(title: title),
    );
  }
}

class InRead extends StatefulWidget {
  const InRead({super.key, required this.title});

  final String title;

  [@override](/user/override)
  State<InRead> createState() => _InReadState();
}

class _InReadState extends State<InRead> {
  AdManagerBannerAd? _bannerAd;
  late AdSize _adSize;
  final String _adUnit = Platform.isAndroid
      ? "ca-app-pub-3068786746829754/3486435166"
      : "ca-app-pub-3068786746829754/2411019030"; // 这是一个测试广告单元ID

  [@override](/user/override)
  void dispose() {
    super.dispose();
    // 释放内存对象
    _bannerAd?.dispose();
  }

  Future<void> _requestAd() async {
    AdManagerAdRequest request =
        const AdManagerAdRequest(mediationExtrasIdentifier: "Teads");
    TeadsAdapterSettings settings = TeadsAdapterSettings();
    await settings.enableDebug(); // 启用调试模式
    double width = MediaQuery.of(context).size.width;
    _adSize = AdSize(width: width.toInt(), height: width ~/ (16 / 9));
    setState(() {
      _bannerAd = AdManagerBannerAd(
        sizes: [_adSize],
        adUnitId: _adUnit,
        request: request,
        listener: AdManagerBannerAdListener(
          // 广告成功加载时调用
          onAdLoaded: (Ad ad) => print('Ad loaded.'),
          // 广告请求失败时调用
          onAdFailedToLoad: (Ad ad, LoadAdError error) {
            // 释放广告资源
            ad.dispose();
            print('Ad failed to load: $error');
          },
          // 广告打开覆盖屏幕的弹窗时调用
          onAdOpened: (Ad ad) => print('Ad opened.'),
          // 广告关闭覆盖屏幕的弹窗时调用
          onAdClosed: (Ad ad) => print('Ad closed.'),
          // 广告产生印象时调用
          onAdImpression: (Ad ad) => print('Ad impression.'),
        ),
      );
      _bannerAd?.load();
    });

    // 如果小部件在异步平台消息飞行期间被树移除,则丢弃回复,而不是调用setState来更新非存在的外观。
    if (!mounted) return;
  }

  Widget BannerAdWidget() {
    if (_bannerAd != null) {
      return Container(
        alignment: Alignment.center,
        width: _adSize.width.toDouble(),
        height: _adSize.height.toDouble(),
        child: AdWidget(ad: _bannerAd!),
      );
    } else {
      return const SizedBox.shrink();
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        // 设置应用栏标题
        title: Text(widget.title),
      ),
      body: BannerAdWidget(),
      floatingActionButton: FloatingActionButton(
        onPressed: _requestAd,
        tooltip: 'Request',
        child: const Icon(Icons.add),
      ),
    );
  }
}

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

1 回复

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


在 Flutter 应用中集成广告时,有时你需要使用特定的广告平台或适配器来展示广告。teads_admob_adapter 是一个用于在 AdMob 中集成 Teads 广告的适配器插件。以下是如何在 Flutter 项目中使用 teads_admob_adapter 的基本步骤。

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  teads_admob_adapter: ^latest_version

运行 flutter pub get 来安装依赖。

2. 初始化插件

在应用启动时,你需要初始化 teads_admob_adapter 插件。通常这会在 main.dart 中进行。

import 'package:teads_admob_adapter/teads_admob_adapter.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // Initialize Teads AdMob Adapter
  await TeadsAdmobAdapter.initialize();
  
  // Initialize AdMob
  await MobileAds.instance.initialize();
  
  runApp(MyApp());
}

3. 使用 Teads 广告

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

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

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

class _BannerAdExampleState extends State<BannerAdExample> {
  BannerAd? _bannerAd;

  [@override](/user/override)
  void initState() {
    super.initState();
    _loadBannerAd();
  }

  void _loadBannerAd() {
    final adUnitId = 'YOUR_ADMOB_AD_UNIT_ID'; // Replace with your AdMob ad unit ID

    _bannerAd = BannerAd(
      adUnitId: adUnitId,
      request: AdRequest(),
      size: AdSize.banner,
      listener: BannerAdListener(
        onAdLoaded: (Ad ad) {
          print('Banner Ad loaded.');
        },
        onAdFailedToLoad: (Ad ad, LoadAdError error) {
          print('Banner Ad failed to load: $error');
          ad.dispose();
        },
      ),
    );

    _bannerAd!.load();
  }

  [@protected](/user/protected)
  [@mustCallSuper](/user/mustCallSuper)
  void dispose() {
    _bannerAd?.dispose();
    super.dispose();
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Teads AdMob Adapter Example'),
      ),
      body: Center(
        child: _bannerAd != null
            ? Container(
                alignment: Alignment.center,
                width: _bannerAd!.size.width.toDouble(),
                height: _bannerAd!.size.height.toDouble(),
                child: AdWidget(ad: _bannerAd!),
              )
            : Text('Loading ad...'),
      ),
    );
  }
}
回到顶部