广告 AD APICloud 扩展模块接入文档

概述

本文档描述了 APICloud 开发者如何集成 AD 扩展模块(后面简称为模块),通过集成模块展示广告创造收益。 模块提供了以下几种广告形式:SplashAd(开屏广告)、RewardVideoAd(激励视频广告)、BannerAd(横幅广告)、InterstitialAd(插屏广告)等。

术语介绍

AppId:应用 id,18位 hex 字符串。【注意】调试时请使用测试 appId:ba0063bfbc1a5ad878;外发版本请替换成正式 appId,否则不会产生收益。

UnitId:广告位 id,广告类型缩写后紧跟从1开始的编号,如开屏广告位 s1,激励视频广告位 rv1。一般情况下使用默认的广告位 id 即可,需要分配额外的广告位时,请联系客户经理。

模块集成

  1. 上传自定义模块 adSdk;
  2. 在项目中添加模块 adSdk,确保已添加模块中包含 adSdk;
  3. 编译 Android 自定义 loader,编译成功后下载安装 apk 用于调试;
  4. 开发完毕后正式云打包。

模块初始化

开发者需要在 index.html 的 apiready 函数中调用以下代码来初始化模块:

var adSdk = api.require('adSdk')
adSdk.setup({
    appId: APP_ID,
	userId: userId,	// 用户 id
	debug: false // 是否调试模式,默认 false,请至少运行一次调试模式
})

登录时请设置 userId:

adSdk.setUserId({userId: userId})

退出登录请重置 userId:

adSdk.setUserId({userId: null})

推荐开发者在初始化时设置最短开屏间隔时间。如果超出此间隔时间,从后台切回 App 任意页面都会显示开屏,以提升开屏广告的曝光量:

adSdk.setMinSplashInterval({interval: 3 * 60 * 1000}) // 单位 ms

开屏广告接入

开屏广告以 App 启动作为曝光时机,提供 5s 的可感知广告展示。用户可以点击广告跳转到目标页面;或者点击右上角的“跳过”按钮,跳转到 app 主页。

开发者可在开屏页面的 apiready 函数中调用以下代码展示开屏广告:

adSdk.showSplashAd({
  logoUrl: 'https://mobi.oss-cn-shanghai.aliyuncs.com/images/slogan.png' // 底部 logo(可选)
}, function(ret, error) {
  console.log(JSON.stringify(ret))
})

回调事件:

event desc
onAdDismiss 广告结束
onError 广告出错,错误详情请查看 code 和 message

激励视频广告接入

激励视频广告是指将短视频融入到 app 场景当中,用户观看完激励视频广告后可以得到一些应用内奖励。使用场景包括但不限于: 1、游戏等应用内观看视频广告获得游戏内金币等:用户必须观看完整视频才能获取奖励; 2、积分类应用接入。

调用以下代码展示激励视频广告:

adSdk.showRewardVideoAd({
    unitId: "rv1" // 广告位 id
}, function(ret, error) {
    console.log(JSON.stringify(ret))
})

回调事件:

event desc
onAdLoad 广告加载成功
onVideoCached 视频素材缓存成功
onAdShow 广告页面展示
onReward 广告激励发放
onAdClick 广告被点击
onVideoComplete 广告播放完毕
onAdClose 广告被关闭
onError 广告出错,错误详情请查看 code 和 message

横幅广告接入

Banner 广告(横幅广告)位于 app 顶部、中部、底部任意一处,横向贯穿整个app页面;当用户与 app 互动时,Banner 广告会停留在屏幕上,并可在一段时间后自动刷新。

调用以下代码预加载 Banner 广告:

adSdk.loadBannerAd({
	unitId: "b1",   // 广告位 id
	margins: [0, 0, 0, 30] // [left, top, right, bottom]
}, function(ret, error) {
	console.log(JSON.stringify(ret))
})

调用以下代码展示 Banner 广告:

adSdk.showBannerAd({
	unitId: "b1",   // 广告位 id
	layout: "bottom",   // top | bottom
	margins: [0, 0, 0, 30] // [left, top, right, bottom]
}, function(ret, error) {
	console.log(JSON.stringify(ret))
})

回调事件:

event desc
onAdLoad 广告加载成功
onAdShow 广告页面展示
onAdClose 广告被关闭
onAdClick 广告被点击
onError 广告出错,错误详情请查看 code 和 message

调用以下代码销毁 Banner 广告:

adSdk.destroyBannerAd({
	unitId: "b1"    // 广告位 id
})

插屏广告接入

插屏广告是移动广告的一种常见形式,在应用开流程中弹出,当应用展示插页式广告时,用户可以选择点击广告,访问其目标网址,也可以将其关闭,返回应用。

调用以下代码展示插屏广告:

adSdk.showInterstitialAd({
	unitId: "i1" // 广告位 id
}, function(ret, error) {
	console.log(JSON.stringify(ret))
})

回调事件:

event desc
onAdLoad 广告加载成功
onAdShow 广告页面展示
onAdClose 广告被关闭
onAdClick 广告被点击
onError 广告出错,错误详情请查看 code 和 message