
通过自定义ADN方式快速集成融合SDK暂未支持的广告平台或对应功能,该文档基于6.9.0.0及以上版本给出相关示例说明。
自建聚合通过自定义ADN形式接入,适用于媒体通过自建聚合或者其他聚合方式对接到融合SDK中。
第三方ADN以自定义ADN形式接入,适用于第三方ADN直接对接到融合SDK中
填写广告网络名称并指定该账户名称,对应类名。
填写自定义广告平台各个广告类型的Adapter类名(您需要根据GroMore提供的接入规范自行实现自定义广告平台的Adapter类)
鸿蒙自定义adapter代码需要创建在一个新的模块内,并将文件在index.ets中导出,模块system为harTasks。
入口模块的oh-package.json5引入自定义adapter模块。
入口模块的build-profile.json5中runtimeOnly增加该模块引用。
自定义ADN必须要有配置类,在配置类中完成对应信息的采集,对应抽象类为CustomConfigAdapter,接口实现如下所示:新建CustomXXXConfigAdapter.ets文件,用于初始化adn。
方法 | 返回值 | 说明 | 是否必要 |
abstract initializeAdapter(initConfig: CustomAdnInfo, context: Context): void | - | 聚合告知进行接入adn的初始化 | 是 |
abstract networkSdkVersion(): string | 接入adn的版本号 | 聚合获取接入的adn版本,开发者需在该方法中完成Adapter的初始化及对应network的初始化 | 是 |
新建CustomXXXRewardedVideoAdapter.ets文件,用于接入adn激励视频。
自定义广告adapter中需要实现的抽象类为CustomLoadAdapter,接口实现如下所示:
方法 | 说明 | 是否必要 |
abstract loadAd(adnRitId: string, loadBridge: CustomLoadListener, adSlot: AdSlot, params?: Map<string, Object>): void | 聚合触发adapter请开始加载广告。 slotID: adn的代码位id; | 是 |
并在adn广告加载成功或失败调用loadBridge参数告知聚合,该对象为CustomLoadListener类型
方法 | 说明 | 是否必要 |
notifyLoadAdSuccess: (packAds: ArrayList<CustomPackAd>, ext?: Map<string, object>) => void | adn加载广告成功后,通知聚合加载成功,并将adn广告对象转换包装为CustomPackAd | 是 |
notifyLoadAdFail: (code: number, message: string, ext?: Map<string, object>) => void | adn加载广告失败,通知聚合加载失败 | 是 |
notifyOnAdCached: (ext?: Map<string, object>) => void | adn加载cached完成,通知聚合 | 否 |
当adn广告加载成功时,需将adn的广告包装成CustomPackAd对象返回给Gromore
方法名 | 说明 | 是否必要 |
showAd(windowStage: window.WindowStage, params?: Map<string, object>): void | 聚合调用-展示广告 | 和接入广告类型有关 |
setCustomInteractionListener(interactionBridge: CustomInteractionListener) | 聚合调用-传递交互listener | 是 |
getSplashAdComponent(hideCloseBtn: boolean, window?: window.Window): NodeController | undefined | 聚合调用-获取开屏广告view | 否 |
getMediaExtraInfo(): Map<string, object> | 聚合调用-获取原生广告额外信息 | 否 |
setCustomVideoListener(videoBridge: CustomVideoListener) | 聚合调用-传递Videolistener | 否 |
setSlideIntervalTime(intervalTime: number): void | 聚合调用-传递Banner广告轮播的间隔时间 | 否 |
getVideoCoverImage(): CSJImage | undefined | 聚合调用-获取视频封面图对象 | 否 |
getAdLogo(): Resource | string | 聚合调用-获取网盟logo | 否 |
getTitle(): string | 聚合调用-获取广告标题 | 否 |
getDescription(): string | 聚合调用-获取广告描述 | 否 |
getButtonText(): string | 聚合调用-获取广告创意按钮文案 | 否 |
getAppScore(): number | 聚合调用-获取广告app评分 | 否 |
getAppCommentNum(): number | 聚合调用-获取广告app评论数 | 否 |
getAppSize(): number | 聚合调用-获取广告app大小 | 否 |
getSource(): string | 聚合调用-获取广告来源 | 否 |
getIcon(): CSJImage | undefined | 聚合调用-获取广告图标Image | 否 |
getImageList(): ArrayList<CSJImage> | undefined | 聚合调用-获取广告广告图片Image list | 否 |
getInteractionType(): number | 聚合调用-获取原生广告交互类型 | 否 |
getImageMode(): number | 聚合调用-获取原生广告图片模式 | 否 |
getFilterWords(): ArrayList<FilterWord> | undefined | 聚合调用-获取负反馈词组,获得Dislike相关信息 | 否 |
getComplianceInfo(): CSJComplianceInfo | undefined | 聚合调用-获取应用下载相关信息 | 否 |
getAdComponent(): NodeController | undefined | 聚合调用-获取广告组件UI(广告View) | 否 |
onAdClick(clickType: number, eventClick: ClickEvent): void | 聚合调用-触发广告点击 | 否 |
getDislikeDialog(): CSJAdDislike | undefined | 聚合调用-得到dislike dialog | 否 |
setDislikeCallback(dislikeInteractionCallback: CSJDislikeInteractionCallback): void | 聚合调用-传递原生模板广告中使用网盟中dislike | 否 |
destroy(): void | 聚合调用-资源释放 | 否 |
registerViewForInteraction(rootAdComponentId: string, uiContext: UIContext, clickViewIds: CSJArrayList<string>, creativeViewIds: CSJArrayList<string>): void | 聚合调用-注册计费事件 | 否 |
render(context: UIContext): void | 聚合调用-渲染模板广告 | 否 |
getVideoDuration(): number | 聚合调用-获取视频时长 | 否 |
getAdViewWidth(): number | 聚合调用-获取广告view的宽 | 否 |
getAdViewHeight(): number | 聚合调用-获取广告view的高 | 否 |
getCustomizeVideo(): CSJCustomizeVideo | undefined | 聚合调用-获取自定义播放器 | 否 |
setCanInterruptVideoPlay(canInterruptVideoPlay: boolean): void | 聚合调用-传递设置是否允许视频区域响应点击,并且暂停/继续播放 | 否 |
setPauseIcon(pauseIcon: PixelMap | ResourceStr, size: number): void | 聚合调用-传递设置暂停图标和大小 | 否 |
hasAdVideoCachedApi(): boolean | 聚合调用-询问是否存在cache api | 否 |
getReqId():string | 获取广告reqId | 否 |
public isReadyStatus(): ADReadyStatus | 否 |
在adn产生展示后回调时通过interactionBridge告知聚合,该对象为CustomInteractionListener类型
方法 |
notifyOnAdShow: (ext?: Map<string, object>) => void |
notifyOnAdSkip: (ext?: Map<string, object>) => void |
notifyOnAdClick: (ext?: Map<string, object>) => void |
notifyOnAdClose: (ext?: Map<string, object>) => void |
notifyOnAdComplete: (ext?: Map<string, object>) => void |
notifyOnAdRenderSuccess: (ext?: Map<string, object>) => void |
notifyOnAdRenderFail: (code?: number, message?: string, ext?: Map<string, object>) => void |
notifyOnAdPlayFail: (code?: number, message?: string, ext?: Map<string, object>) => void |
notifyOnAdOnRewardArrived: (isVerify: boolean, rewardType?: REWARD_AWARD_TYPE, extraInfo?: object, ext?: Map<string, object>) => void |
notifyOnAdCreativeClick: () => void; |
在adn产生视频行为回调时通过videoBridge告知聚合,该对象为CustomVideoListener类型
方法 |
notifyOnVideoLoad: () => void |
notifyOnVideoError: (errorCode: number, errorMsg: string) => void; |
notifyOnVideoAdStartPlay: () => void; |
notifyOnAdClose: (ext?: Map<string, object>) => void |
notifyOnVideoAdPaused: () => void; |
notifyOnVideoAdContinuePlay: () => void; |
notifyOnVideoAdComplete: () => void; |
notifyOnClickReplay: () => void; |
【聚合】传递给【Adapter】params 中的 key 集合CustomDeliveryKey
取自 | key | 说明 | value类型 |
loadAd | DELIVERY_LOAD_ORIGINTYPE | 在平台配置的渲染类型 0-未填写;1-模版渲染;2-自渲染;3-广点通模版渲染2.0 | number |
loadAd | DELIVERY_LOAD_BIDDINGTYPE | 代码位比价类型 0 普通广告位 1 client竞价广告 3 多阶底价 (重要)当为client竞价广告时,请回传【聚合】NOTIFY_BIDDINGECPM | number |
loadAd | DELIVERY_LOAD_SPLASH_TIMEOUT | 开屏广告加载超时时间 | number |
loadAd | DELIVERY_LOAD_SPLASH_CONTEXT | csj开屏预渲染的context | UIContext |
showAd | DELIVERY_SPLASH_BOTTOM_VIEW | 传入的开屏bottomViewBuilder | WrappedBuilder<[]> |
showAd | DELIVERY_SPLASH_CUSTOM_CLOSE_BUTTON | 传入的开屏CloseBtnBuilder | WrappedBuilder<[closeBlock: () => void]> |
【Adapter】回传给【聚合】ext 中的 key 集合
带回 | key | 说明 | value类型 |
notifyLoadAdSuccess | NOTIFY_BIDDINGECPM | 当加载客户端比价代码位成功时,回传给聚合的价格 | number |
notifyLoadAdSuccess | NOTIFY_CREATIVE_ID | 回传给聚合创意id | string |
notifyLoadAdSuccess | NOTIFY_AD_ID | 回传给聚合广告id | string |
notifyLoadAdSuccess | NOTIFY_CORRECT_ISEXPRESS | 校正渲染类型,当loadAd中平台配置的originType为0-未填写,回传给聚合真实渲染类型 | bool,YES-模版渲染,NO-自渲染 |
notifyOnAdComplete | NOTIFY_SPLASH_CLOSETYPE | 当开屏广告关闭时,回传给聚合关闭类型 | CSJSplashAdCloseType |
notifyOnAdRenderSuccess | NOTIFY_RENDER_WIDTH | 渲染成功,回传给聚合返回view的宽 单位 vp | number |
notifyOnAdRenderSuccess | NOTIFY_RENDER_HEIGHT | 渲染成功,回传给聚合返回view的高 单位 vp | number |
notifyOnAdRenderSuccess | NOTIFY_SUPPORTRENDER_ISEXPRESS | 针对adn支持信息流/draw类型的自渲染转模版,回传给聚合最终是自渲染还是模版广告 | bool |
在线客服智能客服 7*24小时在线人工客服 工作日 10~12点/14~19点