Flutter广告集成插件fgx_applovin的使用

Flutter广告集成插件fgx_applovin的使用

fgx_applovin

欢迎贡献者!

所有贡献者

欢迎来自每个人的贡献。

支持我们

Flutter插件用于在Android和iOS上展示AppLovin MAX广告的奖励视频。

MAX是AppLovin的内置应用变现解决方案。

超越传统的变现方案,集成MAX。MAX是一个单一且无偏见的拍卖平台,广告商可以平等访问所有广告库存,并同时出价,这会带来更多的竞争和更高的CPM。你可以在这里了解更多:https://www.applovin.com/max-header-bidding

要申请MAX的邀请,请点击这里:https://try.applovin.com/applovin-max-application

请查看我们的文档以开始集成并启用中介网络:https://dash.applovin.com/documentation/mediation/ios/getting-started


开始使用

在Android的AndroidManifest.xml文件中添加以下内容:

<meta-data android:name="applovin.sdk.key"
    android:value="YOUR_SDK_KEY"/>

在iOS的Info.plist文件中添加以下内容:

<key>AppLovinSdkKey</key>
<string>YOUR_SDK_KEY</string>
<key>SKAdNetworkItems</key>
<array>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>2U9PT9HC89.skadnetwork</string>
    </dict>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>4468km3ulz.skadnetwork</string>
    </dict>
    <!-- 其他 SKAdNetworkIdentifier -->
</array>
<key>GADApplicationIdentifier</key>
<string>ca-app-pub-3940256099942544~1458002511</string>

准备中介网络

iOS

请参考文档:https://dash.applovin.com/documentation/mediation/ios/mediation-adapters

Android

请参考文档:https://dash.applovin.com/documentation/mediation/android/mediation-adapters

注意事项

安装IronSource时可能会出现以下错误:

Suggestion: add 'tools:replace="android:label"' to &lt;application&gt; element at AndroidManifest.xml:16:5-39:19 to override.

根据提示,在AndroidManifest.xml中添加tools:replace="android:label"

<application
    android:name="io.flutter.app.FlutterApplication"
    android:label="flutter_applovin_max_example"
    android:icon="@mipmap/ic_launcher"
    tools:replace="android:label">
</application>

同时,在根节点添加命名空间:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="dev.iori.flutter_applovin_max_example"
    xmlns:tools="http://schemas.android.com/tools">
</manifest>

使用此插件

请查看示例目录:https://github.com/ioridev/flutter_applovin_max/tree/master/example

访问AppLovin MAX官网了解更多:https://www.applovin.com/max/


关于此插件

此插件通过集成AppLovin MAX的原生SDK,使Flutter应用程序能够使用中介功能实现奖励视频广告。这样,您可以在Flutter应用中轻松实现基于中介的奖励视频广告。


贡献者 ✨

感谢以下杰出贡献者(emoji key):

贡献者 贡献类型
dvird 💻 代码贡献
superkeka 💻 代码贡献
Noor Ali Butt 💻 代码贡献
fujiser 🗣 回答问题

本项目遵循all-contributors规范。任何形式的贡献都欢迎!


示例代码

以下是完整的示例代码,展示如何使用fgx_applovin插件实现奖励视频和插屏广告。

example/lib/main.dart

// ignore_for_file: always_specify_types

import 'package:fgx_applovin/banner.dart';
import 'package:fgx_applovin/flutter_applovin_max.dart';
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

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

class _MyAppState extends State<MyApp> {
  [@override](/user/override)
  void initState() {
    // 初始化奖励广告和插屏广告
    FlutterApplovinMax.initRewardAd('YOUR_AD_UNIT_ID');
    FlutterApplovinMax.initInterstitialAd('YOUR_AD_UNIT_ID');
    super.initState();
  }

  // 广告事件监听器
  void listener(AppLovinAdListener event) {
    print(event);
    if (event == AppLovinAdListener.onUserRewarded) {
      print('👍get reward'); // 用户获得奖励
    }
  }

  bool isRewardedVideoAvailable = false; // 奖励视频是否可用
  bool isInterstitialVideoAvailable = false; // 插屏广告是否可用

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Plugin example app'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              ElevatedButton(
                onPressed: () async {
                  // 检查奖励视频是否可用
                  isRewardedVideoAvailable = await FlutterApplovinMax.isRewardLoaded(listener);
                  if (isRewardedVideoAvailable) {
                    // 显示奖励视频
                    FlutterApplovinMax.showRewardVideo((AppLovinAdListener event) => listener(event));
                  }
                },
                child: const Text('Show Reward Video'),
              ),
              ElevatedButton(
                onPressed: () async {
                  // 检查插屏广告是否可用
                  isInterstitialVideoAvailable = await FlutterApplovinMax.isInterstitialLoaded(listener);
                  if (isInterstitialVideoAvailable) {
                    // 显示插屏广告
                    FlutterApplovinMax.showInterstitialVideo((AppLovinAdListener event) => listener(event));
                  }
                },
                child: const Text('Show Interstitial Video'),
              ),
            ],
          ),
        ),
        bottomNavigationBar: BannerMaxView(
          (AppLovinAdListener event) => print(event),
          BannerAdSize.banner,
          'YOUR_AD_UNIT_ID',
        ),
      ),
    );
  }
}

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

1 回复

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


fgx_applovin 是一个用于在 Flutter 应用中集成 AppLovin 广告的插件。通过这个插件,你可以在应用中展示横幅广告、插屏广告、激励视频广告等。以下是如何使用 fgx_applovin 插件的详细步骤。

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  fgx_applovin: ^1.0.0  # 请确保使用最新版本

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

2. 初始化 AppLovin SDK

在使用广告之前,你需要初始化 AppLovin SDK。通常,你可以在 main.dart 文件中进行初始化。

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

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化 AppLovin SDK
  await FgxApplovin.initialize("YOUR_SDK_KEY");

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

3. 展示横幅广告

要展示横幅广告,你可以使用 FgxApplovinBannerAd 组件。

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

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter AppLovin Demo'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text('Banner Ad Example'),
            SizedBox(height: 20),
            FgxApplovinBannerAd(
              adUnitId: "YOUR_BANNER_AD_UNIT_ID",
              adSize: AdSize.banner,
            ),
          ],
        ),
      ),
    );
  }
}

4. 展示插屏广告

要展示插屏广告,你可以使用 FgxApplovinInterstitialAd

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

class MyHomePage extends StatelessWidget {
  final interstitialAd = FgxApplovinInterstitialAd("YOUR_INTERSTITIAL_AD_UNIT_ID");

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter AppLovin Demo'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () async {
            // 加载插屏广告
            await interstitialAd.load();
            // 展示插屏广告
            interstitialAd.show();
          },
          child: Text('Show Interstitial Ad'),
        ),
      ),
    );
  }
}

5. 展示激励视频广告

要展示激励视频广告,你可以使用 FgxApplovinRewardedAd

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

class MyHomePage extends StatelessWidget {
  final rewardedAd = FgxApplovinRewardedAd("YOUR_REWARDED_AD_UNIT_ID");

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter AppLovin Demo'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () async {
            // 加载激励视频广告
            await rewardedAd.load();
            // 展示激励视频广告
            rewardedAd.show();
          },
          child: Text('Show Rewarded Ad'),
        ),
      ),
    );
  }
}

6. 处理广告事件

你还可以监听广告事件,例如广告加载成功、广告关闭等。

rewardedAd.onRewarded = (String rewardType, int rewardAmount) {
  print('Rewarded: $rewardType, $rewardAmount');
};

rewardedAd.onAdClosed = () {
  print('Ad closed');
};

rewardedAd.onAdLoadFailed = (String error) {
  print('Ad load failed: $error');
};
回到顶部