Skip to content

信息流广告

1. 主要API

1.1 ApexAdxNativeAd

  • com.apex.adx.ApexAdxNativeAd
方法名方法介绍
ApexAdxNativeAd(Context context, ApexAdxNativeRequest request)构造方法。参数说明:activity(展示广告的 activity)、request(广告请求对象)。
loadNativeAd(ApexAdxNativeAdLoadListener listener)请求广告。参数说明:listener(请求广告相关状态会通过 ApexAdxNativeAdLoadListener 通知开发者)。
List getNativeListData()广告拉取成功后,获取广告集合。
destroy()销毁广告。

1.2 ApexAdxNativeRequest

  • com.apex.adx.req.ApexAdxNativeRequest
方法名方法介绍
ApexAdxNativeRequest(String pid, String userId, int adCount, Map options)构造方法。参数说明:pid(广告位Id)、userId(用户Id可选)、adCount(请求广告数量,最大3)、options(扩展参数,可传任意)。

1.3 ApexAdxNativeAdLoadListener

  • com.apex.adxs.listener.ApexAdxNativeAdLoadListener
方法名方法介绍
onFeedLoad(String pid)广告成功加载。参数说明:pid(广告位Id)。
onError(ApexAdxError error, String pid)广告加载失败。参数说明:error(报错信息,具体可看其内部code和msg)、pid(报错的广告位Id)。

1.4 ApexAdxNativeData

  • com.apex.adxs.bean.ApexAdxNativeData
方法名方法介绍
getAppInfo()获取下载类广告六要素信息,媒体可根据需要自行展示。
getExpressAdView()获取模版渲染的广告View
render()广告渲染方法
isExpressAd()是否为模版渲染广告
destroy()销毁广告单元对象
connectAdToView(Activity activity, ApexAdxNativeContainer adContainer, ApexAdxNativeRender adRender)自渲染具体实现方法。参数说明:activity(展示广告的 activity)、adContainer(根容器)、adRender(广告渲染实现类对象)。
setInteractionListener(NativeAdInteractionListener adInteractionListener)设置广告交互监听。参数说明:adInteractionListener(广告交互监听回调对象)。
setMediaListener(NativeADMediaListener nativeADMediaListener)设置自渲染Video监听。参数说明:nativeADMediaListener(视频播放监听回调对象)。
setDislikeInteractionCallback(Activity activity, DislikeInteractionCallback dislikeInteractionCallback)设置Dislike监听。参数说明:activity(dislike弹窗的acticity)、dislikeInteractionCallback(dislike监听回调对象)。
setDownloadListener(AppDownloadListener appDownloadListener)设置广告下载监听。参数说明:appDownloadListener(广告下载监听回调对象)。

1.5 NativeAdInteractionListener

  • com.apex.adxs.bean.ApexAdxNativeData$NativeAdInteractionListener
方法名方法介绍
onADExposed()广告曝光。
onADError(ApexAdxError error)广告展示失败。参数说明:error(报错信息,具体可看其内部code和msg)。
onADRenderSuccess(View view, float width, float height)广告渲染成功。参数说明:view(模版渲染的广告view)、width(view宽度)、height(view高度)。
onADClicked()广告点击。

1.6 NativeADMediaListener

  • com.apex.adxs.bean.ApexAdxNativeData$NativeADMediaListener
方法名方法介绍
onVideoLoad()视频加载成功。
onVideoError(ApexAdxError error)视频播放失败。参数说明:error(报错信息,具体可看其内部code和message)。
onVideoStart()视频开始播放。
onVideoPause()视频暂停播放。
onVideoResume()视频恢复播放。
onVideoCompleted()视频完成播放。

1.7 AppDownloadListener

  • com.apex.adxs.bean.ApexAdxNativeData$AppDownloadListener
方法名方法介绍
onIdle()下载静止状态。
onDownloadActive(long totalBytes, long currBytes, String fileName, String appName)下载活动状态。参数说明:totalBytes(下载总字节)、currBytes(当前下载字节)、fileName(下载文件名)、appName(下载App名字)。
onDownloadPaused(long totalBytes, long currBytes, String fileName, String appName)下载暂停状态。参数说明:totalBytes(下载总字节)、currBytes(当前下载字节)、fileName(下载文件名)、appName(下载App名字)。
onDownloadFailed(long totalBytes, long currBytes, String fileName, String appName)下载失败。参数说明:totalBytes(下载总字节)、currBytes(当前下载字节)、fileName(下载文件名)、appName(下载App名字)。
onDownloadFinished(long totalBytes, String fileName, String appName)下载结束。参数说明:totalBytes(下载总字节)、fileName(下载文件名)、appName(下载App名字)。
onInstalled(String fileName, String appName)安装完成。参数说明:fileName(安装文件名)、appName(安装App名字)。

1.8 DislikeInteractionCallback

  • com.apex.adxs.bean.ApexAdxNativeData$DislikeInteractionCallback
方法名方法介绍
onShow()Dislike弹窗显示。
onSelected(int position, String value, boolean enforce)Dislike弹窗Item点击。参数说明:position(点击的位置)、value(点击的位置的文字选项)、enforce(是否关闭广告)。有穿山甲广告源时,必须在该方法里移除广告
onCancel()Dislike弹窗取消。

1.9 安卓下载应用六要素信息

由于国内监管部门要求,在安卓下载类广告中,需要给用户披露下载的应用的六要素信息。开发者可以通过getAppInfo() 方法获取。六要素信息包括

信息字段支持的广告网络
应用名称getAppName()
开发者名称getDeveloperName()
应用版本getAppVersion()
隐私协议getPrivacyUrl()
权限列表getPermissionInfoUrl()
应用功能介绍getFunctionDescUrl()

2. 接入代码示例

2.1 信息流广告加载

java
private ApexAdxNativeAd nativeAd;

private List<ApexAdxNativeData> nativeAdDataList;

//请求广告时可以传入期望的宽高
Map<String, Object> options = new HashMap<>();
options.put(ApexAdxConstants.AD_WIDTH, adWidth);//针对于模版广告有效、单位dp
options.put(ApexAdxConstants.AD_HEIGHT, adHeight);//默认自适应高度、单位dp

/**
 * PID 必填
 * USER_ID 可选
 * AD_COUNT 必填 1-3
 * OPTIONS 自定义参数 可选
 */
ApexAdxNativeRequest request = new ApexAdxNativeRequest(PID, USER_ID, AD_COUNT, options);

nativeAd = new ApexAdxNativeAd(this, request);

nativeAd.loadNativeAd(new ApexAdxNativeAdLoadListener() {
    @Override
    public void onError(ApexAdxError error, String pid) {
    }

    @Override
    public void onFeedLoad(String pid) {
        List<ApexAdxNativeData> unifiedADData = nativeAd.getNativeListData();
        if (unifiedADData != null && unifiedADData.size() > 0) {
            nativeAdDataList = unifiedADData;
        }
    }
});

2.2 原生广告展示

java
private ViewGroup adContainer;

/**
 * 请在收到onFeedLoad回调后再展示广告
 * nativeAd.getNativeListData()获取广告
 */
List<ApexAdxNativeData> nativeAdDataList = nativeAd.getNativeListData();
if (nativeAdDataList != null && nativeAdDataList.size() > 0) {
		ApexAdxNativeData nativeAdData = nativeAdDataList.get(0);
		//绑定广告的监听
		bindListener(nativeAdData);
        nativeAdData.render();
        View expressAdView = nativeAdData.getExpressAdView();
        //媒体最终将要展示广告的容器(这里可以直接先addView,也可以在收到onRenderSuccess回调后addView)
        if (adContainer != null) {
            adContainer.removeAllViews();
            adContainer.addView(expressAdView);
        }
    }

2.3 原生广告销毁

java
//原生广告单元的销毁
if (nativeAdDataList != null && nativeAdDataList.size() > 0) {
    for (ApexAdxNativeData adData : nativeAdDataList) {
        if (adData != null) {
            adData.destroy();
        }
    }
}
//原生请求广告对象的销毁
if (nativeAd != null) {
    nativeAd.destroy();
}

2.4 注意事项

重要提示

穿山甲信息流关闭时,需要在DislikeInteractionCallback的onSelected回调方法里,主动remove掉广告,否则有些广告会无法关闭,影响收益。

java
nativeAdData.setDislikeInteractionCallback(mActivity, new ApexAdxNativeData.DislikeInteractionCallback() {
@Override
public void onShow() {

}

@Override
public void onSelected(int i, String s, boolean b) {
    ApexAdxLog.d("##########onSelected dislike option");
    nativeViewHolder.container.removeAllViews();
}

@Override
public void onCancel() {

}
});

ApexAdx SDK Documentation