Bidding Android iOS JS Media API 常见问题

开发者自渲染广告

简介

前文介绍的Banner广告、插屏广告等,app会“收到”一个完整的view对象,开发者无法自定义广告view内部的组件布局(文字TextView、图片ImageView),而原生广告自渲染方式支持开发者自由拼合这些素材,最大程度的满足开发需求;与原生广告(模板方式)相比,自渲染方式更加自由灵活,开发者可以使用其为开发者的应用打造自定义的布局样式。

适用场景
原生广告(模板方式)不能满足开发需求,可以使用自渲染

包含内容
使用自渲染 API拉取到的广告数据主要包含如下字段:

  1. 广告App图标(URL)
  2. 广告媒体图(URL)
  3. 广告标题
  4. 广告描述

除此之外,开发者还可以获取到广告类型,广告星级,广告价格等内容,详见自下文主要API介绍

主要 API

函数接口列表

方法名 方法介绍 备注
NativeUnifiedAd(string placementId,INativeUnifiedAdListener listener) 构造函数
void LoadData(int count) 加载广告,count指定期望加载的广告数量
void SetDownloadAPPConfirmPolicy(int downloadAppConfirmPolicy) 指定点击 APP 广告后是否展示二次确认,可选项包括 0(wifi 不展示,非 wifi 展示),2(所有情况不展示) 在显示工信部弹窗时,该设置无效,工信部弹窗会替换二次确认的弹窗
void SetCategories(List categories) 传入 app 内类目信息 测试性接口,不保证有效
void SetMinVideoDuration 设置返回视频广告的最小视频时长(闭区间,可单独设置),单位:秒 此设置会影响广告填充,请谨慎设置
void SetMaxVideoDuration(int maxVideoDuration) 设置返回视频广告的最大视频时长(闭区间,可单独设置),单位:秒,合法输入为:5<=maxVideoDuration<=61 此设置会影响广告填充,请谨慎设置
方法名 方法介绍 备注
NativeUnifiedAdData(AndroidJavaObject adData) 构造方法,开发者不能调用
string GetTitle() 获取广告标题,短文字
string GetDesc() 获取广告描述,长文字
string GetIconUrl() 获取 Icon 图片地址
string GetImgUrl() 获取大图地址,使素材展示更完整,优化展示效果,建议通过调用bindImageViews由SDK来渲染图片,详细可参考BindImageViews方法使用说明和Demo实现
int GetAdPatternType() 获取广告样式
List GetImgList() 获取三小图的地址,使素材展示更完整,优化展示效果,建议通过{BindImageViews}交给sdk进行图片的填充和渲染
bool IsAppAd() 判断是否为app广告
int GetECPM() 获取本条广告实时的eCPM价格,单位是分
string GetECPMLevel() 获取本条广告实时的eCMP价格层级标签,每个层级标签对应线下预定的eCPM价格范围,成功返回一个包含数字的字符串,比如“1”,无权限调用该接口或后台异常会返回空字符串
int GetAppStatus() 获取应用状态,0:未开始下载;1:已安装;2:需要更新;4:下载中;8:下载完成;16:下载失败;32:下载暂停;64:下载删除
int GetProgress() 获取app类广告的apk文件下载进度
long GetDownloadCount() 获取app类广告的下载次数
int GetAppScore() 获取app类广告的应用评分
double GetAppPrice() 获取app类广告的应用价格
int GetVideoDuration() 获取广告的视频时长,广告加载成功即可获取,单位ms。注意:虽然此数值单位为ms,但实际精度为s(向上取整),例如视频真实时长 8100ms ,此处返回9000ms
int GetPictureWidth() 获取大图素材的宽度
int GetPictureHeight() 获取大图素材的高度
int GetVideoCurrentPosition() 获取视频广告当前已播放时长,单位是毫秒
void SetNativeAdEventListener(INativeAdEventListener listener) 设置广告点击曝光等事件监听者
void NegativeFeedback() 上报广告负反馈信息
void PreloadVideo(INativeVideoPreloadListener listener) 预加载视频素材,在onVideoCached()回调后展示视频广告不会有加载进度条。
bool EqualsAdData(NativeUnifiedAdData nativeAdData) 比较两条广告素材(大图小图等字段)是否相同
bool IsValid() 广告是否有效,无效广告将无法展示
void BindAdToView(object context, object container, object adLogoParams, List clickViews) View和广告的绑定,必须设置NativeAdContainer;adlogoParams建议传null,除非一定要改变广告标志相关参数;clickViews为触发广告点击行为的View,必须在container中,不然不会响应点击事件,且开发者不能对clickViews设置OnClickListener,会影响点击事件的上报,点击事件回调可通过NativeADEventListener中onADClicked()回调监听 container必须为NativeAdContainer,可通过Utils.GetNativeAdContainer()获取
void BindAdToView(object context, object container, object adLogoParams, List clickViews, List customClickViews) View和广告的绑定,必须设置NativeAdContainer;adlogoParams建议传null,除非一定要改变广告标志相关参数;clickViews为触发广告点击行为的View,customClickViews点击可以直接下载或进入落地页,两者必须在container中,不然不会响应点击事件,且开发者不能对clickViews和customClickViews设置OnClickListener,会影响点击事件的上报,点击事件回调可通过NativeADEventListener中onADClicked()回调监听 container必须为NativeAdContainer,可通过Utils.GetNativeAdContainer()获取
void BindMediaView(object view, VideoOption videoOption, INativeAdMediaListener mediaListener) 将该条广告数据和视频播放组件MediaView绑定
void BindCTAViews(List CTAViews) 绑定响应营销组件(智能电话、外显表单)点击事件的view,注意:开发者不能对CTAViews设置OnClickListener,会影响点击事件的上报;点击事件回调可通过INativeAdEventListener中OnAdClicked()回调监听
void BindImageViews(List imageViews, byte[] defaultImageData) 根据图文广告不同广告类型,将广告数据的图片URL和ImageView绑定并展示,详细参考Demo实现,支持设置默认图
void BindImageViews(List imageViews, int defaultImageRes) 根据图文广告不同广告类型,将广告数据的图片URL和ImageView绑定并展示,详细参考Demo实现,支持设置默认图
string GetCTAText() 通过该接口可以判断广告是否拥有营销组件能力,返回为空值时表示该广告无法响应营销组件点击事件;返回非空时,表示广告拥有营销组件能力,返回值代表SDK推荐开发者使用的文案,如“立即预约”、“电话咨询”
void StartVideo() 播放视频广告:如果当前未开始则开始播放,如果当前暂停则继续播放,如果当前是停止的则从头播放 该接口只对视频广告预览页有效,在点击视频广告后进入的详情页中调用无效
void PauseVideo() 暂停视频广告的播放 该接口只对视频广告预览页有效,在点击视频广告后进入的详情页中调用无效
void ResumeVideo() 继续播放被暂停的视频广告 该接口只对视频广告预览页有效,在点击视频广告后进入的详情页中调用无效
void StopVideo() 停止视频广告播放 该接口只对视频广告预览页有效,在点击视频广告后进入的详情页中调用无效
void SetVideoMute(bool mute) 视频广告播放过程中,设置其是否静音,mute为true时表示静音 该接口只对视频广告预览页有效,在点击视频广告后进入的详情页中调用无效
void Destroy() 当开发者不再使用广告,释放View等相关的资源,且广告失效,不能再次使用
void PauseAppDownload() 暂停下载正在下载中的应用
void ResumeAppDownload() 继续下载被暂停下载的应用
bool IsWeChatCanvasAd() 是否是微信原生页广告,只有加入白名单的应用支持该类型的广告,如果是该类型广告建议将广告容器中按钮的文案设置为“去微信看看”
MiitInfo GetAppMiitInfo() 获取app类广告的app信息,包含应用名称,开发者,版本,apk包大小,隐私政策,权限信息,返回值为MiitInfo数据类型,对于非app类广告返回值为null
string GetButtonText() 返回广告主在广告投放平台设置的按钮文案,如果没设置将返回默认文案:应用下载类广告返回“立即下载”;微信原生页广告返回"去微信看看";其它广告返回“查看详情”
Dictionary GetExtraInfo() 获取本条广告一些额外信息
方法名 方法介绍 备注
MiitInfo(AndroidJavaObject miitInfo) 构造方法,开发者不能调用
string GetAppName() 应用的名称
string GetAuthorName() 应用开发者名称
string GetPackageSizeBytes() 应用apk包的大小,单位byte
string GetPermissionsUrl() 应用权限信息url,请求该url会得到一个权限信息的json数据,参考自定义下载弹窗的中处理权限的格式
string GetPrivacyAgreement() 应用隐私政策url,需要使用webview显示该url
string GetVersionName() 应用版本信息

回调函数列表

回调函数名 回调函数含义 备注
void OnAdLoaded(List adDataList) 广告数据获取成功时回调
void OnNoAd(AdError adError) 广告数据获取失败时回调
回调函数名 回调函数含义 备注
void OnAdExposed() 广告被曝光回调
void OnAdClicked() 广告被点击回调
void OnAdError(AdError error) 错误回调
void OnApkStatusChanged apk数据更新状态时的回调
回调函数名 回调函数含义 备注
void OnVideoInit() 视频组件初始化
void OnVideoLoading() 视频开始加载
void OnVideoLoaded(int videoDuration) 视频加载完成,videoDuration为视频时长
void OnVideoReady() 视频组件准备完成
void OnVideoStart() 视频开始播放
void OnVideoPause() 视频暂停
void OnVideoResume() 视频继续播放
void OnVideoCompleted() 视频播放完成
void OnVideoStop() 视频播放停止
void OnVideoClicked() 自渲染视频广告中,如果setEnableUserControl设置为true时,用户点击视频区域时将收到此回调
void OnVideoError(AdError error) 视频播放报错
回调函数名 回调函数含义 备注
void OnVideoCached() 视频下载完成,此时展示广告不会有加载进度条
void OnVideoCacheFailed(int errorNum, string msg) 视频下载失败

接入代码示例

加载自渲染广告

在加载广告的方法内,需要添加如下代码来对定义好的 NativeUnifiedAd 进行初始化

public void LoadRewardVideoAd(int count)
{
    nativeUnifiedAd = new NativeUnifiedAd(Constants.nativeUnifiedPosId, new ExampleNativeUnifiedAdListener(this));
    nativeUnifiedAd.LoadData(count);
}

展示自渲染视频广告

开发者对如何展示自渲染广告有充分自由度,可仿照demo采用安卓原生方式渲染,也可根据unity特性进行展示

在不展示自渲染广告时执行调试

在您加载广告的类中实现如下回调,处理自渲染广告加载失败的问题

 public void OnNoAd(AdError adError)
 {

 }

说明

 文档反馈

腾讯公司 版权所有