中文
登录
后可查看全部文档
GroMore/开发测试/GroMore Android集成文档/GroMore Android SDK接入文档/信息流广告接入
信息流广告接入
最近更新 2026-03-19 17:01:42

一、简介

SDK为接入方提供了可自定义布局的信息流广告,包含大图、小图、组图和视频以及模板等五种基本样式类型(具体的布局摆放可自行定义),及电话拨打、应用下载、跳转到落地页、跳转到浏览器四种交互类型。

注意事项

  • 广告请求
    • 聚合SDK是通过广告位ID发起广告请求的,切记不要使用混淆。
    • 广告接入前需要明确各ADN对应聚合SDK广告样式情况,以确保正确完成广告接入,避免由于广告类型不匹配导致接入报错等情况的发生。
    • 由于各广告平台对于包名校验规则不同,需确保在穿山甲媒体平台填写的包名符合各ADN平台规范,避免由于包名校验不匹配导致的无广告返回情况的产生。
    • 广告请求时机,建议在收到SDK初始化成功回调后发起广告请求。当SDK初始化回调一直失败时,建议首先明确应用ID及广告位ID是否赋值正确、是否有多余空格、是否是网络不稳定导致的超时等。当排查后无法定位问题时,建议通过抓包将config字段下的加密内容提供过来,协助定位问题。
    • 由于各广告平台对于包名校验规则不同,需确保在穿山甲媒体平台填写的包名符合各ADN平台规范,避免由于包名校验不匹配导致的无广告返回情况的产生。
    • setImageAcceptedSize 接口单位为 px。
  • 广告展示
    • 如若针对展示失败有重试机制,建议只重试一次即可,避免无限重试引发死循环场景。
    • 自渲染类型广告,在展示广告View时,广告元素如title、下载button等相关的控件,它们的父类必须使用FrameLayout布局,否则将会影响广告点击计费事件。视频类容器也需要使用FrameLayout布局,否则可能会影响展示或者展示计费事件。
    • onRenderSuccess方法内返回的view为null需要通过getAdView获取view,详见下方示例。

二、构建请求参数

1、使用示例

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

复制

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

复制

2、接口说明

  • AdSlot.Builder说明

方法名

说明

setCodeId(String codeId)

聚合广告位ID

setAdCount(int adCount)

加载广告数,最多不超过3个

setImageAcceptedSize(int width, int height)

自渲染设置宽高,单位px

setExpressViewAcceptedSize(float width, float height)

模板设置宽高,单位dp

setUserID(String userID)

用户的唯一标识,非必传,主要用来方便后续问题排查

setMediationAdSlot(MediationAdSlot mediationAdSlot)

设置聚合广告请求参数

  • MediationAdSlot.Builder 说明

方法名

说明

setMuted(boolean var1)

设置静音

setVolume(float var1)

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

setUseSurfaceView(boolean var1)

是否使用SurfaceView

setExtraObject(String var1, Object var2)

设置额外参数,不设置则使用ADN默认值


例如:

.setExtraObject(MediationConstant.KEY_GDT_VIDEO_OPTION,new VideoOption.Builder().setAutoPlayMuted(true).build()) //设置GDT广告视频相关配置,比如静音功能


.setExtraObject(MediationConstant.KEY_GDT_NATIVE_LOGO_PARAMS,new FrameLayout.LayoutParams(80, 80, Gravity.BOTTOM | Gravity.RIGHT)) //设置GDT自渲染信息流广告logo位置

setBidNotify(boolean var1)

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

setScenarioId(String var1)

广告场景ID

三、请求广告

1、使用示例

调用loadFeedAd(adSlot, new TTAdNative.FeedAdListener() 异步加载广告。

注意:点击事件注册时机在广告render之前,否则会影响展示、点击的数据上报。

复制

2、接口说明

  • TTAdNative.FeedAdListener广告加载监听

方法名

说明

onFeedAdLoad(List list)

广告加载成功,多个广告对象以数组返回

onError(int errorCode, String message)

广告加载失败

四、展示广告

1、使用示例

为了确保播放流程建议在广告加载成功onFeedAdLoad(List<TTFeedAd> list)回调后调用广告展示并判断isReady状态。

聚合信息流场景支持模板和自渲染广告混出,展示前可通过 mTTFeedAd.getMediationManager().isExpress()//true为模板广告,false为自渲染广告

复制

2、接口说明

  • TTFeedAd 说明

方法名

说明

String getTitle()

广告标题

String getDescription()

广告描述

String getButtonText()

广告创意按钮文案

int getAppScore()

广告app评分

String getSource()

广告来源

List getImageList()

广告图片Image list,返回的list可能为0个

int getInteractionType()

原生广告交互类型

int getImageMode()

原生广告图片模式

ComplianceInfo getComplianceInfo()

应用下载相关信息

TTAdDislike getDislikeDialog(Activity activity)

得到Dislike dialog,建议传当前activity,否则可能会影响dislike对话框弹出

DownloadStatusController getDownloadStatusController()

下载状态控制器

void setDownloadListener(TTAppDownloadListener downloadListener)

设置下载监听器

View getAdView()

模板类型获取广告View

Map<String, Object> getMediaExtraInfo()

返回广告额外信息

void render()

渲染模板广告,渲染成功后通过getAdView()可获取到渲染成功的广告

void setExpressRenderListener(ExpressRenderListener expressRenderListener)

设置模板渲染回调监听

void setDislikeCallback(Activity activity, TTAdDislike.DislikeInteractionCallback dislikeInteractionCallback)

设置dislike监听

void destroy()

资源释放

MediationNativeManager getMediationManager()

获取聚合广告信息

void setVideoAdListener(VideoAdListener videoAdListener)

设置Video监听

CustomizeVideo getCustomVideo()

自渲染信息流广告,开发者可自定义播放器

int getAdViewWidth()

View宽

int getAdViewHeight()

View高

void setVideoRewardListener(VideoRewardListener videoRewardListener)

聚合场景不支持

double getVideoDuration()

Video时长(聚合场景支持穿山甲,gdt,ks,baidu,mtg)

void setDislikeDialog(TTDislikeDialogAbstract dialog)

设置自定义Dislike(聚合场景不支持)


void setActivityForDownloadApp(Activity activity)

兼容下载类广告,使用activity申请权限(聚合场景仅支持穿山甲)

void registerViewForInteraction(ViewGroup container, View clickView, AdInteractionListener listener)

自渲染交互注册入口 *@param container 渲染广告最外层的ViewGroup *@param clickViews 可点击的View的列表*@param listener 点击回调

void registerViewForInteraction(ViewGroup container, List clickViews, List creativeViews, AdInteractionListener listener)

自渲染交互注册入口

*@param container 渲染广告最外层的ViewGroup *@param clickViews 可点击的View的列表*@param creativeViews 用于下载或者拨打电话的View *@param listener 点击回调

void registerViewForInteraction(ViewGroup container, List clickViews, List creativeViews, View dislikeView, AdInteractionListener listener)

自渲染交互注册入口 *@param container 渲染广告最外层的ViewGroup *@param clickViews 可点击的View的列表 *@param creativeViews 用于下载或者拨打电话的View *@param dislikeView dislike按钮 *@param listener 点击回调

void registerViewForInteraction(ViewGroup container, List imageViews, List clickViews, List creativeViews, View dislikeView, AdInteractionListener listener)

自渲染交互注册入口 *@param container渲染广告最外层的ViewGroup *@param imageViews imageView列表*@param clickViews 可点击的View的列表*@param creativeViews用于下载或者拨打电话的View *@param dislikeView dislike按钮*@param listener 点击回调

void registerViewForInteraction(ViewGroup container, List imageViews, List clickViews, List creativeViews, List directDownloadViews, View dislikeView, AdInteractionListener listener)

自渲染交互注册入口 *@param container 渲染广告最外层的ViewGroup *@param imageViewsimageView列表*@param clickViews 可点击的View的列表*@param creativeViews 用于下载或者拨打电话的View * @param directDownloadViews 用于前置展示五要素点击直接下载的view *@param dislikeView dislike按钮*@param listener 点击回调

void registerViewForInteraction(Activity activity,ViewGroup container,List clickViews,List creativeViews,List directDownloadViews,AdInteractionListener listener,MediationViewBinder viewBinder)

自渲染交互注册入口 * @param activity 广告将要展示所在的activity * @param container 渲染广告最外层的ViewGroup * @param clickViews 可点击的View的列表* @param creativeViews 用于下载或者拨打电话的View * @param directDownloadViews 用于前置展示五要素点击直接下载的view * @param listener 点击回调 * @param viewBinder 视图绑定对象

TTAdDislike getDislikeDialog(TTDislikeDialogAbstract dialog)

自定义Dislike dialog(聚合场景不支持)

DislikeInfo getDislikeInfo()

获得Dislike相关信息(聚合场景不支持)

TTImage getIcon()

广告图标Image

int getAppSize()

广告app大小(聚合场景不支持)

TTImage getVideoCoverImage()

当为视频广告时,返回视频封面图对象(聚合场景支持穿山甲,ks)

Bitmap getAdLogo()

获取广告logo

int getAppCommentNum()

广告app评论数(聚合场景仅支持穿山甲)

  • MediationExpressRenderListener模板渲染回调说明

方法名

说明

void onRenderSuccess(View view, float width, float height, boolean isExpress)

模板渲染成功

void onRenderFail(View view, String msg, int code)

渲染失败

void onAdClick()

点击回调

void onAdShow()

展示回调

  • TTNativeAd.AdInteractionListener 自渲染回调说明

方法名

说明

void onAdClicked(View view, TTNativeAd ad)

广告点击的回调,View 无效返回值为null

void onAdCreativeClick(View view, TTNativeAd ad)

创意广告点击回调,View 无效返回值为null

void onAdShow(TTNativeAd ad)

广告展示回调,每个广告仅回调一次

  • ComplianceInfo 说明 自渲染获取合规信息七要素

方法名

说明

getAppName()

获取应用名称,用于在合规展示(如隐私弹窗、信息公示页)中标明当前应用的名称

getAppVersion()

获取应用版本号,用于在合规信息中展示当前 App 的版本信息

getDeveloperName()

获取开发者名称(公司或个人主体),用于主体信息公示

getPrivacyUrl()

获取隐私政策链接地址,用于跳转到完整隐私政策文档

getPermissionsMap()

获取应用使用的系统权限映射表,通常 key 为权限名、value 为用途说明,用于权限使用目的的合规展示

getPermissionUrl()

获取权限使用说明页面链接,用于集中展示权限列表及其用途说明

getFunctionDescUrl()

获取功能说明页面链接,用于展示应用及相关功能的详细描述与使用场景

getRegNumber()

获取备案号/注册号等合规编号信息(如ICP备案号、网文号等)

getRegUrl()

获取备案信息查询或展示页面的链接地址,用于跳转查看详细备案信息

五、广告行为监听

*有自渲染广告必须处理

调用registerViewForInteraction注册广告点击行为涉及广告计费,必须正确调用convertView必须使用ViewGroup

加载到信息流/Draw广告后,接入方需要注册在信息流广告中可以点击的View,即ad.registerViewForInteraction()方法,以实现广告的功能交互及计费。包含图文点击区域的注册和创意按钮点击区域的注册。对于落地页广告,用户点击图文广告区域会跳转到相应的落地页,点击附加创意区域会进行电话拨打、应用下载等操作。

  • 如果需要点击图文区域也能进行下载或者拨打电话动作,请将图文区域的view传入creativeViewList,详细代码如下
  • 注册点击View示例的示例代码如下,该示例片段在Demo的BaseAdapter getView()方法中调用。
  • void registerViewForInteraction(ViewGroup var1, List<View> var2, List<View> var3, List<View> var4, View var5, TTNativeAd.AdInteractionListener var6); ViewGroup var1和List<View> var2不能为空,否则会存在线上崩溃异常场景。

1、使用示例

复制

2、接口说明

  • AdInteractionListener

方法

说明

onAdClicked()

点击普通区域回调

onAdCreativeClick()

点击创意区域回调

onAdShow()

广告展示回调

六、设置dislike弹框

1、使用示例

复制

2、接口说明

  • TTAdDislike 说明

方法名

说明

void showDislikeDialog()

展示Dislike dialog

void setDislikeInteractionCallback(DislikeInteractionCallback dislikeInteractionCallback)

设置Dislike选中时的回调

void setDislikeSource(String dislikeSource)

设置Dislike的来源(聚合场景不支持)

void resetDislikeStatus()

重置Dislike状态(聚合场景不支持)

boolean isShow()

当前是否显示(聚合场景不支持)

  • TTAdDislike.DislikeInteractionCallback 说明

方法名

说明

void onSelected(int position, String value, boolean enforce)

选择原因,enforce无效默认false

void onShow()

Dislike show

void onCancel()

点击取消

七、视频播放监听

1、使用示例

复制

2、接口说明

  • VideoAdListener说明

方法名

说明

void onVideoLoad(TTFeedAd ad);

视频广告加载成功

void onVideoError(int errorCode, int extraCode)

视频播放失败

void onVideoAdStartPlay(TTFeedAd ad)

视频广告开始播放

void onVideoAdPaused(TTFeedAd ad)

视频广告暂停

void onVideoAdContinuePlay(TTFeedAd ad)

视频广告继续播放

void onProgressUpdate(long current, long duration)

视频广告播放进度

void onVideoAdComplete(TTFeedAd ad)

视频广告播放完成

八、获取展示后广告信息示例

1、使用示例

复制

2、接口说明

  • MediationNativeManager 说明

方法名

说明

boolean isReady()

当前广告是否可以展示

MediationAdEcpmInfo getShowEcpm()


为了确保数据的准确性,强烈建议在展示后获取展示广告的详细信息,包括广告位类型-getRitType、流量分组ID-getSegmentId、AB实验分组ID-getABTestId、渠道名称-getChannel、子渠道名称-getSubChannel、场景ID-getScenariold、价格-getEcpm、ADN平台-getSdkName

List<MediationAdLoadInfo> getAdLoadInfo()

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

boolean hasDislike()

是否需要Dislike弹窗

void setUseCustomVideo(boolean useCustomVideo)

设置是否是开发者自己进行视频播放,仅支持对外提供视频url的adn,要注意有些adn需要申请白名单

void setShakeViewListener(MediationShakeViewListener listener)

摇一摇监听

boolean isExpress()

是否为模板广告

  • MediationAdEcpmInfo说明

方法名

说明

Map<String, String> getCustomData()

自定义参数

String getSdkName()

获取SDK名称

String getCustomSdkName()

获取自定义ADN名称

String getSlotId()

获取代码位ID

String getLevelTag()

获取多阶底价标签

String getEcpm()

获取价格

int getReqBiddingType()

获取bidding类型

String getErrorMsg()

获取错误信息

String getRequestId()

获取请求标识

String getRitType()

获取代码位类型

String getSegmentId()

获取流量分组ID

String getChannel()

获取渠道

String getSubChannel()

获取子渠道

String getAbTestId()

获取AB测试ID

String getScenarioId()

获取场景ID

九、销毁广告

已经展示过且不再使用的广告需要在合适的时机调用destroy方法及时对广告进行销毁,避免内存异常场景。

复制

十、示例代码

复制

FeedAdUtils.java信息流工具类示例

复制

本篇目录
联系我们