跳转到主要内容
PRODUCT DOCUMENTS

快速找到所需文档,高效完成接入与排障

浏览产品文档与友盟 Skill,展开目录并阅读正文。

信息流广告

简介

开发者获取广告物料,自定义组装嵌入列表的原生广告。

接口说明

方法

说明

UMUnionSdk.loadFeedAd(UMAdConfig, AdLoadListener<UMNativeAD>)

请求信息流广告

UMNativeAD

方法

说明

getTitle()

获取广告标题

getContent()

获取广告描述

getIconUrl()

获取图标素材地址

getImageUrl()

获取大图素材地址

getVideoUrl()

获取视频素材地址

bindView(Context, UMNativeLayout, List<View> clickViews)

绑定视图与点击区域

bindVideoView(UMVideoView)

绑定视频播放视图

setVideoAutoplay(boolean)

设置视频是否自动播放

setAdEventListener(AdEventListener)

设置事件回调

getImageWidth()

获取大图宽度

getImageHeight()

获取大图高度

getIconWidth()

获取图标宽度

getIconHeight()

获取图标高度

getVideoWidth()

获取视频宽度

getVideoHeight()

获取视频高度

getECPM()

获取出价(单位分),PD模式返回-1

isValid()

广告是否有效

isVideo()

是否为视频广告

getVideoPlayer()

获取视频播放器

setVideoListener(VideoListener)

设置视频播放回调

win(Double highestLossPrice)

竞胜后调用,用于优化广告填充

loss(Double winPrice, LossReason reason)

竞败后调用,用于优化广告填充

AdEventListener

方法

说明

onExposed()

曝光回调

onClicked(View view)

点击回调

onError(int code, String message)

错误回调

AdRenderListener

扩展 AdLoadListener,区分广告填充和素材渲染两个阶段,适用于被聚合场景:

方法

说明

onSuccess(AdType, UMNativeAD)

广告请求成功,可用于比价

onFailure(AdType, String)

广告请求失败

onRenderSuccess(AdType, UMNativeAD)

素材加载完成,可以展示

onRenderFailure(AdType, String)

素材渲染失败

调用示例

UMAdConfig config = new UMAdConfig.Builder().setSlotId("your_slot_id").build();
UMUnionSdk.loadFeedAd(config, new UMUnionApi.AdRenderListener<UMNativeAD>() {
    @Override
    public void onSuccess(UMUnionApi.AdType type, UMNativeAD display) {
        // 广告请求成功,可用于比价
    }
    @Override
    public void onFailure(UMUnionApi.AdType type, String message) { }

    @Override
    public void onRenderSuccess(UMUnionApi.AdType type, UMNativeAD display) {
        // 素材加载完成,可以展示
        display.setAdEventListener(new UMUnionApi.AdEventListener() {
            @Override public void onExposed() { }
            @Override public void onClicked(View v) { }
            @Override public void onError(int code, String msg) { }
        });

        UMNativeLayout adLayout = (UMNativeLayout) View.inflate(ctx, R.layout.ad_layout, null);
        List<View> clickViews = new ArrayList<>();
        clickViews.add(adLayout);

        if (display.isVideo()) {
            UMVideoView videoView = adLayout.findViewById(R.id.ad_video);
            videoView.setVisibility(View.VISIBLE);
            display.bindVideoView(videoView);
        } else {
            ImageView image = adLayout.findViewById(R.id.ad_image);
            image.setVisibility(View.VISIBLE);
            // 使用 display.getImageUrl() 加载图片
        }

        ((TextView) adLayout.findViewById(R.id.ad_title)).setText(display.getTitle());
        ((TextView) adLayout.findViewById(R.id.ad_content)).setText(display.getContent());
        display.bindView(ctx, adLayout, clickViews);
    }
    @Override
    public void onRenderFailure(UMUnionApi.AdType type, String message) {
        // 素材渲染失败
    }
});