English
Log In
You can then view all documents
GroMore/开发测试/GroMore Android集成文档/GroMore Android SDK接入文档/激励视频广告接入
激励视频广告接入
Last updated 2026-04-28 10:39:34

一、简介

本SDK为接入方提供激励视频广告,该广告的效果为观看完毕视频广告,发放奖励给用户。使用场景包括但不限于:

  1. 游戏等应用内观看视频广告获得游戏内金币等:用户必须观看完整视频才能获取奖励。
  2. 积分类应用接入;支持的广告尺寸:全屏横屏播放和竖屏。

注意:

  • 多进程配置:多进程可在初始化时设置.supportMultiProcess(true),默认false;注意:开启多进程开关时需要将ADN的多进程也开启,否则广告展示异常,影响收益。穿山甲、广点通无需额外设置,快手、百度、Sigmob需要在清单文件中配置各家ADN激励全屏xxxActivity属性android:multiprocess="true"。
  • 广告请求:
    • 聚合SDK是通过广告位ID(一个广告位下包含多个代码位)发起广告请求的,切记不要使用混淆。
    • 在广告接入前需要明确各ADN对应聚合SDK广告样式情况,以确保正确完成广告接入,避免由于广告类型不匹配导致接入报错等情况的发生。
    • 建议在收到SDK初始化成功回调后发起广告请求,当SDK初始化回调一直失败时,建议首先明确应用ID及广告位ID是否赋值正确、是否有多余空格、是否是网络不稳定导致的超时等,当排查后无法定位问题时,建议通过抓包将config字段下的加密内容提供过来,我方协助定位问题。
    • 由于各广告平台对于包名校验规则不同,需确保在穿山甲媒体平台填写的包名符合各ADN平台规范,避免由于包名校验不匹配导致的无广告返回情况的产生。
  • 广告展示:
    • 为了保证播放流畅,建议在收到onRewardVideoCached(TTRewardVideoAd ttRewardVideoAd)之后进行广告展示,广告展示前可通过isReady来判断当前广告是否可用。
    • 如若针对展示失败有重试机制,建议只重试一次即可,避免无限重试引发死循环场景。
    • 当展示失败/回调监听不执行时,建议检查是否有广告对象被覆盖或者被提前释放的场景导致,每次发起广告请求时,需要重新创建新的广告来调用广告请求方法。
    • onVideoComplete()视频播放完整回调和onAdVideoBarClick()点击回调不是所有ADN都会触发,如若在此回调内有相关逻辑处理或者打点统计需注意。
  • 奖励下发:
    • 开启聚合SDK的服务端奖励验证功能后,请不要在第三方ADN重复配置这些代码位的服务端验证,否则可能会导致奖励发放冲突出现问题。

二、构建请求参数

1. 使用示例

使用初始化后的TTAdManager对象,创建广告请求对象TTAdNative。

复制

创建广告请求AdSlot,用于请求广告前,传递部分广告配置参数。

复制

2. 接口说明

  • AdSlot.Builder说明

方法名

说明

setCodeId(String codeId)

聚合广告位ID,聚合场景,需传以1开头的广告位id,SDK内部会自行请求开发者在瀑布流下配置的代码位ID

setOrientation(@TTAdConstant.ORIENTATION_STATE int orientation)

设置横竖屏方向,建议和创建的代码位的横竖屏保持一致,否则可能会展示异常

setUserID(String userID)

用户唯一标识,使用服务端奖励验证回调时,当达到奖励下发条件后穿山甲会通过开发者提供的回调链接透传开发者请求广告时传入的userId,开发者服务端判断是否下发奖励

setMediationAdSlot(MediationAdSlot mediationAdSlot)

设置聚合广告请求参数

  • MediationAdSlot.Builder 说明

方法名

说明

setMuted(boolean var1)

设置静音

setVolume(float var1)

设置音量范围0~1;静音设置为0

setUseSurfaceView(boolean var1)

是否使用SurfaceView

setExtraObject(String var1, Object var2)

设置额外参数

使用gromore服务端奖励验证(广告位维度)透传自定义参数时应使用setExtraObject(MediationConstant.KEY_GroMore_EXTRA, "自定义参数")

setBidNotify(boolean var1)

bidding类型广告,竞价成功或者失败后是否通知对应的ADN

setScenarioId(String var1)

广告场景ID,用于标记该广告所在的业务场景(如某个页面或功能位),非必传

setRewardName(String var1)

设置激励名称,Gromore会在请求开发者服务端奖励回调URL拼接相关参数

setRewardAmount(int var1)

设置激励金额,Gromore会在请求开发者服务端奖励回调URL拼接相关参数

三、请求广告

1. 使用示例

调用TTAdNative.loadRewardVideoAd(adSlot, adLoadListener) 加载广告。

复制

2. 接口说明

  • TTAdNative.RewardVideoAdListener说明

方法名

说明

void onRewardVideoAdLoad(TTRewardVideoAd ad)

加载完成的回调

void onRewardVideoCached()

广告视频本地加载完成的回调,即将废弃

void onRewardVideoCached(TTRewardVideoAd ad)

广告视频本地加载完成的回调

void onError(int code, String message)

加载失败回调

四、展示广告

1. 使用示例

为了确保播放流程建议在onRewardVideoCached(TTRewardVideoAd ttRewardVideoAd)回调后调用广告展示并判断isReady状态。

复制

2. 接口说明

  • TTRewardVideoAd说明

方法名

说明

void setRewardAdInteractionListener(RewardAdInteractionListener listener)

设置激励事件监听

void showRewardVideoAd(Activity activity)

展示激励广告

Map<String, Object> getMediaExtraInfo()

返回广告额外信息

void showRewardVideoAd(Activity activity, TTAdConstant.RitScenes ritScenes, String scenes)

展示广告,ritScenes, scenes参数不生效

MediationRewardManager getMediationManager()

获取聚合广告信息

long getExpirationTimestamp()

过期时间戳(聚合场景不支持)

int getRewardVideoAdType()

广告真实类型(聚合场景不支持)

void setShowDownLoadBar(boolean showDownLoadBar)

聚合场景不支持

int getInteractionType()

广告交互类型(聚合场景不支持)

void setDownloadListener(TTAppDownloadListener listener)

注册广告的下载回调(聚合场景不支持)

void setRewardPlayAgainInteractionListener(RewardAdInteractionListener listener)

再看一个功能(7200及以上废弃)

void setRewardPlayAgainController(RewardAdPlayAgainController listener)

再看一个功能控制器(7200及以上废弃)

  • TTRewardVideoAd.RewardAdInteractionListener说明

方法名

说明

void onAdShow()

广告展示

void onAdVideoBarClick()

广告的下载bar点击回调

void onAdClose()

广告关闭的回调

void onVideoComplete()

视频播放完毕的回调

void onVideoError()

视频播放失败的回调

void onRewardArrived(boolean isRewardValid, int rewardType, Bundle extraInfo)

激励视频播放完毕,验证是否有效发放奖励的回调

五、获取竞价结果

注意事项:

  1. 获取时机:仅支持 show 后获取展示的ADN名称、代码位、ECPM;
  2. ECPM=0:通过getEcpm获取的单位是分,若ecpm为0可以确认 ① 获取时机:是否在展示之后获取;②兜底代码位:若本次展示的是兜底代码位,则getEcpm是0;
  3. 回传竞价结果:设置为AdSlot.Builder().setMediationAdSlot(new MediationAdSlot.Builder().setBidNotify(true)后可触发receiveBidResult,开发者可在该方法中获取竞价结果、价格等信息。

1. 使用示例

复制

2. 接口说明

  • MediationRewardManager说明

方法名

说明

boolean isReady()

当前广告是否可以展示

MediationAdEcpmInfo getShowEcpm()

获取展示广告的详细信息

List <MediationAdLoadInfo> getAdLoadInfo()

load回调后获取广告加载信息

void destroy()

广告销毁

  • MediationAdEcpmInfo说明

方法名

返回值

说明

getCustomData()

Map<String, String>

自定义参数集合,一般用于透传额外业务字段(如服务端回调、自定义统计等)

getSdkName()

String

实际投放所用广告 SDK 名称,如穿山甲、GDT 等,用于识别当前流量来自哪个广告源

getCustomSdkName()

String

自定义的 ADN 名称(如在聚合侧自定义的别名),用于区分同一厂商下的不同接入或做自定义标记

getSlotId()

String

实际展示广告使用的代码位 ID,一般对应各 ADN 后台的广告位标识

getLevelTag()

String

多阶底价标签/阶梯价标签,用于标记当前展示走的是哪一档价格策略

getEcpm()

String

当前展示广告的 eCPM(单位通常为分),仅支持 show 后通过获取,可用于收入与比价分析

getReqBiddingType()

int

请求的竞价类型(如普通、Bidding),具体枚举需结合文档查看

getErrorMsg()

String

如本次加载/竞价存在错误,这里返回对应的错误信息或原因描述

getRequestId()

String

当前广告请求的唯一标识 ID,便于日志排查与联调定位问题

getRitType()

String

广告位类型(如开屏、激励视频、插屏、信息流等)的标识,用于区分不同广告形态

getSegmentId()

String

流量分组 ID,用于区分不同实验组、用户分群或分流策略,详细使用请参考>>>

getChannel()

String

流量分组渠道信息(如应用分发渠道、推广渠道等),便于按渠道维度统计与分析,详细使用请参考>>>

getSubChannel()

String

流量分组子渠道信息,相比 channel 更细粒度的分渠道标识,详细使用请参考>>>

getAbTestId()

String

AB 实验 ID,用于标记当前请求命中了哪个 AB 实验方案

getScenarioId()

String

场景 ID,用于标记该广告所在的业务场景(如某个页面或功能位)

getSubRitType()

String

子广告位类型/更细颗粒的广告形态标识,用于在同一大类广告内做进一步区分

六、销毁广告

复制

七、高级功能

1. 奖励配置说明

功能1:穿山甲激励广告增加「在广告中显示奖励内容」功能,根据开发者配置的奖励物品和数量,在激励视频广告播放过程中提示用户完成激励任务后将获取的奖励收益,以激发用户兴趣、观看更久更完整的视频广告,提升整体的CTR和收入。

功能2:若开发者使用的是Gromore的服务端奖励验证回调,请求广告时传入的奖励名称和数量会拼接在开发者在平台配置的奖励URL,开发者可根据回传的参数判断是否下发奖励

对比项

客户端奖励名称/数量设置

服务端奖励验证配置

配置位置

客户端代码(请求激励广告时设置setRewardName或setRewardAmount或穿山甲后台代码位创编页面配置

穿山甲平台广告位开启“服务端激励回调”并配置 URL 和密钥

作用对象

穿山甲用户界面展示(如挽留弹窗、奖励提示),激发用户兴趣,提高广告完整观看率及收益,受模版限制不是一定会展示

服务端奖励发放的合法性校验:当用户观看完激励视频并达到奖励条件时,服务端会将奖励名称和数量通过回调 URL 传递给开发者服务端,开发者服务端返回判断结果后,客户端会通过onRewardArrived回调获取奖励名称和数量,用于实际奖励发放。

数据流向

客户端→穿山甲 SDK→广告展示页面

穿山甲服务端→开发者服务端→客户端回调

依赖条件

需开启“在广告中显示奖励内容”开关

需开启“需要服务器判断”并配置回调接口

优先级规则

接口传入 > 平台配置

服务端返回结果决定最终奖励是否发放

1.1 使用说明

若想使用此功能,需在创建激励视频代码位时配置开启“在广告中显示奖励内容”开关。开启后您设置的奖励物品名称、奖励数量会基于模版优选逻辑将有可能在广告播放过程中展示。开发者可以通过以下两种方案配置具体显示的奖励内容。

方案一:在穿山甲平台-代码位创编页面输入奖励名称和数量。

方案二:在请求广告时使用setRewardAmount与setRewardName方法传入奖励名称和数量,详见文档「接口改动」部分。

  • 若奖励名称和数量任一为空,则认为此对值无效。
  • 奖励数量为1~5个数字整数值,奖励内容为1~10个英文字符长度的字符串。

1.2 使用示例

  • 奖励物品名称“金币”,奖励数量“500”,广告挽留弹窗提示用户继续看完视频可领取“500金币”。
  • 建议开发者配置/回传用户可真实获取的奖励内容,避免用户对奖励预期与获取产生出入。
  • 推荐开发者通过接口回传的形式,以便更灵活、动态地下发奖励,在用户粒度个性化优化收益。
复制

2. 服务端奖励验证

对比项

广告位维度【强烈推荐】

代码位维度

配置位置

GroMore 平台的广告位层级(广告位 ID 以 1 开头),需在广告位编辑页面勾选「服务端激励回调」并填入回调 URL

具体 ADN(如穿山甲)的代码位层级(代码位 ID 以 9 开头),需在对应 ADN 平台的代码位设置中开启「服务端激励回调」并配置 URL,详细配置请移步聚合ADN说明:

穿山甲广点通、百度、快手sigmob

验证逻辑

GroMore 服务端接收 ADN 的奖励事件后,统一向开发者服务端发起回调,开发者返回验证结果后,GroMore 再将结果透传给客户端(如 onRewardArrived 回调)

ADN 服务端直接与开发者服务端交互,验证结果由 ADN 客户端回调返回(如穿山甲的 nativeExpressRewardedVideoAdServerRewardDidSucceed

回调链路

所有 ADN 的奖励验证通过 GroMore 中转,支持多 ADN 统一管理,回调链路涉及多个广告网络,开发者在 GroMore 广告位设置回调后,GroMore 服务端会向开发者服务端发送验证请求

各 ADN 独立处理验证流程,不经过 GroMore 中转,直接通过自身服务端向开发者服务端发送验证请求,开发者判断后返回结果,穿山甲客户端再回调给开发者

参数传递

包含更多扩展参数,如 ecpm、广告位 id、adn 的代码位 id 等

包含 sign、user_id、trans_id、reward_amount、reward_name、extra 等基本参数,不包含 ecpm 参数

注意事项

开启聚合维度服务端验证功能后,不要在第三方 ADN 重复配置这些代码位的服务端验证

开启聚合维度服务端验证功能后,不要在第三方 ADN 重复配置这些代码位的服务端验证

八、示例代码

复制

Contents
Contact us