Flutter广告集成插件adpie_sdk的使用
Flutter广告集成插件adpie_sdk的使用
AdPie-Flutter-SDK
AdPie Flutter 插件用于在Android和iOS应用中集成广告。
完整示例代码
import 'package:flutter/material.dart';
import 'package:adpie_sdk/adpie_sdk.dart';
import 'dart:io' show Platform;
import 'package:app_tracking_transparency/app_tracking_transparency.dart';
import 'banner_ad.dart';
import 'interstitial_ad.dart';
import 'rewarded_ad.dart';
String mediaId = Platform.isAndroid ? "57342d1b7174ea39844cac10" : "57342d787174ea39844cac11";
void main() {
WidgetsFlutterBinding.ensureInitialized();
if (Platform.isAndroid) {
AdPieSdk.initialize(mediaId);
} else {
initPlugin();
}
runApp(const MyApp());
}
Future<void> initPlugin() async {
final TrackingStatus status =
await AppTrackingTransparency.trackingAuthorizationStatus;
if (status == TrackingStatus.notDetermined) {
final TrackingStatus status =
await AppTrackingTransparency.requestTrackingAuthorization();
}
final uuid = await AppTrackingTransparency.getAdvertisingIdentifier();
print("UUID: $uuid");
AdPieSdk.initialize(mediaId);
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'AdPie Sample',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: const MyHomePage(title: 'AdPie Sample Page'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
final String title;
[@override](/user/override)
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
[@override](/user/override)
Widget build(BuildContext context) {
final List<String> adList = ['Banner Ad', 'Interstitial Ad', 'Rewarded Ad'];
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: ListView.separated(
itemCount: adList.length,
itemBuilder: (BuildContext context, int index) {
return ListTile(
title: Text(adList[index], textAlign: TextAlign.center),
onTap: () {
switch(index) {
case 0:
Navigator.push(
context,
MaterialPageRoute(builder: (context) => AdPieBanner()),
);
break;
case 1:
Navigator.push(
context,
MaterialPageRoute(builder: (context) => AdPieInterstitialAd()),
);
break;
case 2:
Navigator.push(
context,
MaterialPageRoute(builder: (context) => AdPieRewardedAd()),
);
break;
}
},
);
},
separatorBuilder: (BuildContext context, int index) {
return Divider(thickness: 0,);
},
)
);
}
}
Banner Ad 示例代码
import 'package:flutter/material.dart';
import 'package:adpie_sdk/adpie_sdk.dart';
class AdPieBanner extends StatefulWidget {
[@override](/user/override)
_AdPieBannerState createState() => _AdPieBannerState();
}
class _AdPieBannerState extends State<AdPieBanner> {
[@override](/user/override)
void initState() {
super.initState();
AdPieSdk.loadBannerAd(
placementId: "YOUR_PLACEMENT_ID",
onAdLoaded: () {
// 广告加载完成后的回调
print("Banner Ad loaded");
},
onAdFailedToLoad: (error) {
// 加载失败后的回调
print("Banner Ad failed to load: $error");
},
);
}
[@override](/user/override)
Widget build(BuildContext context) {
return Container(
child: AdPieSdk.bannerAdView(),
);
}
}
Interstitial Ad 示例代码
import 'package:flutter/material.dart';
import 'package:adpie_sdk/adpie_sdk.dart';
class AdPieInterstitialAd extends StatefulWidget {
[@override](/user/override)
_AdPieInterstitialAdState createState() => _AdPieInterstitialAdState();
}
class _AdPieInterstitialAdState extends State<AdPieInterstitialAd> {
bool _isInterstitialAdLoaded = false;
[@override](/user/override)
void initState() {
super.initState();
AdPieSdk.loadInterstitialAd(
placementId: "YOUR_PLACEMENT_ID",
onAdLoaded: () {
setState(() {
_isInterstitialAdLoaded = true;
});
print("Interstitial Ad loaded");
},
onAdFailedToLoad: (error) {
print("Interstitial Ad failed to load: $error");
},
);
}
void _showInterstitialAd() {
if (_isInterstitialAdLoaded) {
AdPieSdk.showInterstitialAd();
} else {
print("Interstitial Ad is not loaded yet.");
}
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Interstitial Ad"),
),
body: Center(
child: ElevatedButton(
onPressed: _showInterstitialAd,
child: Text("Show Interstitial Ad"),
),
),
);
}
}
Rewarded Ad 示例代码
import 'package:flutter/material.dart';
import 'package:adpie_sdk/adpie_sdk.dart';
class AdPieRewardedAd extends StatefulWidget {
[@override](/user/override)
_AdPieRewardedAdState createState() => _AdPieRewardedAdState();
}
class _AdPieRewardedAdState extends State<AdPieRewardedAd> {
bool _isRewardedAdLoaded = false;
[@override](/user/override)
void initState() {
super.initState();
AdPieSdk.loadRewardedAd(
placementId: "YOUR_PLACEMENT_ID",
onAdLoaded: () {
setState(() {
_isRewardedAdLoaded = true;
});
print("Rewarded Ad loaded");
},
onAdFailedToLoad: (error) {
print("Rewarded Ad failed to load: $error");
},
);
}
void _showRewardedAd() {
if (_isRewardedAdLoaded) {
AdPieSdk.showRewardedAd(onUserEarnedReward: (amount, type) {
print("User earned reward: $amount $type");
});
} else {
print("Rewarded Ad is not loaded yet.");
}
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Rewarded Ad"),
),
body: Center(
child: ElevatedButton(
onPressed: _showRewardedAd,
child: Text("Show Rewarded Ad"),
),
),
);
}
}
更多关于Flutter广告集成插件adpie_sdk的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复
更多关于Flutter广告集成插件adpie_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
adpie_sdk
是一个用于在 Flutter 应用中集成 AdPie 广告的插件。AdPie 是一个广告平台,提供横幅广告、插页式广告、原生广告等多种广告格式。以下是如何在 Flutter 项目中使用 adpie_sdk
插件的步骤。
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 adpie_sdk
插件的依赖:
dependencies:
flutter:
sdk: flutter
adpie_sdk: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
来安装依赖。
2. 初始化 AdPie SDK
在 main.dart
文件中,初始化 AdPie SDK。通常,你需要在应用启动时进行初始化。
import 'package:adpie_sdk/adpie_sdk.dart';
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
[@override](/user/override)
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
[@override](/user/override)
void initState() {
super.initState();
AdPieSdk.initialize('YOUR_ADPIE_APP_ID'); // 替换为你的 AdPie App ID
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('AdPie SDK Example'),
),
body: Center(
child: Text('AdPie SDK Integration'),
),
);
}
}
3. 显示横幅广告
要在应用中显示横幅广告,可以使用 BannerAdView
小部件。
import 'package:adpie_sdk/adpie_sdk.dart';
import 'package:flutter/material.dart';
class BannerAdExample extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Banner Ad Example'),
),
body: Column(
children: [
Expanded(
child: Center(
child: Text('Your content here'),
),
),
BannerAdView(
adUnitId: 'YOUR_BANNER_AD_UNIT_ID', // 替换为你的横幅广告单元 ID
adSize: AdSize.BANNER_320x50,
),
],
),
);
}
}
4. 显示插页式广告
要显示插页式广告,可以使用 InterstitialAd
类。
import 'package:adpie_sdk/adpie_sdk.dart';
import 'package:flutter/material.dart';
class InterstitialAdExample extends StatefulWidget {
[@override](/user/override)
_InterstitialAdExampleState createState() => _InterstitialAdExampleState();
}
class _InterstitialAdExampleState extends State<InterstitialAdExample> {
InterstitialAd? _interstitialAd;
[@override](/user/override)
void initState() {
super.initState();
_loadInterstitialAd();
}
void _loadInterstitialAd() {
_interstitialAd = InterstitialAd(
adUnitId: 'YOUR_INTERSTITIAL_AD_UNIT_ID', // 替换为你的插页式广告单元 ID
listener: AdListener(
onAdLoaded: (Ad ad) {
print('Interstitial Ad loaded.');
},
onAdFailedToLoad: (Ad ad, LoadAdError error) {
print('Interstitial Ad failed to load: $error');
},
onAdClosed: (Ad ad) {
print('Interstitial Ad closed.');
},
),
)..load();
}
void _showInterstitialAd() {
if (_interstitialAd != null) {
_interstitialAd!.show();
}
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Interstitial Ad Example'),
),
body: Center(
child: ElevatedButton(
onPressed: _showInterstitialAd,
child: Text('Show Interstitial Ad'),
),
),
);
}
}
5. 显示原生广告
要显示原生广告,可以使用 NativeAd
类。
import 'package:adpie_sdk/adpie_sdk.dart';
import 'package:flutter/material.dart';
class NativeAdExample extends StatefulWidget {
[@override](/user/override)
_NativeAdExampleState createState() => _NativeAdExampleState();
}
class _NativeAdExampleState extends State<NativeAdExample> {
NativeAd? _nativeAd;
[@override](/user/override)
void initState() {
super.initState();
_loadNativeAd();
}
void _loadNativeAd() {
_nativeAd = NativeAd(
adUnitId: 'YOUR_NATIVE_AD_UNIT_ID', // 替换为你的原生广告单元 ID
listener: AdListener(
onAdLoaded: (Ad ad) {
print('Native Ad loaded.');
setState(() {});
},
onAdFailedToLoad: (Ad ad, LoadAdError error) {
print('Native Ad failed to load: $error');
},
onAdClosed: (Ad ad) {
print('Native Ad closed.');
},
),
nativeAdOptions: NativeAdOptions(
adChoicesPlacement: AdChoicesPlacement.topRight,
),
)..load();
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Native Ad Example'),
),
body: _nativeAd == null
? Center(child: Text('Loading Native Ad...'))
: AdWidget(ad: _nativeAd!),
);
}
}