本文档描述了 Flutter 开发者如何集成 AD 插件(后面简称为插件),通过集成插件展示广告创造收益。 插件提供了以下几种广告形式:SplashAd(开屏广告)、RewardVideoAd(激励视频广告)、BannerAd(横幅广告)、InterstitialAd(插屏广告)等。
AppId:应用 id,18位 hex 字符串。【注意】调试时请使用测试 appId:ba0063bfbc1a5ad878;外发版本请替换成正式 appId,否则不会产生收益。
UnitId:广告位 id,广告类型缩写后紧跟从1开始的编号,如开屏广告位 s1,激励视频广告位 rv1。一般情况下使用默认的广告位 id 即可,需要分配额外的广告位时,请联系客户经理。
AdId:广告 id,全局唯一,相同素材的广告每次请求也不会重复。所有广告回调返回的参数都包含广告 id。
UserId:用户 id,接入方定义的用户唯一标识,传入时可以哈希脱敏,主要用于排查问题。
dependencies:
mobad: ^2.3.8
$ flutter packages get
或者,使用 IDE 自带的安装方法,比如 IntelliJ 中点击编辑区顶部的 “Get dependencies”
source 'https://gitee.com/mobad/Specs.git' # 自建仓库,须放在 CocoaPods 前面
source 'https://github.com/CocoaPods/Specs.git'
然后命令行运行:
$ pod install --repo-update
使用 swift 若报错:[!] The 'Pods-Runner' target has transitive dependencies that include statically linked binaries
,请参考 https://www.jianshu.com/p/10a5487d8b7e。
【安卓】编译若报方法数大于 64K 错误,请参考 https://developer.android.com/studio/build/multidex。
初始化已在原生代码中完成,请参考插件中的 example 和原生 SDK 文档,完成原生代码的相关配置。
登录时请设置 userId:
AdSdk.setUserId(userId)
退出登录请重置 userId:
AdSdk.setUserId(null)
开屏广告以 App 启动作为曝光时机,提供 5s 的可感知广告展示。用户可以点击广告跳转到目标页面;或者点击右上角的“跳过”按钮,跳转到 app 主页。
【注意】由于开屏广告需要的加载时机非常早,无法以 dart 代码的方式调起,所以原生代码已默认接入了开屏广告,请参考插件中的 example 和原生 SDK 文档。
激励视频广告是指将短视频融入到 app 场景当中,用户观看完激励视频广告后可以得到一些应用内奖励。使用场景包括但不限于: 1、游戏等应用内观看视频广告获得游戏内金币等:用户必须观看完整视频才能获取奖励; 2、积分类应用接入。
调用以下代码展示激励视频广告:
AdSdk.showRewardVideoAd(
"rv1", // 广告位 id
onAdLoad: (String id) {
},
onAdShow: (String id) {
},
onReward: (String id) {
},
onAdClick: (String id) {
},
onVideoComplete: (String id) {
},
onAdClose: (String id) {
},
onError: (String id, int code, String message) {
},
);
回调事件:
event | desc |
---|---|
onAdLoad | 广告加载成功 |
onVideoCached | 视频素材缓存成功 |
onAdShow | 广告页面展示 |
onReward | 广告激励发放 |
onAdClick | 广告被点击 |
onVideoComplete | 广告播放完毕 |
onAdClose | 广告被关闭 |
onError | 广告出错,错误详情请查看 code 和 message |
Banner 广告(横幅广告)位于 app 顶部、中部、底部任意一处,横向贯穿整个app页面;当用户与 app 互动时,Banner 广告会停留在屏幕上,并可在一段时间后自动刷新。
BannerAdView 是一个 Widget,使用方法如下:
BannerAdView(
unitId: "b1",
width: 300,
height: 300 / 6.4,
onAdLoad: (String id) {
},
onAdShow: (String id) {
},
onAdClick: (String id) {
},
onAdClose: (String id) {
},
onError: (String id, int code, String message) {
},
)
回调事件:
event | desc |
---|---|
onAdLoad | 广告加载成功 |
onAdShow | 广告页面展示 |
onAdClose | 广告被关闭 |
onAdClick | 广告被点击 |
onError | 广告出错,错误详情请查看 code 和 message |
插屏广告是移动广告的一种常见形式,在应用开流程中弹出,当应用展示插页式广告时,用户可以选择点击广告,访问其目标网址,也可以将其关闭,返回应用。
调用以下代码展示插屏广告:
AdSdk.showInterstitialAd(
"i1", // 广告位 id
onAdLoad: (String id) {
},
onAdShow: (String id) {
},
onAdClick: (String id) {
},
onAdClose: (String id) {
},
onError: (String id, int code, String message) {
},
);
回调事件:
event | desc |
---|---|
onAdLoad | 广告加载成功 |
onAdShow | 广告页面展示 |
onAdClose | 广告被关闭 |
onAdClick | 广告被点击 |
onError | 广告出错,错误详情请查看 code 和 message |