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

一、简介

模板信息流场景应在应用的内容流中与应用内容穿插展示,支持图文和视频样式,不支持开发者自行对广告样式进行渲染,可直接调用SDK相关接口获取广告view去展示。开发者在穿山甲平台进行多模板、多尺寸的勾选。信息流广告应与应用内容穿插展示并明显区分,防止意外点击。

二、配置说明

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

三、原生自渲染广告

1. 构建请求参数

1.1 请求示例

初始化广告创建器

复制

构建广告请求参数AdSlot

复制

1.2 接口说明

  • AdSlotBuilder

接口

是否必填

类型

含义

setCodeId(codeId:string)

string

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

setAdCount(adCount:number)

number

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

setSupportRenderControl(true)

boolean

在Feed原生渲染中是否支持模板信息流广告展示,平台可配置

.setAcceptSize(350, 300)

number

广告UI size,默认单位vp

2. 请求及展示广告

2.1 请求示例

开发者调用loadFeedAd加载广告后,在onFeedAdLoad方法中获取到CSJFeedAd对象后获取广告元素进行自渲染。

需要注意的是如果打开了支持模板样式开关 supportRenderControl(),需要通过设置模板加载成功监听器来确保广告可用,并调用render方法渲染广告;

复制

展示原生自渲染广告

视频展示:展示视频广告时需要通过NodeContainer容器承载广告视频UI,其它部分包括标题,描述等需自定义渲染,详细代码见Demo的FeedNativeAdPage文件。

复制

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

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

复制

2.2 接口说明

  • CSJFeedAdListener

方法

参数

说明

onFeedAdLoad(ads:ArrayList<CSJFeedAd> )

ads:广告信息列表CSJFeedAd:信息流广告对象

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

onError(code: number, message: string)

code:错误码
message:错误信息

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

  • CSJFeedAd

方法

说明

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)

设置交互监听

setExpressRenderListener( listener:ExpressRenderListener)

设置模板渲染回调监听

setDislikeCallback(callback: CSJDislikeInteractionCallback)

设置dislike监听

setVideoAdListener(videoAdListener: CSJVideoAdListener)

设置Video监听

onAdClick(clickType: number, eventClick: ClickEvent)

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

getCustomizeVideo:CSJCustomizeVideo | undefined;

获取自定义播放器。

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

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

  • CSJComplianceInfo

方法

说明

getAppName()

获取App Name

getAppVersion()

获取应用版本

getDeveloperName()

获取开发者名称

getPrivacyUrl()

获取隐私协议

getPermissionsMap()

获取权限名称及权限描述列表

getPermissionUrl()

获取权限列表url

getFunctionDescUrl()

获取产品功能url

  • CSJCustomizeVideo 说明

方法

说明

getVideoUrl: () => string;

自定义播放器获取视频播放地址

reportVideoStart: () => void;

自定义播放器,上报视频第一帧出现的埋点

reportVideoPause: (current: number) => void;

上报视频暂停埋点

reportVideoContinue: (current: number) => void;

上报视频继续播放埋点

reportVideoFinish: () => void;

上报视频正常播放结束埋点

reportVideoBreak: (current: number) => void;

上报视频播放过程中被终止的埋点

reportVideoAutoStart: () => void;

上报视频准备开始播放的埋点

reportVideoStartError: (errorCode: number, extra: number) => void;

上报视频播放前错误

reportVideoError: (current: number, errorCode: number, extra: number) => void;

上报视频播放中错误

  • CSJDislikeInteractionCallback说明

方法名

说明

onShow()

dislike 弹窗show

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

Dislike 条目被选中

position:条目的indexvalue:条目的内容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. 注册原生自渲染广告计费事件(重要)

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

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

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

3.1 使用示例

复制

注册案例:

复制

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

4.1 使用示例

在调用展示广告前,通过广告对象的setAdInteractionListener()方法创建广告交互监听器,用于实时获取广告展示状态。

复制

4.2 接口说明

接口

参数

含义

onAdShow(ad: CSJNativeAd)

ad:广告对象

广告展示

onAdClicked(ad: CSJNativeAd)

ad:广告对象

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

onAdCreativeClick(ad: CSJNativeAd)

ad:广告对象

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

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

5.1 使用示例

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

复制

5.2 接口说明

接口

参数

含义

onVideoLoad()


视频加载完成

onVideoAdStartPlay()


视频开始播放第一帧

onVideoAdPaused()


视频暂停播放

onVideoAdContinuePlay()


视频继续播放

onProgressUpdate(current: number, duration: number)

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

视频播放进度

onVideoAdComplete()


视频播放完成

onVideoError(errorCode: number, errorMsg: string)

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

视频加载失败

6. 资源

  • CSJ信息流原生自渲染广告请参考demo中的adtype/feed/FeedAdPages.ets接入示例,聚合维度信息流广告请参考demo中的mediation_adtype/feed/FeedNativeAdPage接入示例。
  • CSJ信息流广告imagemode枚举值说明

常量名称

含义

IMAGE_MODE_SMALL_IMG

2

单图

IMAGE_MODE_LARGE_IMG

3

大图

IMAGE_MODE_GROUP_IMG

4

组图

IMAGE_MODE_VERTICAL_IMG

16

竖图

IMAGE_MODE_VIDEO

5

横屏视频

IMAGE_MODE_VIDEO_VERTICAL

15

竖屏视频

IMAGE_MODE_UNKNOWN

-1

未知

四、模板信息流广告

1. 构建请求参数

1.1 接入示例

初始化广告创建器

复制

构建广告请求参数AdSlot

复制

1.2 接口说明

接口

是否必填

类型

含义

setCodeId()

String

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

.setAcceptSize(350, 300)

number

广告UI size,默认单位vp

2. 请求及展示广告

2.1 请求示例

在调用loadExpressFeedAd加载广告后,可在接收到onNativeExpressAdLoad回调后调用render渲染广告,渲染成功后方可展示。

复制

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

复制

2.2 接口说明

  • CSJFeedAdListener

接口

参数

含义

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()

返回广告额外信息

render(context: UIContext)

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

destroy()

资源释放

getFilterWords()

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

setExpressInteractionListener(listener: ExpressAdInteractionListener)

设置交互监听器

setDislikeCallback(callback: CSJDislikeInteractionCallback)

设置dislike监听

setVideoAdListener(videoAdListener: ExpressVideoAdListener)

设置Video监听

3. 监听广告行为(可选)

3.1 使用示例

在调用展示广告前,创建广告交互监听器,用于实时获取广告展示状态。

复制

3.2 接口说明

  • ExpressAdInteractionListener

接口

参数

含义

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 接口说明

  • ExpressVideoAdListener

接口

参数

含义

onVideoLoad()


视频加载完成

onVideoAdStartPlay()


视频开始播放第一帧

onVideoAdPaused()


视频暂停播放

onVideoAdContinuePlay()


视频继续播放

onProgressUpdate(current: number, duration: number)

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

视频播放进度

onVideoAdComplete()


视频播放完成

onVideoError(errorCode: number, errorMsg: string)

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

视频加载失败

五、聚合功能说明

1. 广告加载差异

聚合功能通过mAdCreator.loadFeedAd API加载信息流广告,暂时不支持mAdCreator.loadExpressFeedAd,在调用加载广告后,可在CSJFeedAdListener的回调中继续处理相关回调。

复制

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

加载广告

复制

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

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

3. 广告展示基本信息获取

3.1 使用示例

复制

3.2 接口说明

  • CSJFeedAd说明

接口

返回值

含义

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"

六、资源

CSJ模版信息流广告请参考demo中的adtype/feed/FeedExpressAdPage.ets接入示例。


本篇目录
联系我们