经过调研和技术验证市场主流的聚合广告平台如穿山甲、字节跳动、腾讯广告、广点通、优量汇等均不支持对接个人开发者。最终找到一家可以个人开发者的对接平台 口袋工厂
注册流程根据官方的引导步骤即可,最终会得到平台提供的 appid 和 广告平台ID
flutter 中使用第三方聚合SDK flutter_pangle_ads
,下面以最新版SDK实现广告对接
安装
flutter_pangle_ads
初始化实例并设置开屏广告
在 main.dart
中配置 开屏广告
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'app/routes/app_pages.dart';
import 'package:flutter_pangle_ads/flutter_pangle_ads.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
setAdEvent();
init().then((value) {
if (value) {
FlutterPangleAds.showSplashAd(
"xxx", // 广告位ID
timeout: 3.5,
);
}
});
runApp(
GetMaterialApp(
title: "Application",
initialRoute: AppPages.INITIAL,
getPages: AppPages.routes,
theme: ThemeData(
useMaterial3: true,
colorScheme: ColorScheme.fromSeed(
seedColor: const Color.fromRGBO(89, 32, 228, 1),
brightness: Brightness.light,
),
)
),
);
}
/// 初始化广告 SDK
Future<bool> init() async {
bool result = await FlutterPangleAds.initAd(
"xxx", // 应用APPID
directDownloadNetworkType: [
NetworkType.kNetworkStateMobile,
NetworkType.kNetworkStateWifi,
],
);
print("广告SDK 初始化${result ? '成功' : '失败'}");
// 打开个性化广告推荐
FlutterPangleAds.setUserExtData(personalAdsType: '1');
return result;
}
// 设置广告监听
Future<void> setAdEvent() async {
FlutterPangleAds.onEventListener((event) {
print("event---- ${event.action}");
if(event.action == "onAdComplete"){
/**只有奖励模块下,才会触发播放完成回调;开屏广告不会触发*/
print("广告播放完成");
}
});
}
全屏广告位实例
FlutterPangleAds.showFullScreenVideoAd("xxx"); // 广告位ID