Flutter广告网络集成插件audience_network的使用
Flutter广告网络集成插件audience_network的使用
audience_network
Forked from https://pub.dev/packages/facebook_audience_network
- 增加了对多个Interstitial和Rewarded Ads的支持
- 增加了对iOS上的Rewarded Ads的支持
Facebook Audience Network 插件用于Flutter应用(支持Android和iOS)。
Banner Ad | Native Banner Ad | Native Ad |
---|---|---|
Interstitial Ad | Rewarded Video Ad |
---|---|
开始使用
1. 初始化
为了测试目的,你需要获取测试设备的哈希ID。要获取哈希ID:
- 在应用程序初始化时调用
<code>AudienceNetwork.init()</code>
。 - 将
<code>BannerAd</code>
小部件放置在你的应用程序中。 - 运行应用程序。
哈希ID将打印到日志中。将其粘贴到 <code>testingId</code>
参数中。
AudienceNetwork.init(
testingId: "37b1da9d-b48c-4103-a393-2e095e734bd6", //可选
testMode: true, // 可选
iOSAdvertiserTrackingEnabled: true, // 默认为false
);
iOS设置
在Podfile中,将iOS部署目标版本设置为9.0。
2. 显示Banner广告
Container(
alignment: Alignment(0.5, 1), // 居中对齐
child: BannerAd(
placementId: Platform.isAndroid
? "YOUR_ANDROID_PLACEMENT_ID"
: "YOUR_IOS_PLACEMENT_ID",
bannerSize: BannerSize.STANDARD,
listener: BannerAdListener(
onError: (code, message) => print('error'), // 错误处理
onLoaded: () => print('loaded'), // 广告加载成功
onClicked: () => print('clicked'), // 广告点击
onLoggingImpression: () => print('logging impression'), // 广告印象记录
),
),
)
3. 显示Interstitial广告
final interstitialAd = InterstitialAd(InterstitialAd.testPlacementId);
interstitialAd.listener = InterstitialAdListener(
onLoaded: () {
interstitialAd.show(); // 显示广告
},
onDismissed: () {
interstitialAd.destroy(); // 销毁广告
print('Interstitial dismissed'); // 打印广告关闭信息
},
);
interstitialAd.load(); // 加载广告
4. 显示Rewarded视频广告
final rewardedAd = RewardedAd(
RewardedAd.testPlacementId,
userId: 'some_user_id', // 可选参数,用于服务器端验证
);
rewardedAd.listener = RewardedAdListener(
onLoaded: () {
rewardedAd.show(); // 显示广告
},
onVideoComplete: () {
rewardedAd.destroy(); // 销毁广告
print('Video completed'); // 打印视频完成信息
},
);
rewardedAd.load(); // 加载广告
5. 显示原生广告
注意:NATIVE_AD_HORIZONTAL
和 NATIVE_AD_VERTICAL
广告类型仅在iOS上受支持。在Android上使用 NATIVE_AD
。
NativeAd(
placementId: NativeAd.testPlacementId,
adType: NativeAdType.NATIVE_AD,
width: double.infinity,
height: 300,
backgroundColor: Colors.blue,
titleColor: Colors.white,
descriptionColor: Colors.white,
buttonColor: Colors.deepPurple,
buttonTitleColor: Colors.white,
buttonBorderColor: Colors.white,
// 如果不想在小部件重建时刷新adview,则设置为true
keepAlive: true,
// 如果想在广告加载时折叠原生广告视图,则设置为false
keepExpandedWhileLoading: false,
// 在广告加载时扩展adview的动画持续时间(以毫秒为单位)
expandAnimationDuraion: 300,
listener: NativeAdListener(
onError: (code, message) => print('error'), // 错误处理
onLoaded: () => print('loaded'), // 广告加载成功
onClicked: () => print('clicked'), // 广告点击
onLoggingImpression: () => print('logging impression'), // 广告印象记录
onMediaDownloaded: () => print('media downloaded'), // 媒体下载完成
),
)
6. 显示原生横幅广告
使用 <code>NativeBannerAdSize</code>
来选择原生横幅广告的高度。height
属性对原生横幅广告无效。
NativeAd(
placementId: NativeAd.testPlacementId,
adType: NativeAdType.NATIVE_BANNER_AD,
bannerAdSize: NativeBannerAdSize.HEIGHT_100,
width: double.infinity,
backgroundColor: Colors.blue,
titleColor: Colors.white,
descriptionColor: Colors.white,
buttonColor: Colors.deepPurple,
buttonTitleColor: Colors.white,
buttonBorderColor: Colors.white,
listener: NativeAdListener(
onError: (code, message) => print('error'), // 错误处理
onLoaded: () => print('loaded'), // 广告加载成功
onClicked: () => print('clicked'), // 广告点击
onLoggingImpression: () => print('logging impression'), // 广告印象记录
onMediaDownloaded: () => print('media downloaded'), // 媒体下载完成
),
)
更多关于Flutter广告网络集成插件audience_network的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter广告网络集成插件audience_network的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是如何在Flutter项目中集成和使用Facebook Audience Network广告网络插件audience_network
的示例代码。这个插件允许你在Flutter应用中显示Facebook广告。
1. 添加依赖
首先,在你的pubspec.yaml
文件中添加audience_network
依赖:
dependencies:
flutter:
sdk: flutter
audience_network: ^0.x.x # 请检查最新版本号并替换
然后运行flutter pub get
来安装依赖。
2. 配置Android项目
在android/app/src/main/AndroidManifest.xml
中添加权限和元数据
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.yourapp">
<!-- 其他配置 -->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application
<!-- 其他配置 -->
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id"/>
<activity
android:name="com.facebook.ads.AudienceNetworkActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize"
android:exported="true"/>
<!-- 其他配置 -->
</application>
</manifest>
在android/app/src/main/res/values/strings.xml
中添加Facebook App ID
<resources>
<string name="facebook_app_id">YOUR_FACEBOOK_APP_ID</string>
</resources>
3. 配置iOS项目
在ios/Runner/Info.plist
中添加配置
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>fbYOUR_FACEBOOK_APP_ID</string>
</array>
</dict>
</array>
<key>FacebookAppID</key>
<string>YOUR_FACEBOOK_APP_ID</string>
<key>FacebookDisplayName</key>
<string>YourAppName</string>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>fbapi</string>
<string>fb-messenger-share-api</string>
<string>fbauth2</string>
<string>fbshareextension</string>
</array>
在ios/Podfile
中添加FBSDKCoreKit
和FBSDKAudienceNetwork
依赖(如果需要)
platform :ios, '10.0'
target 'Runner' do
use_frameworks!
use_modular_headers!
flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
# 添加以下行
pod 'FBSDKCoreKit'
pod 'FBSDKAudienceNetwork'
end
然后运行pod install
。
4. 使用audience_network
插件显示广告
在你的Flutter代码中,你可以这样使用audience_network
插件来显示一个横幅广告:
import 'package:flutter/material.dart';
import 'package:audience_network/audience_network.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Facebook Audience Network Example'),
),
body: Center(
child: BannerAd(
placementId: 'YOUR_PLACEMENT_ID',
width: 320,
height: 50,
listener: (BannerAdEvent event, Map<String, dynamic> data) {
if (event == BannerAdEvent.loaded) {
print('Banner ad loaded.');
} else if (event == BannerAdEvent.failedToLoad) {
print('Banner ad failed to load: ${data['error']?.message}');
}
},
),
),
),
);
}
}
确保将YOUR_PLACEMENT_ID
替换为你从Facebook Audience Network获取的实际广告位ID。
5. 运行应用
现在,你可以运行你的Flutter应用,并应该能看到一个Facebook横幅广告显示在你的应用中。
注意:确保你的Facebook应用ID和广告位ID都是正确配置的,并且你的Facebook应用已经通过审核,有权显示广告。