SDK说明


原生广告

<h1>原生广告(模版\自渲染\draw)<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Android/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%8E%9F%E7%94%9F%E5%B9%BF%E5%91%8A/#%E5%8E%9F%E7%94%9F%E5%B9%BF%E5%91%8A-%E6%A8%A1%E7%89%88-%E8%87%AA%E6%B8%B2%E6%9F%93-draw">​</a></h1> <p>&gt; <strong>注意:</strong> 原生广告具体实现可参考[Demo]中NativeAdUnifiedActivity、NativeAdUnifiedListActivity、NativeAdUnifiedRecycleActivity等</p> <h2>1. 主要API<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Android/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%8E%9F%E7%94%9F%E5%B9%BF%E5%91%8A/#_1-%E4%B8%BB%E8%A6%81api">​</a></h2> <h3>1.1 WMNativeAd<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Android/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%8E%9F%E7%94%9F%E5%B9%BF%E5%91%8A/#_1-1-wmnativead">​</a></h3> <ul> <li>com.windmill.sdk.natives.WMNativeAd</li> </ul> <table> <thead> <tr> <th>方法名</th> <th>方法介绍</th> </tr> </thead> <tbody> <tr> <td>WMNativeAd(Context context, WMNativeAdRequest request)</td> <td>构造方法。参数说明:activity(展示广告的 activity)、request(广告请求对象)。</td> </tr> <tr> <td>loadAd(NativeAdLoadListener nativeAdLoadListener)</td> <td>请求广告。参数说明:nativeAdLoadListener(请求广告相关状态会通过 nativeAdLoadListener 通知开发者)。</td> </tr> <tr> <td>List getNativeADDataList()</td> <td>广告拉取成功后,获取广告集合。</td> </tr> <tr> <td>checkValidAdCaches()</td> <td>查询当前广告位的所有缓存信息的<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Android/%E9%AB%98%E7%BA%A7%E8%AE%BE%E7%BD%AE/%E5%B9%BF%E5%91%8A%E5%AF%B9%E8%B1%A1/">AdInfo</a>对象、在广告加载成功后调用。</td> </tr> <tr> <td>destroy()</td> <td>销毁广告。</td> </tr> </tbody> </table> <h3>1.2 WMNativeAdRequest<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Android/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%8E%9F%E7%94%9F%E5%B9%BF%E5%91%8A/#_1-2-wmnativeadrequest">​</a></h3> <ul> <li>com.windmill.sdk.natives.WMNativeAdRequest</li> </ul> <table> <thead> <tr> <th>方法名</th> <th>方法介绍</th> </tr> </thead> <tbody> <tr> <td>WMNativeAdRequest(String placementId, String userId, int adCount, Map options)</td> <td>构造方法。参数说明:placementId(广告位Id)、userId(用户Id可选)、adCount(请求广告数量)、options(扩展参数,可传任意)。</td> </tr> </tbody> </table> <h3>1.3 NativeAdLoadListener<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Android/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%8E%9F%E7%94%9F%E5%B9%BF%E5%91%8A/#_1-3-nativeadloadlistener">​</a></h3> <ul> <li>com.windmill.sdk.natives.WMNativeAd$NativeAdLoadListener</li> </ul> <table> <thead> <tr> <th>方法名</th> <th>方法介绍</th> </tr> </thead> <tbody> <tr> <td>onFeedAdLoad(String placementId)</td> <td>广告成功加载。参数说明:placementId(广告位Id)。</td> </tr> <tr> <td>onError(WindMillError error, String placementId)</td> <td>广告加载失败。参数说明:error(报错信息,具体可看其内部code和message)、placementId(报错的广告位Id)。</td> </tr> </tbody> </table> <h3>1.4 WMNativeAdData<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Android/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%8E%9F%E7%94%9F%E5%B9%BF%E5%91%8A/#_1-4-wmnativeaddata">​</a></h3> <ul> <li>com.windmill.sdk.natives.WMNativeAdData</li> </ul> <table> <thead> <tr> <th>方法名</th> <th>方法介绍</th> </tr> </thead> <tbody> <tr> <td>getAppInfo()</td> <td>获取下载类广告六要素信息,媒体可根据需要自行展示。</td> </tr> <tr> <td>getInteractionType()</td> <td>获取广告交互类型</td> </tr> <tr> <td>getAdPatternType()</td> <td>获取广告样式</td> </tr> <tr> <td>getExpressAdView()</td> <td>获取模版渲染的广告View</td> </tr> <tr> <td>getCTAText()</td> <td>获取创意按钮文案</td> </tr> <tr> <td>getTitle()</td> <td>获取广告的Tittle</td> </tr> <tr> <td>getDesc()</td> <td>获取广告的描述</td> </tr> <tr> <td>getAdLogo()</td> <td>获取广告的Logo</td> </tr> <tr> <td>getIconUrl()</td> <td>获取广告的Icon</td> </tr> <tr> <td>getImageUrlList()</td> <td>获取广告的图片地址</td> </tr> <tr> <td>startVideo()</td> <td>播放视频广告</td> </tr> <tr> <td>pauseVideo()</td> <td>暂停视频广告</td> </tr> <tr> <td>resumeVideo()</td> <td>恢复视频广告</td> </tr> <tr> <td>stopVideo()</td> <td>停止视频广告</td> </tr> <tr> <td>render()</td> <td>广告渲染方法</td> </tr> <tr> <td>isExpressAd()</td> <td>是否为模版渲染广告</td> </tr> <tr> <td>isNativeDrawAd()</td> <td>是否为原生Draw广告</td> </tr> <tr> <td>destroy()</td> <td>销毁广告单元对象</td> </tr> <tr> <td>connectAdToView(Activity activity, WMNativeAdContainer adContainer, WMNativeAdRender adRender)</td> <td>自渲染具体实现方法。参数说明:activity(展示广告的 activity)、adContainer(根容器)、adRender(广告渲染实现类对象)。</td> </tr> <tr> <td>bindImageViews(Context context, List imageViews, int defaultImageRes)</td> <td>图片渲染绑定方法。参数说明:context(展示广告的 上下文)、imageViews(需要渲染的ImageView集合)、defaultImageRes(图片渲染失败默认展示的资源)。</td> </tr> <tr> <td>bindViewForInteraction(Context context, View view, List clickableViews, List creativeViewList, View disLikeView)</td> <td>绑定广告交互的方法。参数说明:context(展示广告的 上下文)、clickableViews(可点击的View的列表)、creativeViewList(用于下载或者拨打电话的创意View集合)、disLikeView(dislike按钮View)。</td> </tr> <tr> <td>setInteractionListener(NativeAdInteractionListener adInteractionListener)</td> <td>设置广告交互监听。参数说明:adInteractionListener(广告交互监听回调对象)。</td> </tr> <tr> <td>void bindMediaView(Context context, ViewGroup mediaLayout)</td> <td>绑定视频Video方法。参数说明:context(展示广告的 上下文)、mediaLayout(装video的容器)。</td> </tr> <tr> <td>setMediaListener(NativeADMediaListener nativeADMediaListener)</td> <td>设置自渲染Video监听。参数说明:nativeADMediaListener(视频播放监听回调对象)。</td> </tr> <tr> <td>setDislikeInteractionCallback(Activity activity, DislikeInteractionCallback dislikeInteractionCallback)</td> <td>设置Dislike监听。参数说明:activity(dislike弹窗的acticity)、dislikeInteractionCallback(dislike监听回调对象)。</td> </tr> <tr> <td>setDownloadListener(AppDownloadListener appDownloadListener)</td> <td>设置广告下载监听。参数说明:appDownloadListener(广告下载监听回调对象)。</td> </tr> </tbody> </table> <h3>1.5 NativeAdInteractionListener<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Android/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%8E%9F%E7%94%9F%E5%B9%BF%E5%91%8A/#_1-5-nativeadinteractionlistener">​</a></h3> <ul> <li>com.windmill.sdk.natives.WMNativeAdData$NativeAdInteractionListener</li> </ul> <table> <thead> <tr> <th>方法名</th> <th>方法介绍</th> </tr> </thead> <tbody> <tr> <td>onADExposed(AdInfo adInfo)</td> <td>广告曝光。参数说明:adInfo(广告信息,具体可看其内部成员变量)。</td> </tr> <tr> <td>onADError(AdInfo adInfo, WindMillError error)</td> <td>广告展示失败。参数说明:adInfo(广告信息,具体可看其内部成员变量)、error(报错信息,具体可看其内部code和message)。</td> </tr> <tr> <td>onADRenderSuccess(AdInfo adInfo, View view, float width, float height)</td> <td>广告渲染成功。参数说明:adInfo(广告信息,具体可看其内部成员变量)、view(模版渲染的广告view)、width(view宽度)、height(view高度)。</td> </tr> <tr> <td>onADClicked(AdInfo adInfo)</td> <td>广告点击。参数说明:adInfo(广告信息,具体可看其内部成员变量)。</td> </tr> </tbody> </table> <h3>1.6 NativeADMediaListener<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Android/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%8E%9F%E7%94%9F%E5%B9%BF%E5%91%8A/#_1-6-nativeadmedialistener">​</a></h3> <ul> <li>com.windmill.sdk.natives.WMNativeAdData$NativeADMediaListener</li> </ul> <table> <thead> <tr> <th>方法名</th> <th>方法介绍</th> </tr> </thead> <tbody> <tr> <td>onVideoLoad()</td> <td>视频加载成功。</td> </tr> <tr> <td>onVideoError(WindMillError error)</td> <td>视频播放失败。参数说明:error(报错信息,具体可看其内部code和message)。</td> </tr> <tr> <td>onVideoStart()</td> <td>视频开始播放。</td> </tr> <tr> <td>onVideoPause()</td> <td>视频暂停播放。</td> </tr> <tr> <td>onVideoResume()</td> <td>视频恢复播放。</td> </tr> <tr> <td>onVideoCompleted()</td> <td>视频完成播放。</td> </tr> </tbody> </table> <h3>1.7 AppDownloadListener<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Android/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%8E%9F%E7%94%9F%E5%B9%BF%E5%91%8A/#_1-7-appdownloadlistener">​</a></h3> <ul> <li>com.windmill.sdk.natives.WMNativeAdData$AppDownloadListener</li> </ul> <table> <thead> <tr> <th>方法名</th> <th>方法介绍</th> </tr> </thead> <tbody> <tr> <td>onIdle()</td> <td>下载静止状态。</td> </tr> <tr> <td>onDownloadActive(long totalBytes, long currBytes, String fileName, String appName)</td> <td>下载活动状态。参数说明:totalBytes(下载总字节)、currBytes(当前下载字节)、fileName(下载文件名)、appName(下载App名字)。</td> </tr> <tr> <td>onDownloadPaused(long totalBytes, long currBytes, String fileName, String appName)</td> <td>下载暂停状态。参数说明:totalBytes(下载总字节)、currBytes(当前下载字节)、fileName(下载文件名)、appName(下载App名字)。</td> </tr> <tr> <td>onDownloadFailed(long totalBytes, long currBytes, String fileName, String appName)</td> <td>下载失败。参数说明:totalBytes(下载总字节)、currBytes(当前下载字节)、fileName(下载文件名)、appName(下载App名字)。</td> </tr> <tr> <td>onDownloadFinished(long totalBytes, String fileName, String appName)</td> <td>下载结束。参数说明:totalBytes(下载总字节)、fileName(下载文件名)、appName(下载App名字)。</td> </tr> <tr> <td>onInstalled(String fileName, String appName)</td> <td>安装完成。参数说明:fileName(安装文件名)、appName(安装App名字)。</td> </tr> </tbody> </table> <h3>1.8 DislikeInteractionCallback<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Android/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%8E%9F%E7%94%9F%E5%B9%BF%E5%91%8A/#_1-8-dislikeinteractioncallback">​</a></h3> <ul> <li>com.windmill.sdk.natives.WMNativeAdData$DislikeInteractionCallback</li> </ul> <table> <thead> <tr> <th>方法名</th> <th>方法介绍</th> </tr> </thead> <tbody> <tr> <td>onShow()</td> <td>Dislike弹窗显示。</td> </tr> <tr> <td>onSelected(int position, String value, boolean enforce)</td> <td>Dislike弹窗Item点击。参数说明:position(点击的位置)、value(点击的位置的文字选项)、enforce(是否关闭广告)。</td> </tr> <tr> <td>onCancel()</td> <td>Dislike弹窗取消。</td> </tr> </tbody> </table> <h3>1.9 安卓下载应用六要素信息<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Android/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%8E%9F%E7%94%9F%E5%B9%BF%E5%91%8A/#_1-9-%E5%AE%89%E5%8D%93%E4%B8%8B%E8%BD%BD%E5%BA%94%E7%94%A8%E5%85%AD%E8%A6%81%E7%B4%A0%E4%BF%A1%E6%81%AF">​</a></h3> <p>由于国内监管部门要求,在安卓下载类广告中,需要给用户披露下载的应用的六要素信息。开发者可以通过<code>getAppInfo()</code> 方法获取。六要素信息包括</p> <table> <thead> <tr> <th>信息</th> <th>字段</th> <th>支持的广告网络</th> </tr> </thead> <tbody> <tr> <td>应用名称</td> <td>getAppName()</td> <td>Sigmob、腾讯广告、百度联盟、快手广告、穿山甲、Taptap</td> </tr> <tr> <td>开发者名称</td> <td>getDeveloperName()</td> <td>Sigmob、腾讯广告、百度联盟、快手广告、穿山甲、Taptap</td> </tr> <tr> <td>应用版本</td> <td>getAppVersion()</td> <td>Sigmob、腾讯广告、百度联盟、快手广告、穿山甲、Taptap</td> </tr> <tr> <td>隐私协议</td> <td>getPrivacyUrl()</td> <td>Sigmob、腾讯广告、百度联盟、快手广告、穿山甲</td> </tr> <tr> <td>权限列表</td> <td>getPermissionInfoUrl()</td> <td>Sigmob、腾讯广告、百度联盟、快手广告、穿山甲</td> </tr> <tr> <td>应用功能介绍</td> <td>getFunctionDescUrl()</td> <td>Sigmob、腾讯广告、百度联盟、穿山甲</td> </tr> </tbody> </table> <h2>2. 接入代码示例<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Android/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%8E%9F%E7%94%9F%E5%B9%BF%E5%91%8A/#_2-%E6%8E%A5%E5%85%A5%E4%BB%A3%E7%A0%81%E7%A4%BA%E4%BE%8B">​</a></h2> <h3>2.1 原生广告加载<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Android/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%8E%9F%E7%94%9F%E5%B9%BF%E5%91%8A/#_2-1-%E5%8E%9F%E7%94%9F%E5%B9%BF%E5%91%8A%E5%8A%A0%E8%BD%BD">​</a></h3> <p>java</p> <pre><code>private ViewGroup adContainer; private WMNativeAd nativeAd; private List&amp;lt;WMNativeAdData&amp;gt; nativeAdDataList; /** * PLACEMENT_ID 必填 * USER_ID 可选 * AD_COUNT 必填 1-3 * OPTIONS 自定义参数 可选 */ WMNativeAdRequest request = new WMNativeAdRequest(PLACEMENT_ID, USER_ID, AD_COUNT, OPTIONS); nativeAd = new WMNativeAd(this, request); nativeAd.loadAd(new WMNativeAd.NativeAdLoadListener() { @Override public void onError(WindMillError error, String placementId) { Log.d(&amp;quot;lance&amp;quot;, &amp;quot;onError:&amp;quot; + error.toString() + &amp;quot;:&amp;quot; + placementId); } @Override public void onFeedAdLoad(String placementId) { List&amp;lt;WMNativeAdData&amp;gt; unifiedADData = nativeAd.getNativeADDataList(); if (unifiedADData != null &amp;amp;&amp;amp; unifiedADData.size() &amp;gt; 0) { nativeAdDataList = unifiedADData; } } });</code></pre> <h3>2.2 原生广告展示<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Android/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%8E%9F%E7%94%9F%E5%B9%BF%E5%91%8A/#_2-2-%E5%8E%9F%E7%94%9F%E5%B9%BF%E5%91%8A%E5%B1%95%E7%A4%BA">​</a></h3> <p>java</p> <pre><code>/** * 请在收到onFeedAdLoad回调后再展示广告 * nativeAd.getNativeADDataList()获取广告 */ List&amp;lt;WMNativeAdData&amp;gt; nativeAdDataList = nativeAd.getNativeADDataList(); if (nativeAdDataList != null &amp;amp;&amp;amp; nativeAdDataList.size() &amp;gt; 0) { WMNativeAdData nativeAdData = nativeAdDataList.get(0); //绑定广告的监听 bindListener(nativeAdData); if (nativeAdData.isExpressAd()) {//模版广告 nativeAdData.render(); View expressAdView = nativeAdData.getExpressAdView(); //媒体最终将要展示广告的容器(这里可以直接先addView,也可以在收到onRenderSuccess回调后addView) if (adContainer != null) { adContainer.removeAllViews(); adContainer.addView(expressAdView); } } else {//自渲染广告 //创建一个装整个自渲染广告的容器 WMNativeAdContainer windContainer = new WMNativeAdContainer(this); //媒体自渲染的View NativeAdDemoRender adRender = new NativeAdDemoRender(); //将容器和view链接起来 nativeAdData.connectAdToView(this, windContainer, adRender); //媒体最终将要展示广告的容器 if (adContainer != null) { adContainer.removeAllViews(); adContainer.addView(windContainer); } } }</code></pre> <h3>2.3 原生广告销毁<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Android/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%8E%9F%E7%94%9F%E5%B9%BF%E5%91%8A/#_2-3-%E5%8E%9F%E7%94%9F%E5%B9%BF%E5%91%8A%E9%94%80%E6%AF%81">​</a></h3> <p>java</p> <pre><code>//原生广告单元的销毁 if (nativeAdDataList != null &amp;amp;&amp;amp; nativeAdDataList.size() &amp;gt; 0) { for (WMNativeAdData adData : nativeAdDataList) { if (adData != null) { adData.destroy(); } } } //原生请求广告对象的销毁 if (nativeAd != null) { nativeAd.destroy(); }</code></pre> <h3>2.4 原生广告预加载注意事项<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Android/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%8E%9F%E7%94%9F%E5%B9%BF%E5%91%8A/#_2-4-%E5%8E%9F%E7%94%9F%E5%B9%BF%E5%91%8A%E9%A2%84%E5%8A%A0%E8%BD%BD%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9">​</a></h3> <ul> <li> <p>需要在平台开启预加载功能。</p> </li> <li> <p>开启预加载功能后,sdk内部会在原生广告曝光后再次去请求广告。成功后不会通知媒体,会在媒体下次loadAd时立马返回预加载成功的广告。(<strong>需要是同一个WMNativeAd对象</strong>)</p> </li> <li>开启预加载功能后,要注意全局使用同一个WMNativeAd对象。(<strong>new注意判null</strong>)</li> </ul> <h3>2.5 原生广告Gromore自渲染注意事项<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Android/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%8E%9F%E7%94%9F%E5%B9%BF%E5%91%8A/#_2-5-%E5%8E%9F%E7%94%9F%E5%B9%BF%E5%91%8Agromore%E8%87%AA%E6%B8%B2%E6%9F%93%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9">​</a></h3> <ul> <li>Gromore原生自渲染需要绑定资源ID。</li> </ul> <p>java</p> <pre><code>public class NativeAdDemoRender implements WMNativeAdRender&amp;lt;WMNativeAdData&amp;gt; { @Override public void renderAdView(View view, final WMNativeAdData adData) { //gromore需要绑定资源ID //在bindViewForInteraction之前注册 if (adData.getNetworkId() == 22) {//gromore WMViewBinder viewBinder = new WMViewBinder.Builder(view.getId()) .titleId(text_title.getId()) .descriptionTextId(text_desc.getId()) .callToActionId(mCTAButton.getId()) .iconImageId(img_logo.getId()) .mainImageId(mImagePoster.getId()) .mediaViewIdId(mMediaViewLayout.getId()) .groupImage1Id(img_1.getId()) .groupImage2Id(img_2.getId()) .groupImage3Id(img_3.getId()) .shakeViewContainerId(shakeLayout.getId()) .build(); adData.registerViewBidder(viewBinder); } //重要! 这个涉及到广告计费,必须正确调用。convertView必须使用ViewGroup。 //作为creativeViewList传入,点击不进入详情页,直接下载或进入落地页,视频和图文广告均生效 adData.bindViewForInteraction(context, view, clickableViews, creativeViewList, img_dislike); } }</code></pre>

页面列表

ITEM_HTML