English
Log In
You can then view all documents
GroMore/开发测试/GroMore Harmony集成文档/Draw信息流广告
Draw信息流广告
Last updated 2026-03-19 17:03:31

一、简介

draw视频广告的展示场景一般在应用的视频流中进行展示,广告内容与应用其他内容区分开,防止意外点击。

二、配置说明

支持模板渲染和原生广告自渲染

三、原生自渲染广告

1. 构建请求参数

1.1 使用示例

初始化广告创建器

复制

构建广告请求参数AdSlot

复制

1.2 接口说明

方法

是否必填

类型

说明

setCodeId(codeId:string)

string

您在平台上申请的代码位Id,以9开头9位数字

setAdCount(adCount:number)

number

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

setAcceptSize(350, 300)

number

广告UI size,默认单位vp

2. 请求及展示广告

2.1 使用示例

广告加载:在调用loadDrawAd加载广告后,可在drawLoadListener的回调中处理相关逻辑。

复制

广告展示:在收到onDrawAdLoad回调后通过NodeContainer容器加载广告信息,如广告图片、视频view,标题,描述等需自定义渲染,详细代码见Demo的DrawNativeAdPage文件。

图片展示:展示图片广告时,可以通过getImageList(): ArrayList<CSJImage>|undefine获取图片,并自定义渲染。

注意:自定义图片类型需要通过图片对象本身CSJImage获取宽getWidth()getHeight

复制

2.2 接口说明

  • CSJDrawAdListener

方法

参数

说明

onDrawAdLoad(ads:ArrayList<CSJDrawAd> )

ads:广告信息列表CSJDrawAd:信息流广告对

广告基础信息加载完成,此方法是回调后是广告可调用展示的最早时机

onError(code: number, message: string)

code:错误码message:错误信息

若加载中出错,会回调此方法

  • CSJDrawAd

方法

说明

getTitle()

广告标题

getDescription()

广告描述

getButtonText()

广告创意按钮文案

getAppScore()

广告app评分

getSource()

广告来源

getInteractionType()

原生广告交互类型,返回值为number类型:3跳落地页;4调起或下载。

getImageMode()

原生广告图片模式

getComplianceInfo()

应用下载相关信息

getDislikeDialog():

得到Dislike dialog

getAdComponent()

获取广告UI组件

getMediaExtraInfo()

返回广告额外信息

render(context: UIContext)

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

destroy()

资源释放

getVideoDuration()

获取视频播放时长

getAdViewWidth()

View宽

getAdViewHeight()

View高

getIcon()

广告图标Image

getVideoCoverImage()

当为视频广告时,返回视频封面图对象

getAdLogo()

获取穿山甲logo

getAppCommentNum()

广告app评论数

getImageList(): ArrayList<CSJImage>|undefined;

返回图片列表

getFilterWords()

获得Dislike相关信息,即获得负反馈词组

isExpressAd()

判断是否为模板广告

setAdInteractionListener(listener: CSJAdInteractionListener)

设置广告交互监听,如广告展示,点击等行为

setDislikeCallback(callback: CSJDislikeInteractionCallback)

设置dislike监听

setDrawVideoListener(videoAdListener: CSJDrawVideoListener)

设置Video监听,如视频播放,暂停播放等行为

setPauseIcon(pauseIcon: PixelMap | ResourceStr, size: number)

设置暂停图标和大小,单位vp, 大小范围20 到 200之间,默认为 50

onAdClick(clickType: number, eventClick: ClickEvent)

logo点击;
clickType:CSJConstant.TYPE_CLICK_LOGO 点穿山甲Logo事件

setCanInterruptVideoPlay(canInterruptVideoPlay: boolean)

设置是否允许视频区域响应点击,并且暂停/继续播放, true 可以影响点击, 默认为false

registerViewForInteraction(rootAdComponentId: string, uiContext: UIContext, clickViewIds: CSJArrayList<string>, creativeViewIds: CSJArrayList<string>): void;

注册点击计费事件和交互回调,详细说明请参考3.3 注册Draw自渲染广告计费事件模块说明
参数说明@param rootAdComponentId: 广告布局根节点Id@param uiContext : 当前组件的上下文@param clickViewIds : 普通点击Id集合@param creativeViewIds: 创意点击Id集合

  • CSJDislikeInteractionCallback

方法

说明

onShow()

dislike 弹窗show

onSelected: (position: number, value: string, enforce: boolean)

Dislike 条目被选中
position:条目的index,value:条目的内容,enforce:是否强制关闭广告

onCancel()

Dislike 弹窗取消;

setCustomDislikeComponent(customDislikeBuilder: WrappedBuilder<[ fwList: Array<FilterWord>, onSelected: (filterPosition: number, filterName: string) => void, onOtherSuggestComment: (suggestionValue: string) => void, onUserSuggestDialogCancel: (commentValue: string) => void]>): void;

自定义Dislike 设置

3. 注册Draw自渲染广告计费事件(重要)

通过registerViewForInteraction方法注册原生自渲染广告计费事件和交互事件,方法说明如下,其中CSJArrayList类为CSJ提供的集合容器继承自ArrayList;该容器主要作用是收集注册点击事件的UI组件Id;具体用法详见Demo的DrawNativeAdPage文件中buildAdLayout方法。

注意:UI组件id在应用中必须保持唯一(华为鸿蒙官方要求)

registerViewForInteraction中不再提供CSJAdInteractionListener回调监听设置;请通过广告对象的setAdInteractionListener()方法设置。

复制

注册案例:

复制

4. 监听广告交互状态(可选)

4.1 使用示例

调用展示广告前,通过ad?.setAdInteractionListener()创建广告交互监听器,用于获取广告展示、点击等交互状态。

复制

4.2 接口说明

方法

参数

说明

onAdShow(ad: CSJNativeAd)

ad:广告对象

广告展示

onAdClicked(ad: CSJNativeAd)

ad:广告对象

广告被用户点击普通区域回调,如标题,描述等

onAdCreativeClick(ad: CSJNativeAd)

ad:广告对象

广告被用户点击创意区域回调,如下载button

5. 监听广告视频交互状态(可选)

5.1 使用示例

如果是视频类型广告,在调用展示广告前可以创建广告视频监听器CSJDrawVideoListener,用于实时获取广告视频的播放状态。

复制

5.2 接口说明

  • CSJDrawVideoListener

方法

参数

说明

onVideoLoad()


视频加载完成

onVideoAdStartPlay()


视频开始播放第一帧

onVideoAdPaused()


视频暂停播放

onVideoAdContinuePlay()


视频继续播放

onProgressUpdate(current: number, duration: number)

current:当前播放进度,duration:视频总时间长

视频播放进度

onVideoAdComplete()


视频播放完成

onVideoError(errorCode: number, errorMsg: string)

errorCode:错误码,msg:错误信息

视频加载失败

onClickReplay()


点击视频重播按钮

6. 资源

穿山甲原生自渲染Draw广告请参考demo中的DrawNativeAdPage.ets类接入示例,聚合维度Draw广告请参考demo中的mediation_adtype/draw/DrawAdPage.ets类接入示例。

四、模板Draw信息流广告

1. 构建广告请求

1.1 使用示例

初始化广告创建器

复制

构建广告请求参数AdSlot

复制

1.2 接口说明

方法

是否必填

类型

说明

setCodeId()

String

您在平台上申请的代码位Id,以9开头9位数字

setAcceptSize(350, 300)

number

广告UI size,默认单位vp

2. 请求与展示广告

2.1 使用示例

调用loadExpressDrawAd加载广告后,可在NativeExpressAdListener的回调中继续处理相关逻辑。

复制

展示广告时需要通过NodeContainer容器承载广告模板UI,详细代码见Demo的DrawExpressAdPage文件,广告加载成功之后并在展示之前,需要调用 ad.render(this.getUIContext())方法渲染广告,渲染成功后方可展示。

复制

2.2 接口说明

  • NativeExpressAdListener

方法

参数

说明

onNativeExpressAdLoad: (ads: ArrayList<CSJNativeExpressAd>)

ads:广告信息列表
CSJNativeExpressAd:信息流模板广告对象

广告基础信息加载完成,此方法是回调后是广告可调用展示的最早时机

onError(code: number, message: string)

code:错误码
message:错误信息

若加载中出错,会回调此方法

  • CSJNativeExpressAd 接口说明

方法

说明

getInteractionType()

原生广告交互类型,返回值为number类型:3跳落地页;4调起或下载。

getImageMode()

原生广告样式模式:大图,组图,视频,三图,小图

getDislikeDialog()

得到Dislike dialog

getAdComponent()

获取广告UI组件

getMediaExtraInfo()

返回广告额外信息

setCanInterruptVideoPlay()

展示广告之前设置setCanInterruptVideoPlay为true即可实现点击后暂停

render(context: UIContext)

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

destroy()

资源释放

getFilterWords()

获得Dislike相关信息,即获得负反馈词组

setExpressInteractionListener(listener: ExpressAdInteractionListener)

设置交互监听器

setDislikeCallback(callback: CSJDislikeInteractionCallback)

设置dislike监听

setVideoAdListener(videoAdListener: ExpressVideoAdListener)

设置Video监听

3. 监听广告交互状态(可选)

3.1 使用示例

在调用展示广告前,创建广告交互监听器,用于实时获取广告展示、点击等行为。

复制

3.2 接口说明

方法

参数

说明

onAdShow(type: number)

type:广告交互类型

广告展示

onAdClicked(type: number)

type:广告交互类型

广告被用户点击回调

onRenderSuccess: (width: number, height: number)

width & height 广告宽高大小

在调用广告的render方法后,广告渲染成功,会回调该方法,此时表示广告已准备好,待展示

onRenderFail: (code: number, msg: string)

code:渲染错误码,
msg:渲染错误信息

模板渲染失败

4. 监听广告视频交互状态(可选)

4.1 使用示例

调用展示广告前,如果是视频类型广告,可以创建广告视频监听器,用于实时获取广告视频的播放状态。

复制

4.2 接口说明

方法

参数

说明

onVideoLoad()


视频加载完成

onVideoAdStartPlay()


视频开始播放第一帧

onVideoAdPaused()


视频暂停播放

onVideoAdContinuePlay()


视频继续播放

onProgressUpdate(current: number, duration: number)

current:当前播放进度

duration:视频总时间长

视频播放进度

onVideoAdComplete()


视频播放完成

onVideoError(errorCode: number, errorMsg: string)

errorCode:错误码

msg:错误信息

视频加载失败

5. 资源

穿山甲模版Draw广告请参考demo中的adtype/draw/DrawExpressAdPage.ets类接入示例。

五、聚合功能说明

1. 广告加载差异

聚合功能通过mAdCreator.loadDrawAd 加载信息流广告,暂不支持mAdCreator.loadExpressDrawAd在调用加载广告后,可在CSJDrawAdListener的回调中继续处理相关逻辑。

复制

2. 自渲染&模版混出场景

2.1 使用示例

加载广告

复制

展示广告 (原生自渲染广告需要注册计费事件):

  • 注册计费事件: ad.registerViewForInteraction(rootComponentId, this.getUIContext(), clickViewIds, creativeViewIds)在调用ad.render(this.getUIContext())后,通过ad.isExpressAd()来判断展示的广告时自渲染还是模板 (具体参考demo)
复制

onDrawAdLoad后获取广告展示基本信息

复制

2.2 接口说明

  • CSJDrawAd说明

方法

返回值

说明

getMediationAdInfo()

object | undefined

返回聚合相关信息

  • MediationAdEcpmInfo说明

方法

返回值

说明

getAdnName()

string

返回展示广告的adn名称

getAdnRitId()

string

返回展示广告的adn代码位

getEcpm()

number

返回展示广告的价格

getBiddingType()

number

返回展示广告的竞价类型0为普通广告位,1 client竞价广告 2 server竞价广告 100 P层数据

getRitType()

string

返回展示广告的广告类型"Banner" "Splash" "RewardVideo" "FullVideo" "Native" "Draw" "Interstitial" "InterstitialFull"


Contents
Contact us