请输入
菜单

原生(自渲染)广告接入及API说明

原生自渲染广告(AMPSUnifiedNativeAd)

创建原生广告配置

通过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);
        }
    }
设置广告监听
  1. 设置事件监听

调用setNativeAdEventListener()方法设置广告事件监听. 初始化useMediation传入false时, 使用此接口

注意: 此接口不同于setNativeAdExpressListener接口.

  • AMPSUnifiedAdEventListener主要方法
方法名称 描述
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);
                }
            });
  1. 设置视频播放监听

当广告类型为视频时, 通过绑定视频view接口bindAdToMediaView(Activity activity, AMPSUnifiedMediaViewStub mediaStub, AMPSUnifiedVideoListener listener), 设置视频监听.

  • AMPSUnifiedVideoListener主要方法

视频监听接口, 并不是每个接口都会回调. 实际回调接口, 会受到广告源影响

方法名称 描述
onVideoInit 视频组件初始化
onVideoLoading 视频加载中
onVideoReady 视频加载完成
onVideoLoaded 视频加载进度
onVideoStart 视频开始播放
onVideoPause 视频暂停
onVideoResume 视频恢复播放
onVideoCompleted 视频播放完成
onVideoError 视频播放错误
onVideoStop 视频停止
onVideoClicked 视频被点击
  1. 设置反馈监听

通过调用setNegativeFeedbackListener设置广告反馈监听

  • AMPSUnifiedNegativeFeedbackListener主要方法
方法名称 描述
onComplainSuccess 反馈成功
绑定自渲染视图view

通过AMPSUnifiedNativeItembindAdToRootContainer(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);
绑定素材内容
  1. 获取素材类型

根据AMPSUnifiedNativeItemgetAdPattern()方法判断素材类型. 该类型定义在AMPSUnifiedPattern类中

  • 类型说明
类型 描述
AD_PATTERN_TEXT_IMAGE 基本图文类型, 包括单图, 一图一文, 一图两文
AD_PATTERN_3_IMAGES 多图类型
AD_PATTERN_VIDEO 视频
AD_PATTERN_UNKNOWN 类型不确定
  1. 图片素材获取

图片素材, 通过调用AMPSUnifiedNativeItemgetMainImageUrl()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() {

                    }
                });
            }
自渲染广告Item(AMPSUnifiedNativeItem)

自渲染广告加载成功后, 素材会包装成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实例. 并通过对应方法获取信息, 获取的信息可能为空

  • AMPSAppDetail方法说明
方法名称 描述
getDownloadCountDesc 获取应用下载量信息.
getAppScore 获取应用评分.
getAppPrice 获取应用价格.
getAppName 获取应用名称.
getAppSize 获取应用大小.
getAppPackageName 获取应用包名.
getAppIconUrl 获取应用图标.
getAppVersion 获取应用版本.
getAppPermissionInfo 获取应用权限信息. 信息可能为链接地址文字描述
getAppPrivacyPolicy 获取应用协议信息. 信息可能为链接地址文字描述
getAppDescription 获取应用描述.
getAppDeveloper 获取应用开发者信息.

销毁广告

自渲染广告, 根据应用逻辑需求, 在不再使用时, 调用销毁方法.

  • 代码示例
复制代码
    //于生命周期内调用
    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (nativeAdItem != null) {
            nativeAdItem.destroy();
        }
    }
上一个
原生(模板)广告接入及API说明
下一个
RTB实时竞价广告
最近修改: 2025-06-10