Flutter广告集成插件pangle_global_flutter的使用

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

Flutter广告集成插件pangle_global_flutter的使用

pangle_global_flutter

Pangle Global Ads by flutter。

项目结构参考 google_mobile_ads

注意:这不是官方插件。


支持

Android:

  • InterstitialAd
  • AppOpenAd

iOS:

  • 即将推出

开始使用

1. 初始化SDK

在应用启动时调用 initialize 方法初始化SDK。

PangleGlobalFlutter.instance.initialize("8025677");

2. 加载广告

PAGInterstitialAd(插屏广告)

加载插屏广告并监听加载状态。

PAGInterstitialAd.load(
    adUnitId: "980088188", // 替换为您的广告单元ID
    adLoadCallback: PAGInterstitialAdLoadListener(
        onError: (code, message) {
            // 广告加载失败时的回调
            print("广告加载失败,错误码: $code, 错误信息: $message");
        },
        onAdLoaded: (ad) {
            // 广告成功加载后的回调
            print("广告加载成功,可以展示");
            ad.show(); // 展示广告
        }));

PAGAppOpenAd(开屏广告)

加载开屏广告并监听加载状态。

PAGAppOpenAd.load(
    adUnitId: "890000078", // 替换为您的广告单元ID
    adLoadCallback: PAGAppOpenAdLoadListener(
        onError: (code, message) {
            // 广告加载失败时的回调
            print("广告加载失败,错误码: $code, 错误信息: $message");
        },
        onAdLoaded: (ad) {
            // 广告成功加载后的回调
            print("广告加载成功,可以展示");
            ad.show(); // 展示广告
        }));

3. 展示广告

广告加载完成后,通过调用 show() 方法展示广告。

ad.show();

完整示例

以下是一个完整的示例代码,展示了如何集成插屏广告和开屏广告。

示例代码

import 'package:flutter/material.dart';
import 'package:pangle_global_flutter/ad_containers.dart';
import 'package:pangle_global_flutter/ad_listeners.dart';
import 'package:pangle_global_flutter/pangle_global_flutter.dart';

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

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

  [@override](/user/override)
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  [@override](/user/override)
  void initState() {
    super.initState();
    // 初始化SDK
    PangleGlobalFlutter.instance.initialize("8025677");
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Pangle广告示例'),
        ),
        body: Center(
          child: Column(
            mainAxisSize: MainAxisSize.min,
            children: [
              // 插屏广告按钮
              ElevatedButton(
                onPressed: () {
                  // 加载插屏广告
                  PAGInterstitialAd.load(
                      adUnitId: "980088188", // 替换为您的插屏广告单元ID
                      adLoadCallback: PAGInterstitialAdLoadListener(
                          onError: (code, message) {
                            print("插屏广告加载失败,错误码: $code, 错误信息: $message");
                          },
                          onAdLoaded: (ad) {
                            print("插屏广告加载成功");
                            ad.show(); // 展示插屏广告
                          }));
                },
                child: const Text('展示插屏广告'),
              ),
              // 开屏广告按钮
              ElevatedButton(
                onPressed: () {
                  // 加载开屏广告
                  PAGAppOpenAd.load(
                      adUnitId: "890000078", // 替换为您的开屏广告单元ID
                      adLoadCallback: PAGAppOpenAdLoadListener(
                          onError: (code, message) {
                            print("开屏广告加载失败,错误码: $code, 错误信息: $message");
                          },
                          onAdLoaded: (ad) {
                            print("开屏广告加载成功");
                            ad.show(); // 展示开屏广告
                          }));
                },
                child: const Text('展示开屏广告'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

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

1 回复

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


pangle_global_flutter 是一个用于在 Flutter 应用中集成 Pangle(穿山甲)广告 的插件。Pangle 是字节跳动旗下的广告平台,支持多种广告格式,如 Banner 广告、插屏广告、激励视频广告等。

以下是使用 pangle_global_flutter 插件的基本步骤:

1. 安装插件

首先,在 pubspec.yaml 文件中添加 pangle_global_flutter 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  pangle_global_flutter: ^latest_version

然后运行 flutter pub get 来安装插件。

2. 初始化 Pangle SDK

在应用启动时,需要初始化 Pangle SDK。通常可以在 main.dart 中进行初始化:

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

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化 Pangle SDK
  await PangleGlobalFlutter.init(
    appId: 'YOUR_APP_ID', // 替换为你的 Pangle App ID
    useTextureView: true, // 是否使用 TextureView
    appName: 'Your App Name', // 应用名称
    allowShowNotify: true, // 是否允许显示通知
    debugLog: true, // 是否启用调试日志
  );

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Pangle Demo',
      home: HomeScreen(),
    );
  }
}

3. 加载和显示广告

根据你需要的广告类型,可以使用不同的方法来加载和显示广告。以下是几种常见广告类型的示例:

Banner 广告

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

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

class _BannerAdWidgetState extends State<BannerAdWidget> {
  late BannerAdController _bannerAdController;

  [@override](/user/override)
  void initState() {
    super.initState();
    _bannerAdController = BannerAdController(
      adUnitId: 'YOUR_BANNER_AD_UNIT_ID', // 替换为你的 Banner Ad Unit ID
      adSize: AdSize.banner,
      listener: (AdEvent event, {int? code, String? message}) {
        print('Banner Ad Event: $event, code: $code, message: $message');
      },
    );
    _bannerAdController.load();
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Container(
      alignment: Alignment.center,
      child: AdWidget(controller: _bannerAdController),
    );
  }

  [@override](/user/override)
  void dispose() {
    _bannerAdController.dispose();
    super.dispose();
  }
}

插屏广告

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

class InterstitialAdWidget extends StatelessWidget {
  final InterstitialAdController _interstitialAdController = InterstitialAdController(
    adUnitId: 'YOUR_INTERSTITIAL_AD_UNIT_ID', // 替换为你的插屏 Ad Unit ID
    listener: (AdEvent event, {int? code, String? message}) {
      print('Interstitial Ad Event: $event, code: $code, message: $message');
    },
  );

  [@override](/user/override)
  Widget build(BuildContext context) {
    return ElevatedButton(
      onPressed: () {
        _interstitialAdController.load();
        _interstitialAdController.show();
      },
      child: Text('Show Interstitial Ad'),
    );
  }
}

激励视频广告

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

class RewardedVideoAdWidget extends StatelessWidget {
  final RewardedVideoAdController _rewardedVideoAdController = RewardedVideoAdController(
    adUnitId: 'YOUR_REWARDED_VIDEO_AD_UNIT_ID', // 替换为你的激励视频 Ad Unit ID
    listener: (AdEvent event, {int? code, String? message}) {
      print('Rewarded Video Ad Event: $event, code: $code, message: $message');
      if (event == AdEvent.rewarded) {
        // 用户获得了奖励
        print('User earned reward!');
      }
    },
  );

  [@override](/user/override)
  Widget build(BuildContext context) {
    return ElevatedButton(
      onPressed: () {
        _rewardedVideoAdController.load();
        _rewardedVideoAdController.show();
      },
      child: Text('Show Rewarded Video Ad'),
    );
  }
}
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!