原生广告
<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>> <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&lt;WMNativeAdData&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(&quot;lance&quot;, &quot;onError:&quot; + error.toString() + &quot;:&quot; + placementId);
}
@Override
public void onFeedAdLoad(String placementId) {
List&lt;WMNativeAdData&gt; unifiedADData = nativeAd.getNativeADDataList();
if (unifiedADData != null &amp;&amp; unifiedADData.size() &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&lt;WMNativeAdData&gt; nativeAdDataList = nativeAd.getNativeADDataList();
if (nativeAdDataList != null &amp;&amp; nativeAdDataList.size() &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; nativeAdDataList.size() &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&lt;WMNativeAdData&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>