Flutter广告展示插件flutter_max_ad的使用
Flutter广告展示插件flutter_max_ad的使用
获取开始
设置Proguard
0.3.9版本的Android包含TopOn 0.4.1版本的iOS不包含TopOn也不包含Facebook
Android
配置Max其他平台
https://developers.applovin.com/en/android/preparing-mediated-networks/
配置TopOn其他平台
https://app.toponad.com/m/sdk/download
打开你的AndroidManifest.xml
文件,并添加以下内容:
<uses-library
android:name="org.apache.http.legacy"
android:required="false" />
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-3940256099942544~3347511713" />
<meta-data
android:name="com.google.android.gms.ads.AD_MANAGER_APP"
android:value="true" />
iOS
打开你的Podfile
文件,在目标Runner
中添加以下内容:
pod 'AppLovinMediationChartboostAdapter'
pod 'AppLovinMediationFyberAdapter'
pod 'AppLovinMediationGoogleAdManagerAdapter'
pod 'AppLovinMediationGoogleAdapter'
pod 'AppLovinMediationInMobiAdapter'
pod 'AppLovinMediationIronSourceAdapter'
pod 'AppLovinMediationVungleAdapter'
pod 'AppLovinMediationMintegralAdapter'
pod 'AppLovinMediationUnityAdsAdapter'
pod 'AppLovinMediationByteDanceAdapter'
pod 'AppLovinMediationFacebookAdapter'
在你的Info.plist
文件中添加以下内容:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>fb[APP_ID]</string>
</array>
</dict>
</array>
<key>FacebookAppID</key>
<string>[APP_ID]</string>
<key>FacebookClientToken</key>
<string>[CLIENT_TOKEN]</string>
<key>FacebookDisplayName</key>
<string>[APP_NAME]</string>
<key>GADApplicationIdentifier</key>
<string>ca-app-pub-3940256099942544~2558002522</string>
<key>SKAdNetworkItems</key>
<array>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>su67r6k2v3.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>cstr6suwn9.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>4fzdc2evr5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>4pfyvq9l8r.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>2fnua5tdw4.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>ydx93a7ass.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>5a6flpkh64.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>p78axxw29g.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>v72qych5uu.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>ludvb6z3bs.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>cp8zw746q7.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>3sh42y64q3.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>c6k4g5qg8m.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>s39g8k73mm.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>3qy4746246.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>f38h382jlk.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>hs6bdukanm.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>v4nxqhlyqp.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>wzmmz9fp6w.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>yclnxrl5pm.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>t38b2kh725.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>7ug5zh24hu.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>gta9lk7p23.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>vutu7akeur.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>y5ghdn5j9k.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>n6fk4nfna4.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>v9wttpbfk9.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>n38lu8286q.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>47vhws6wlr.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>kbd757ywx3.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>9t245vhmpl.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>eh6m2bh4zr.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>a2p9lx4jpn.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>22mmun2rn5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>4468km3ulz.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>2u9pt9hc89.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>8s468mfl3y.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>klf5c3l5u5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>ppxm28t8ap.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>ecpz2srf59.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>uw77j35x4d.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>pwa73g5rt2.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>mlmmfzh3r3.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>578prtvx9j.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>4dzt52r2t5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>e5fvkxwrpn.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>8c4e2ghe7u.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>zq492l623r.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>3rd42ekr43.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>3qcr597p9d.skadnetwork</string>
</dict>
</array>
<key>NSUserNotificationsUsageDescription</key>
<string>Demo</string>
通过以上步骤,你已经完成了对flutter_max_ad
插件的基本配置。接下来,你可以根据需要实现广告的展示功能。
完整示例代码
import 'package:flutter/material.dart';
import 'package:flutter_max_ad/flutter_max_ad.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text('Flutter Max Ad Example')),
body: Center(child: MyHomePage()),
),
);
}
}
class MyHomePage extends StatefulWidget {
[@override](/user/override)
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
final FlutterMaxAd flutterMaxAd = FlutterMaxAd();
[@override](/user/override)
void initState() {
super.initState();
// 初始化广告
flutterMaxAd.initialize();
}
[@override](/user/override)
Widget build(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
ElevatedButton(
onPressed: () {
// 展示广告
flutterMaxAd.showAd();
},
child: Text('Show Ad'),
),
],
);
}
}
更多关于Flutter广告展示插件flutter_max_ad的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter广告展示插件flutter_max_ad的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
flutter_max_ad
是一个用于在 Flutter 应用中展示广告的插件,主要集成了 AppLovin MAX SDK。通过这个插件,开发者可以轻松地在 Flutter 应用中展示横幅广告、插页式广告、激励视频广告等。
以下是使用 flutter_max_ad
插件的基本步骤:
1. 添加依赖
首先,在 pubspec.yaml
文件中添加 flutter_max_ad
插件的依赖:
dependencies:
flutter_max_ad: ^<latest_version>
然后运行 flutter pub get
来安装依赖。
2. 初始化插件
在使用插件之前,需要先初始化它。通常在 main.dart
文件中进行初始化:
import 'package:flutter_max_ad/flutter_max_ad.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化 AppLovin MAX SDK
await FlutterMaxAd.initialize(
sdkKey: 'YOUR_SDK_KEY',
);
runApp(MyApp());
}
将 YOUR_SDK_KEY
替换为你在 AppLovin 平台上获取的 SDK Key。
3. 展示横幅广告
要在应用中展示横幅广告,可以使用 BannerAdWidget
:
import 'package:flutter_max_ad/flutter_max_ad.dart';
class MyHomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Flutter Max Ad Example'),
),
body: Column(
children: [
Expanded(
child: Center(
child: Text('Your content here'),
),
),
BannerAdWidget(
adUnitId: 'YOUR_BANNER_AD_UNIT_ID',
adSize: AdSize.banner,
),
],
),
);
}
}
将 YOUR_BANNER_AD_UNIT_ID
替换为你在 AppLovin 平台上创建的横幅广告单元 ID。
4. 展示插页式广告
插页式广告通常在用户点击某个按钮或完成某个操作时展示。可以使用 InterstitialAd
来加载和展示插页式广告:
import 'package:flutter_max_ad/flutter_max_ad.dart';
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
InterstitialAd _interstitialAd;
@override
void initState() {
super.initState();
_interstitialAd = InterstitialAd(
adUnitId: 'YOUR_INTERSTITIAL_AD_UNIT_ID',
);
_interstitialAd.load();
}
@override
void dispose() {
_interstitialAd.dispose();
super.dispose();
}
void _showInterstitialAd() {
if (_interstitialAd.isLoaded) {
_interstitialAd.show();
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Flutter Max Ad Example'),
),
body: Center(
child: ElevatedButton(
onPressed: _showInterstitialAd,
child: Text('Show Interstitial Ad'),
),
),
);
}
}
将 YOUR_INTERSTITIAL_AD_UNIT_ID
替换为你在 AppLovin 平台上创建的插页式广告单元 ID。
5. 展示激励视频广告
激励视频广告通常用于奖励用户观看广告。可以使用 RewardedAd
来加载和展示激励视频广告:
import 'package:flutter_max_ad/flutter_max_ad.dart';
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
RewardedAd _rewardedAd;
@override
void initState() {
super.initState();
_rewardedAd = RewardedAd(
adUnitId: 'YOUR_REWARDED_AD_UNIT_ID',
);
_rewardedAd.load();
}
@override
void dispose() {
_rewardedAd.dispose();
super.dispose();
}
void _showRewardedAd() {
if (_rewardedAd.isLoaded) {
_rewardedAd.show(
onRewarded: (reward) {
// 处理奖励逻辑
print('Reward: $reward');
},
);
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Flutter Max Ad Example'),
),
body: Center(
child: ElevatedButton(
onPressed: _showRewardedAd,
child: Text('Show Rewarded Ad'),
),
),
);
}
}
将 YOUR_REWARDED_AD_UNIT_ID
替换为你在 AppLovin 平台上创建的激励视频广告单元 ID。
6. 处理广告事件
你可以监听广告的各种事件,例如广告加载成功、广告展示、广告点击等:
_interstitialAd.onAdLoaded.listen((event) {
print('Interstitial Ad Loaded');
});
_interstitialAd.onAdDisplayed.listen((event) {
print('Interstitial Ad Displayed');
});
_interstitialAd.onAdClicked.listen((event) {
print('Interstitial Ad Clicked');
});
7. 处理用户隐私
根据 GDPR 和 CCPA 等隐私法规,你可能需要设置用户的地理位置和隐私选项:
await FlutterMaxAd.setUserConsent(true);
await FlutterMaxAd.setIsAgeRestrictedUser(false);
await FlutterMaxAd.setDoNotSell(false);
8. 测试广告
在开发和测试阶段,你可以使用测试广告单元 ID 来确保广告展示正常:
const testBannerAdUnitId = 'YOUR_TEST_BANNER_AD_UNIT_ID';
const testInterstitialAdUnitId = 'YOUR_TEST_INTERSTITIAL_AD_UNIT_ID';
const testRewardedAdUnitId = 'YOUR_TEST_REWARDED_AD_UNIT_ID';