通过
AMPSRequestParameters.Builder
构建AMPSRequestParameters
实例.
方法名称 | 参数 | 描述 |
---|---|---|
setTimeOut | long | 设置请求超时时间. 毫秒 |
setSpaceId | String | 设置广告位ID |
setWidth | int | 设置原生显示宽, 单位:px |
setHeight | int | 设置原生显示高, 单位:px |
setAdCount | int | 设置单次请求原生数量 |
build | - | 构建实例 |
AMPSRequestParameters parameters = new AMPSRequestParameters.Builder()
.setSpaceId("原生广告位ID")
.setTimeOut(5000)
.setWidth(width)
.setHeight(height)
.setAdCount(1)
.build();
通过传入
AMPSRequestParameters
实例, 创建AMPSUnifiedNativeAd
实例, 并通过传入AMPSUnifiedNativeLoadEventListener
实例, 监听广告状态
AMPSUnifiedNativeLoadEventListener listener = new AMPSUnifiedNativeLoadEventListener() {
@Override
public void onAmpsAdLoad(List<AMPSUnifiedNativeItem> ampsNativeAdExpressInfo) {
}
@Override
public void onAmpsAdFailed(AMPSError error) {
}
}
AMPSUnifiedNativeAd nativeAd = new AMPSUnifiedNativeAd(this, parameters, listener);
方法名称 | 参数 | 描述 |
---|---|---|
onAmpsAdLoad | List<AMPSUnifiedNativeItem> | 广告加载成功, 返回原生广告列表 |
onAmpsAdFailed | AMPSError | 广告加载失败, 通过AMPSError获取错误码及错误信息 |
调用
loadAd
方法,加载广告.
nativeAd.loadAd();
在接收到广告监听
onAmpsAdLoad
后,获取AMPSUnifiedNativeItem
实例.
AMPSUnifiedNativeItem nativeAdItem;
@Override
public void onAmpsAdLoad(List<AMPSUnifiedNativeItem> ampsNativeAdExpressInfo) {
Log.e(TAG, "onAdLoaded...");
if (ampsNativeAdExpressInfo != null){
nativeAdItem = ampsNativeAdExpressInfo.get(0);
}
}
调用
setNativeAdEventListener()
方法设置广告事件监听. 初始化useMediation传入false时, 使用此接口注意: 此接口不同于
setNativeAdExpressListener
接口.
方法名称 | 描述 |
---|---|
onADExposed | 广告展示 |
onADClicked | 广告点击 |
onADExposeError | 广告展示错误 |
nativeAdItem.setNativeAdEventListener(new AMPSUnifiedAdEventListener() {
@Override
public void onADExposed() {
Log.d(DemoParams.TAG, "onAdShow...");
}
@Override
public void onADClicked() {
Log.d(DemoParams.TAG, "onAdClick...");
}
@Override
public void onADExposeError(int i, String s) {
String error = "原生自渲染展示失败... 错误码:" + i + " 原因:" + s;
Log.e(DemoParams.TAG, error);
}
});
当广告类型为视频时, 通过绑定视频view接口
bindAdToMediaView(Activity activity, AMPSUnifiedMediaViewStub mediaStub, AMPSUnifiedVideoListener listener)
, 设置视频监听.
视频监听接口, 并不是每个接口都会回调. 实际回调接口, 会受到广告源影响
方法名称 | 描述 |
---|---|
onVideoInit | 视频组件初始化 |
onVideoLoading | 视频加载中 |
onVideoReady | 视频加载完成 |
onVideoLoaded | 视频加载进度 |
onVideoStart | 视频开始播放 |
onVideoPause | 视频暂停 |
onVideoResume | 视频恢复播放 |
onVideoCompleted | 视频播放完成 |
onVideoError | 视频播放错误 |
onVideoStop | 视频停止 |
onVideoClicked | 视频被点击 |
通过调用
setNegativeFeedbackListener
设置广告反馈监听
方法名称 | 描述 |
---|---|
onComplainSuccess | 反馈成功 |
通过
AMPSUnifiedNativeItem
的bindAdToRootContainer(Activity activity, AMPSUnifiedRootContainer container, List<View> clickList, List<View> actList)
绑定自渲染view的视图.
参数说明 | 描述 |
---|---|
activity | 广告展示的Activity |
container | 自渲染广告展示的根容器 |
clickList | 自渲染广告内, 需要绑定点击事件的按钮列表 |
actList | 自渲染广告内, 需要绑定Action事件的按钮列表 |
//根布局
AMPSUnifiedRootContainer root = findViewById(R.id.unified_root);
//图片view, 添加click列表
ImageView image = findViewById(R.id.unified_image);
List<View> clickView = new ArrayList<>();
clickView.add(image);
//action按钮, 添加action列表
Button button = findViewById(R.id.unified_action);
button.setText(TextUtils.isEmpty(nativeAdItem.getActionButtonText()) ? "点击查看详情": nativeAdItem.getActionButtonText());
List<View> actionView = new ArrayList<>();
actionView.add(button);
//绑定布局
nativeAdItem.bindAdToRootContainer(UnifiedNativeActivity.this, root, clickView, actionView);
根据
AMPSUnifiedNativeItem
的getAdPattern()
方法判断素材类型. 该类型定义在AMPSUnifiedPattern
类中
类型 | 描述 |
---|---|
AD_PATTERN_TEXT_IMAGE | 基本图文类型, 包括单图, 一图一文, 一图两文 |
AD_PATTERN_3_IMAGES | 多图类型 |
AD_PATTERN_VIDEO | 视频 |
AD_PATTERN_UNKNOWN | 类型不确定 |
图片素材, 通过调用
AMPSUnifiedNativeItem
的getMainImageUrl()
huogetImagesUrl()
方法获取图片地址.
方法名称 | 描述 |
---|---|
getMainImageUrl | 获取主图的图片地址. |
getImagesUrl | 获取多图的图片地址. 只有在AD_PATTERN_3_IMAGES时返回图片列表 |
当广告素材类型是视频时, 除了需要调用
bindAdToRootContainer()
方法绑定视图view外, 还需要额外调用bindAdToMediaView(Activity activity, AMPSUnifiedMediaViewStub mediaStub, AMPSUnifiedVideoListener listener)
方法, 绑定视频view
参数说明 | 描述 |
---|---|
activity | 广告展示的Activity |
mediaStub | 自渲染创建的用于展示视频广告的容器. 此容器必须为bindAdToRootContainer() 方法传入的container的子view |
listener | 视频状态相关监听 |
if (nativeAdItem.getAdPattern().equals(AMPSUnifiedPattern.AD_PATTERN_VIDEO)){
//创建容器
AMPSUnifiedMediaViewStub mediaView = findViewById(R.id.unified_media);
//绑定到广告
nativeAdItem.bindAdToMediaView(UnifiedNativeActivity.this, mediaView, new AMPSUnifiedVideoListener() {
@Override
public void onVideoInit() {
}
@Override
public void onVideoLoading() {
}
@Override
public void onVideoReady() {
}
@Override
public void onVideoLoaded(int i) {
}
@Override
public void onVideoStart() {
}
@Override
public void onVideoPause() {
}
@Override
public void onVideoResume() {
}
@Override
public void onVideoCompleted() {
}
@Override
public void onVideoError(AMPSUnifiedNativeAdError ampsUnifiedNativeAdError) {
}
@Override
public void onVideoStop() {
}
@Override
public void onVideoClicked() {
}
});
}
自渲染广告加载成功后, 素材会包装成
AMPSUnifiedNativeItem
对象, 并通过对象方法获取相关的素材内容.
方法名称 | 返回值 | 描述 | 备注 |
---|---|---|---|
isValid | boolean | 广告是否有效. | - |
isExpressAd | boolean | 广告是否为模板广告.不需要手动绑定渲染view | 此接口用于扩展, 只返回false |
getNativeExpressAdView | View | 为模板广告时, 获取渲染好的广告view | 此接口用于扩展, 只返回null |
setNativeAdExpressListener | - | 为模板广告时, 监听广告状态. | 此接口用于扩展, 设置无效. 注意不要和setNativeAdEventListener混淆 |
getTitle | String | 获取广告标题 | 有标题素材则返回, 没有返回空 |
getDesc | String | 获取广告描述(副标题) | 有则返回, 没有返回空 |
getActionButtonText | String | 获取广告Action按钮文案 | 有则返回, 没有返回空 |
getExtras | Map<String, Object> | 获取扩展内容 | 此接口用于扩展, 只返回null |
getAdSource | String | 返回广告来源 | 此处固定返回8888代表beiziAdn广告 |
getAdSourceLogoUrl | String | 返回广告来源的logo地址 | |
getAdSourceLogo | View | 返回广告来源logo的view | 此接口用于扩展, 只返回null |
getIconUrl | String | 获取图标地址 | |
isViewObject | boolean | 是否以View形式返回广告 | 此接口用于扩展, 只返回false |
getMainImageUrl | String | 当广告类型为图文类时, 返回图片素材地址 | |
getMainImageView | AMPSUnifiedView | 返回主图渲染完成View | 此接口用于扩展, 只返回null |
getAdPattern | AMPSUnifiedPattern | 用于判断广告素材类型 | |
getMainImageViews | List<String> | 当素材类型为多图时, 返回多图片地址 | |
getMainImageViews | List<AMPSUnifiedView> | 当素材类型为多图时, 返回多图渲染完成view | 此接口用于扩展, 只返回null |
getImageWidth | int | 获取图片宽 | 无法准确获取时返回0 |
getImageHeight | int | 获取图片高 | 无法准确获取时返回0 |
getAppDetail | AMPSAppDetail | 下载类广告时,返回下载应用相关信息 | 无相关信息时,返回null |
getOptimizeController | AMPSUnifiedOptimizeController | 获取优化功能控制器 | 此接口用于扩展, 只返回null |
setNativeAdEventListener | - | 设置广告事件监听 | 区别于setNativeAdExpressListener, 用于监听广告事件 |
setDownloadListener | - | 设置下载类广告,下载状态监听 | 此接口用于扩展, 设置无效 |
setNegativeFeedbackListener | - | 设置反馈监听 | |
bindAdToRootContainer | - | 用于绑定自渲染布局 | 重要接口, 必须调用 |
bindAdToMediaView | - | 当广告类型为视频时, 用于绑定视频自渲染布局 | 广告类型为视频时, 重要接口, 必须调用, 切必须在bindAdToRootContainer后才能调用 |
resume | - | 生命周期接口 | 此接口为扩展接口, 非必须 |
pause | - | 生命周期接口 | 此接口为扩展接口, 非必须 |
destroy | - | 销毁广告 | 当广告不再使用时,需要调用销毁 |
通过调用
getAppDetail()
接口获取AMPSAppDetail
实例. 并通过对应方法获取信息, 获取的信息可能为空
方法名称 | 描述 |
---|---|
getDownloadCountDesc | 获取应用下载量信息. |
getAppScore | 获取应用评分. |
getAppPrice | 获取应用价格. |
getAppName | 获取应用名称. |
getAppSize | 获取应用大小. |
getAppPackageName | 获取应用包名. |
getAppIconUrl | 获取应用图标. |
getAppVersion | 获取应用版本. |
getAppPermissionInfo | 获取应用权限信息. 信息可能为链接地址或文字描述 |
getAppPrivacyPolicy | 获取应用协议信息. 信息可能为链接地址或文字描述 |
getAppDescription | 获取应用描述. |
getAppDeveloper | 获取应用开发者信息. |
自渲染广告, 根据应用逻辑需求, 在不再使用时, 调用销毁方法.
//于生命周期内调用
@Override
protected void onDestroy() {
super.onDestroy();
if (nativeAdItem != null) {
nativeAdItem.destroy();
}
}