原生广告
<h1>原生广告集成相关<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/Unity/%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%E9%9B%86%E6%88%90%E7%9B%B8%E5%85%B3"></a></h1>
<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/Unity/%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-%E6%8E%A5%E5%8F%A3api%E8%AF%B4%E6%98%8E"></a></h2>
<h3>1.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/Unity/%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-%E5%8E%9F%E7%94%9F%E5%B9%BF%E5%91%8A%E8%AF%B7%E6%B1%82%E7%B1%BB"></a></h3>
<p><strong>Request</strong></p>
<table>
<thead>
<tr>
<th>属性成员</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>PlacementId</td>
<td>广告位</td>
</tr>
<tr>
<td>UserId</td>
<td>媒体用户体系ID ,可选 ,默认null</td>
</tr>
<tr>
<td>options</td>
<td>扩展参数,默认null</td>
</tr>
</tbody>
</table>
<h3>1.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/Unity/%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-%E5%8E%9F%E7%94%9F%E5%B9%BF%E5%91%8A%E5%AF%B9%E8%B1%A1%E7%B1%BB"></a></h3>
<p><strong>NativeAdManager</strong></p>
<table>
<thead>
<tr>
<th>方法</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>NativeAdManager(Request request)</td>
<td>初始化原生广告对象,request 为广告请求对象,必传</td>
</tr>
<tr>
<td>SetLoadListener(INativeAdLoadListener listener)</td>
<td>设置原生加载接口回调</td>
</tr>
<tr>
<td>SetInteractionListener(INativeAdInteractionListener listener)</td>
<td>设置原生交互接口回调</td>
</tr>
<tr>
<td>SetDislikeListener(INativeAdDislikeListener listener)</td>
<td>设置原生关闭广告反馈接口回调</td>
</tr>
<tr>
<td>LoadAd(int width, int height)</td>
<td>发起广告加载,width,height为广告容器的尺寸,单位为像素</td>
</tr>
<tr>
<td>ShowAd(loat x, float y)</td>
<td>展示广告,x,y为显示广告坐标,单位为像素</td>
</tr>
<tr>
<td>ShowAd(NativeAdView nativeAdView)</td>
<td>展示广告,nativeAdView 为原生自定义View对象</td>
</tr>
<tr>
<td>Dispose()</td>
<td>销毁并关闭广告</td>
</tr>
<tr>
<td>String PlacementId</td>
<td>广告对象使用的广告位</td>
</tr>
<tr>
<td>AdInfo GetAdInfo()</td>
<td>获取广告信息AdInfo对象,成功播放回调后获取有效</td>
</tr>
<tr>
<td>List<AdInfo> GetCacheAdInfoList()</td>
<td>查询当前广告位的所有缓存信息的AdInfo对象、在广告加载成功后调用。</td>
</tr>
</tbody>
</table>
<h3>1.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/Unity/%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-%E5%B9%BF%E5%91%8A%E5%9B%9E%E8%B0%83%E8%AF%B4%E6%98%8E"></a></h3>
<p><strong>INativeAdLoadListener</strong> 原生加载回调说明</p>
<table>
<thead>
<tr>
<th>回调方法</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>OnAdError (NativeAdManager ad, Error error)</td>
<td>广告加载失败</td>
</tr>
<tr>
<td>OnAdLoad (NativeAdManager ad)</td>
<td>广告加载成功</td>
</tr>
</tbody>
</table>
<p><strong>INativeAdInteractionListener</strong> 原生加载回调说明</p>
<table>
<thead>
<tr>
<th>回调方法</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>OnAdShow (NativeAdManager ad)</td>
<td>广告开始展示</td>
</tr>
<tr>
<td>OnAdClick (NativeAdManager ad)</td>
<td>广告被用户点击</td>
</tr>
<tr>
<td>onAdVideoPlayerStatusChanged (NativeAdManager ad,MediaPlayerStatus status)</td>
<td>视频播放状态变化</td>
</tr>
</tbody>
</table>
<p><strong>INativeAdInteractionListener</strong> 原生加载回调说明</p>
<table>
<thead>
<tr>
<th>回调方法</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>OnShow (NativeAdManager ad)</td>
<td>用户广告反馈框展示</td>
</tr>
<tr>
<td>OnSelected (NativeAdManager ad,int index, string message, bool adClose)</td>
<td>用户选择反馈项目, index 反馈条目,message 反馈内容, adClose 是否关闭广告</td>
</tr>
<tr>
<td>OnCancel (NativeAdManager ad)</td>
<td>用户取消反馈</td>
</tr>
</tbody>
</table>
<h3>1.4 原生广告自定义View类说明<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/Unity/%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-%E5%8E%9F%E7%94%9F%E5%B9%BF%E5%91%8A%E8%87%AA%E5%AE%9A%E4%B9%89view%E7%B1%BB%E8%AF%B4%E6%98%8E"></a></h3>
<p><strong>NativeAdView</strong> 原生广告自定义View</p>
<table>
<thead>
<tr>
<th>属性成员</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>NativeAdViewItem rootView</td>
<td>广告根容器</td>
</tr>
<tr>
<td>NativeAdViewItem iconView</td>
<td>应用图标</td>
</tr>
<tr>
<td>NativeAdViewItem adLogoView</td>
<td>广告logo</td>
</tr>
<tr>
<td>NativeAdViewItem titleView</td>
<td>广告标题</td>
</tr>
<tr>
<td>NativeAdViewItem descriptView</td>
<td>广告描述</td>
</tr>
<tr>
<td>NativeAdViewItem mainAdView</td>
<td>主广告(大图或者视频)</td>
</tr>
<tr>
<td>NativeAdViewItem dislikeButton</td>
<td>广告关闭按钮</td>
</tr>
<tr>
<td>NativeAdViewItem ctaButton</td>
<td>CTA转化按钮</td>
</tr>
</tbody>
</table>
<p><strong>NativeAdViewItem</strong> 原生广告自定义组件属性配置</p>
<table>
<thead>
<tr>
<th>属性成员</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>int x</td>
<td>x坐标,相对于父容器,默认值0</td>
</tr>
<tr>
<td>int y</td>
<td>y坐标,相对于父容器,默认值0</td>
</tr>
<tr>
<td>int width</td>
<td>宽,默认值0</td>
</tr>
<tr>
<td>int height</td>
<td>高,默认值0</td>
</tr>
<tr>
<td>bool pixel</td>
<td>是否使用像素单位,默认值false</td>
</tr>
<tr>
<td>String backgroudColor</td>
<td>背景色(#FFFFFF),默认值空</td>
</tr>
<tr>
<td>String textColor</td>
<td>文字颜色,默认值空</td>
</tr>
<tr>
<td>int fontSize</td>
<td>字体大小,默认0,系统默认</td>
</tr>
<tr>
<td>int scaleType</td>
<td>缩放模式,0,1,2;</td>
</tr>
</tbody>
</table>
<p>iOS<br />
0:UIViewContentModeScaleToFill<br />
1:UIViewContentModeScaleAspectFit<br />
2:UIViewContentModeCenter;<br />
Android<br />
0:FIT_CENTER<br />
1: FIT_XY<br />
2:CENTER |
| int textAlignment | 文字对齐模式,0,1,2;<br />
iOS<br />
0:NSTextAlignmentLeft<br />
1:NSTextAlignmentCenter<br />
2:NSTextAlignmentRight;<br />
Android<br />
0:TEXT_ALIGNMENT_INHERIT<br />
1: TEXT_ALIGNMENT_CENTER<br />
2:TEXT_ALIGNMENT_TEXT_END |
| bool isCtaClick | 自定义转化点击,默认false |</p>
<h3>1.5 安卓下载应用六要素信息<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/Unity/%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-%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><strong>AppInfo</strong></p>
<p>由于国内监管部门要求,在安卓下载类广告中,需要给用户披露下载的应用的六要素信息。 开发者可以通过<code>GetAppInfo()</code> 方法获取。</p>
<p>六要素信息包括</p>
<table>
<thead>
<tr>
<th>信息</th>
<th>字段</th>
<th>支持的广告网络</th>
</tr>
</thead>
<tbody>
<tr>
<td>应用名称</td>
<td>appName</td>
<td>Sigmob、腾讯广告、百度联盟、快手广告、穿山甲、Taptap</td>
</tr>
<tr>
<td>开发者名称</td>
<td>developerName</td>
<td>Sigmob、腾讯广告、百度联盟、快手广告、穿山甲、Taptap</td>
</tr>
<tr>
<td>应用版本</td>
<td>appVersion</td>
<td>Sigmob、腾讯广告、百度联盟、快手广告、穿山甲、Taptap</td>
</tr>
<tr>
<td>隐私协议</td>
<td>privacyUrl</td>
<td>Sigmob、腾讯广告、百度联盟、快手广告、穿山甲</td>
</tr>
<tr>
<td>权限列表</td>
<td>permissionInfoUrl</td>
<td>Sigmob、腾讯广告、百度联盟、快手广告、穿山甲</td>
</tr>
<tr>
<td>权限列表文案</td>
<td>permissionInfo</td>
<td>Sigmob、腾讯广告、百度联盟、快手广告、穿山甲</td>
</tr>
<tr>
<td>应用功能介绍</td>
<td>functionDescUrl</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/Unity/%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-%E7%A4%BA%E4%BE%8B%E4%BB%A3%E7%A0%81"></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/Unity/%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%88%9B%E5%BB%BA%E5%8E%9F%E7%94%9F%E5%B9%BF%E5%91%8A%E5%AF%B9%E8%B1%A1"></a></h3>
<pre><code>Request request = new Request();
request.PlacementId = id;
request.UserId = &quot;unity_user_1&quot;;
adManager = new NativeAdManager(request);</code></pre>
<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/Unity/%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-%E8%AE%BE%E7%BD%AE%E7%9B%91%E5%90%AC%E5%9B%9E%E8%B0%83"></a></h3>
<pre><code>#region &quot;NativeAdLoadListener&quot;
private sealed class NativeAdLoadListener : INativeAdLoadListener
{
public void OnAdLoad(NativeAdManager ad)
{
Debug.Log(&quot;SigmobUnityPlugin -- OnAdLoad ---- &quot; + ad.PlacementId);
}
public void OnAdError(NativeAdManager ad, Error error)
{
Debug.Log(&quot;SigmobUnityPlugin -- OnAdError ---- &quot; + ad.PlacementId + &quot;, error = &quot; + error.ToString());
}
}
#endregion
#region &quot;NativeAdLoadListener&quot;
private sealed class NativeAdInteractionListener : INativeAdInteractionListener
{
NativeAdManager nativeAdManager;
public NativeAdInteractionListener(NativeAdManager adManager)
{
this.nativeAdManager = adManager;
}
public void OnAdClick(NativeAdManager ad)
{
Debug.Log(&quot;SigmobUnityPlugin -- OnAdClick ---- &quot; + ad.PlacementId);
}
public void OnAdShow(NativeAdManager ad)
{
Debug.Log(&quot;SigmobUnityPlugin -- OnAdShow ---- &quot; + ad.PlacementId);
Debug.Log(&quot;SigmobUnityPlugin -- getAdInfo ---- &quot; + this.nativeAdManager?.GetAdInfo().ToString());
}
public void OnAdVideoPlayerStatusChanged(NativeAdManager ad, MediaPlayerStatus status)
{
Debug.Log(&quot;SigmobUnityPlugin -- OnAdVideoPlayerStatusChanged:&quot; + status + &quot;, placementId = &quot; + ad.PlacementId);
}
}
#endregion
#region &quot;NativeAdDislikeListener&quot;
private sealed class NativeAdDislikeListener : INativeAdDislikeListener
{
public void OnCancel(NativeAdManager ad)
{
Debug.Log(&quot;SigmobUnityPlugin -- OnCancel ---- &quot;);
}
public void OnSelected(NativeAdManager ad,int index, string message, bool adClose)
{
Debug.Log(&quot;SigmobUnityPlugin -- OnSelected ---- &quot;);
}
public void OnShow(NativeAdManager ad)
{
Debug.Log(&quot;SigmobUnityPlugin -- OnShow ---- &quot;);
}
}
#endregion
adManager.SetLoadListener(new NativeAdLoadListener());
adManager.SetInteractionListener(new NativeAdInteractionListener(adManager));
adManager.SetDislikeListener(new NativeAdDislikeListener());</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/Unity/%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%8A%A0%E8%BD%BD"></a></h3>
<pre><code>adManager.LoadAd(Screen.width-50*2, 0);</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/Unity/%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%E6%92%AD%E6%94%BE"></a></h3>
<pre><code>adManager.ShowAd(50, 600);</code></pre>
<h3>2.4 原生广告自定义View播放<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/Unity/%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%E8%87%AA%E5%AE%9A%E4%B9%89view%E6%92%AD%E6%94%BE"></a></h3>
<pre><code>NativeAdView nativeAdView = new NativeAdView();
NativeAdViewItem rootView = new NativeAdViewItem(50,350,300,350,false);
nativeAdView.rootView = rootView;
NativeAdViewItem mainAdView = new NativeAdViewItem(5, 5, 290, 200, false);
nativeAdView.mainAdView = mainAdView;
NativeAdViewItem iconView = new NativeAdViewItem(5, 210, 50, 50, false);
nativeAdView.iconView = iconView;
NativeAdViewItem adLogoView = new NativeAdViewItem(240, 180, 15, 15, false);
nativeAdView.adLogoView = adLogoView;
NativeAdViewItem titleView = new NativeAdViewItem(60, 210, 200, 20, false);
nativeAdView.titleView = titleView;
NativeAdViewItem descriptView = new NativeAdViewItem(60, 230, 230, 20, false);
nativeAdView.descriptView = descriptView;
NativeAdViewItem dislikeButton = new NativeAdViewItem(260, 210, 20, 20, false);
nativeAdView.dislikeButton = dislikeButton;
NativeAdViewItem ctaButton = new NativeAdViewItem(20, 265, 260, 45, false);
nativeAdView.ctaButton = ctaButton;
adManager.ShowAd(nativeAdView);</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/Unity/%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>需要是同一个NativeAdManager对象</strong>)</p>
</li>
<li>开启预加载功能后,要注意全局使用同一个NativeAdManager对象。(<strong>new注意判null</strong>)</li>
</ul>