mdindex
Version:
markdown index
849 lines (766 loc) • 55.8 kB
HTML
<html><head> <title></title><meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <link rel="stylesheet" type="text/css" href="MdDefault/hljs.css"> <link rel="stylesheet" type="text/css" href="MdDefault/default.css"> <link rel="stylesheet" type="text/css" href="MdDefault/ocean.css"> <link rel="stylesheet" type="text/css" href="MdDefault/tree.css"> <script src="MdDefault/tree.js"></script> </head> <body><div id='preview-contents' class='note-content'><h2 id="-center-afp-android-sdk-center-"><strong><center>AFP Android SDK集成指南</center></strong></h2>
<h3 id="1-">1. 简介:</h3>
<ul>
<li>服务简介:
AFP SDK提供了聚合广告、收入
优化的流量托管等多种广告流量售卖方式,让您流量的策略更加灵活,并可以借助我们提供的人群定向、日志和报表分析等服务来获得最大化的收益。</li>
<li>SDK 简介:<ul>
<li>提供 <em><strong><font color='green'>5</font></strong></em> 种样式: 横幅、全/插屏、开屏、焦点图、信息流。</li>
</ul>
</li>
</ul>
<hr>
<h3 id="2-id">2. 建立广告位,获取广告位ID</h3>
<ul>
<li>通过网站创建广告位并配置广告平台,获取广告位ID</li>
</ul>
<h3 id="3-sdk-">3. SDK的集成</h3>
<h4 id="3-1-sdk-">3.1 SDK 目录结构</h4>
<ul>
<li>alimm_core:基础核心包,所有样式必须集成</li>
<li>alimm_banner:横幅(Banner)样式包</li>
<li>alimm_insert:插屏样式包</li>
<li>alimm_welcome:开屏样式包</li>
<li>alimm_loopimage:焦点图样式包</li>
<li>alimm_feed:信息流样式包</li>
<li>alimm_dependency:聚合广告平台依赖包(<a href="#ad_libs">对照表</a>)</li>
</ul>
<p>注:除基础核心包必须集成外,其余只需按需集成,需要类库 'android-support-v4.jar'</p>
<h4 id="3-2-sdk-">3.2 导入SDK 所需的文件</h4>
<ol>
<li>将<code>alimm_core</code>目录中<code>libs</code>子目录下jar包复制到本地工程<code>libs</code>子目录下。</li>
<li>将<code>alimm_core</code>目录中 <code>assets/mu/</code>文件夹中的apk文件添加到本地工程的 <code>assets/mu/</code>下。</li>
<li>将欲集成样式相对应的目录中<code>assets/mu/</code>文件夹中的apk文件添加到本地工程的 <code>assets/mu/</code>下,例如:只集成banner样式,则只需将<code>alimm_banner</code>中的apk文件添加到本地工程的 <code>assets/mu/</code>下</li>
<li>若使用了聚合广告平台,则需要将相应的聚合平台依赖包添加到本地工程<code>libs</code>目录下,例如:使用了百度平台,需要将<code>alimm_dependency</code>目录中<code>libs</code>子目录下<code>Baidu_MobAds_SDK_v4.4.jar</code>复制到本地工程<code>libs</code>子目录下。(<a href="#ad_libs">对照表</a>)</li>
</ol>
<p>注:不能修改apk文件的名字</p>
<h4 id="3-3-">3.3 添加渠道 (可选:用户按渠道进行推广)</h4>
<p>在<code>AndroidManifest.xml</code>文件的<code><application></code>中添加</p>
<h5 id="3-3-1-123-">3.3.1 添加渠道123 (可选:用户按渠道进行推广)</h5>
<h6 id="3-3-2-1234-">3.3.2 添加渠道1234 (可选:用户按渠道进行推广)</h6>
<pre class="prettyprint hljs"><code><<span class="hljs-built_in">meta</span>-data android:<span class="hljs-built_in">value</span>=<span class="hljs-string">"xxxxxxxx"</span> android:name=<span class="hljs-string">"MUNION_CHANNEL"</span>></<span class="hljs-built_in">meta</span>-data></code></pre><h4 id="3-4-">3.4 添加访问权限</h4>
<p>在<code>AndroidManifest.xml</code>文件中添加</p>
<pre class="prettyprint hljs"><code> <uses-permission android:<span class="hljs-built_in">name</span>=<span class="hljs-string">"android.permission.ACCESS_NETWORK_STATE"</span> />
<uses-permission android:<span class="hljs-built_in">name</span>=<span class="hljs-string">"android.permission.ACCESS_WIFI_STATE"</span> />
<uses-permission android:<span class="hljs-built_in">name</span>=<span class="hljs-string">"android.permission.WRITE_SETTINGS"</span> />
<uses-permission android:<span class="hljs-built_in">name</span>=<span class="hljs-string">"android.permission.READ_PHONE_STATE"</span> />
<uses-permission android:<span class="hljs-built_in">name</span>=<span class="hljs-string">"android.permission.WRITE_EXTERNAL_STORAGE"</span> />
<uses-permission android:<span class="hljs-built_in">name</span>=<span class="hljs-string">"android.permission.READ_EXTERNAL_STORAGE"</span> />
<uses-permission android:<span class="hljs-built_in">name</span>=<span class="hljs-string">"android.permission.CHANGE_WIFI_STATE"</span> />
<uses-permission android:<span class="hljs-built_in">name</span>=<span class="hljs-string">"android.permission.INTERNET"</span> /></code></pre><p>注意:这里只列出了必须的权限,若使用聚合广告请根据平台需求添加,请从Demo中的<code>AndroidManifest.xml</code>文件中查找对应平台需要的权限。</p>
<h4 id="3-5-">3.5 添加服务</h4>
<p>在<code>AndroidManifest.xml</code>文件中添加:</p>
<pre class="prettyprint hljs"><code> <span class="hljs-tag"><<span class="hljs-name">service</span> <span class="hljs-attr">android:name</span>=<span class="hljs-string">"com.alimama.mobile.sdk.shell.DownloadingService"</span>
<span class="hljs-attr">android:process</span>=<span class="hljs-string">":alimamaDownload"</span>></span>
<span class="hljs-tag"><<span class="hljs-name">intent-filter</span>></span>
<span class="hljs-tag"><<span class="hljs-name">action</span> <span class="hljs-attr">android:name</span>=<span class="hljs-string">"com.alimama.mobile.sdk.download.action"</span> /></span>
<span class="hljs-tag"></<span class="hljs-name">intent-filter</span>></span>
<span class="hljs-tag"></<span class="hljs-name">service</span>></span></code></pre><h4 id="3-5-">3.5 添加应用详情页</h4>
<p>在<code>AndroidManifest.xml</code>文件中添加:</p>
<pre class="prettyprint hljs"><code> <span class="hljs-tag"><<span class="hljs-name">activity</span>
<span class="hljs-attr">android:name</span>=<span class="hljs-string">"com.alimama.mobile.sdk.shell.MMUDetail"</span>
<span class="hljs-attr">android:configChanges</span>=<span class="hljs-string">"keyboard|orientation"</span>
<span class="hljs-attr">android:launchMode</span>=<span class="hljs-string">"standard"</span>
<span class="hljs-attr">android:screenOrientation</span>=<span class="hljs-string">"portrait"</span> /></span>
<span class="hljs-tag"><<span class="hljs-name">activity</span>
<span class="hljs-attr">android:name</span>=<span class="hljs-string">"com.alimama.mobile.sdk.shell.MMUBrowserWebView"</span>
<span class="hljs-attr">android:configChanges</span>=<span class="hljs-string">"keyboard|orientation"</span>
<span class="hljs-attr">android:launchMode</span>=<span class="hljs-string">"standard"</span>
<span class="hljs-attr">android:screenOrientation</span>=<span class="hljs-string">"portrait"</span> ></span>
<span class="hljs-tag"></<span class="hljs-name">activity</span>></span></code></pre><p>注意:这里只列出了必须要声明的Activity,若使用聚合广告请根据平台需求添加,请从Demo中的<code>AndroidManifest.xml</code>文件中查找对应平台需要的声明。</p>
<h4 id="初始化SDK"> 3.6 初始化SDK</h4>
<p>注意:初始化SDK必须在集成样式的页面之前,如果在首页集成样式,请重写Application,并在Application中进行初始化。</p>
<pre class="prettyprint hljs"><code> <span class="hljs-selector-tag">MMUSDKFactory</span><span class="hljs-selector-class">.getMMUSDK</span>()<span class="hljs-selector-class">.init</span>(getApplication());
<span class="hljs-selector-tag">MMUSDKFactory</span><span class="hljs-selector-class">.registerAcvitity</span>(BannerActivity.class);<span class="hljs-comment">//注册集成样式页的Activity</span></code></pre><p>注意:所有集成广告的Activity页面都需要注册。</p>
<h3 id="4-">4. 选择推广样式</h3>
<p>下面列出了SDK所支持的所有样式。</p>
<h4 id="4-1-banner-">4.1 横幅(banner)</h4>
<p>步骤1:确定已添加插件apk(如:Banner_plugin-1.0.apk)到项目工程的 <code>assets/mu/</code>目录下</p>
<p>步骤2:确定已添加聚合广告平台依赖包到本地工程的<code>libs</code>子目录下(该步骤非必须,只有用到聚合广告平台才需添加)</p>
<p>步骤3:在需要添加样式的布局文件中加入一个ViewGroup来给样式定位</p>
<ul>
<li><p>例如:</p>
<pre class="prettyprint hljs"><code><span class="hljs-tag"><<span class="hljs-name">RelativeLayout</span>
<span class="hljs-attr">android:layout_alignParentBottom</span>=<span class="hljs-string">"true"</span>
<span class="hljs-attr">android:id</span>=<span class="hljs-string">"@+id/bannerParent"</span>
<span class="hljs-attr">android:layout_width</span>=<span class="hljs-string">"fill_parent"</span>
<span class="hljs-attr">android:layout_height</span>=<span class="hljs-string">"wrap_content"</span>
<span class="hljs-attr">android:gravity</span>=<span class="hljs-string">"center_horizontal"</span>></span>
<span class="hljs-tag"></<span class="hljs-name">RelativeLayout</span>></span></code></pre></li>
</ul>
<p>步骤4:添加广告代码,添加广告代码前请确定已<a href="#初始化SDK">初始化SDK</a></p>
<ul>
<li><p>属性设置接口说明 - BannerProperties</p>
<p> 1.构造方法</p>
<pre class="prettyprint hljs"><code> properties = <span class="hljs-keyword">new</span> BannerProperties(<span class="hljs-keyword">this</span>,slotId, nat);</code></pre><p> 参数说明:slotId:广告位ID,nat:广告展示ViewGroup</p>
<p> 2.属性设置</p>
<pre class="prettyprint hljs"><code> <span class="hljs-selector-tag">1</span>. <span class="hljs-selector-tag">properties</span><span class="hljs-selector-class">.setStretch</span>(true); <span class="hljs-comment">//设置横幅广告宽度是否自适应屏幕</span>
<span class="hljs-selector-tag">2</span>. <span class="hljs-selector-tag">properties</span><span class="hljs-selector-class">.setManualRefresh</span>(false);<span class="hljs-comment">//设置为手动刷新模式,默认为false,关闭手动刷新模式</span>
<span class="hljs-selector-tag">3</span>. <span class="hljs-selector-tag">properties</span><span class="hljs-selector-class">.setAcct</span>(MmuProperties.ACCT.VIEW);<span class="hljs-comment">//设置请求方式,SDK方式:MmuProperties.ACCT.VIEW,SDK-数据方式:MmuProperties.ACCT.DATA,注意:需要和后台广告位设置保持一致</span>
<span class="hljs-selector-tag">4</span>. <span class="hljs-selector-tag">properties</span><span class="hljs-selector-class">.setMMUListener</span>(adsMogoListener);<span class="hljs-comment">//设置监听器 </span>
<span class="hljs-selector-tag">5</span>. <span class="hljs-selector-tag">properties</span><span class="hljs-selector-class">.addCustomAdapter</span>(id, customAdapter); <span class="hljs-comment">//添加自定义平台Adapter,只有用到自定义平台功能时需要添加</span></code></pre></li>
<li><p>加载广告接口说明 - MMUSDK</p>
<pre class="prettyprint hljs"><code> mmuSDK = MMUSDKFactory.getMMUSDK()<span class="hljs-comment">;</span>
mmuSDK.init(getApplication())<span class="hljs-comment">;//初始化SDK,该方法必须保证在集成代码前调用,可移到程序入口处调用</span>
mmuSDK.attach(properties)<span class="hljs-comment">; //通过properties属性,开始加载广告</span></code></pre></li>
<li><p>广告控制接口说明 - BannerController</p>
<pre class="prettyprint hljs"><code> <span class="hljs-number">1.</span> mController = properties.getController(); <span class="hljs-comment">//获取横幅控制器</span>
<span class="hljs-number">2.</span> mController.load();<span class="hljs-comment">//加载下一条广告,当设置为手动刷新模式,该方法才生效</span>
<span class="hljs-number">3.</span> mController.show(); <span class="hljs-comment">//展示广告,默认请求广告成功会自动展示</span>
<span class="hljs-number">4.</span> mController.close(); <span class="hljs-comment">//隐藏广告</span>
<span class="hljs-number">5.</span> mController.onBackPressed(); <span class="hljs-comment">//通知展示广告页面关闭,销毁广告</span></code></pre></li>
</ul>
<p>PS:更多设置请参考Demo中集成代码,<code>com.alimama.mobile.demo.BannerActivity</code>。</p>
<h4 id="4-2-">4.2 全/插屏</h4>
<p>步骤1:确认已添加插件apk(如:InsertPlugin-1.0.apk)到项目工程的 <code>assets/mu/</code>目录下</p>
<p>步骤2:确定已添加聚合广告平台依赖包到本地工程的<code>libs</code>子目录下(该步骤非必须,只有用到聚合广告平台才需添加)</p>
<p>步骤3:添加广告代码,添加广告代码前请确定已<a href="#初始化SDK">初始化SDK</a></p>
<ul>
<li><p>属性设置接口说明 - InsertProperties</p>
<p> 1.构造方法</p>
<pre class="prettyprint hljs"><code> properties = <span class="hljs-keyword">new</span> InsertProperties(<span class="hljs-keyword">this</span>,slotId);</code></pre><p> 参数说明:slotId:广告位ID</p>
<p> 2.属性设置</p>
<pre class="prettyprint hljs"><code> <span class="hljs-number">1</span>. properties.setShowMask(<span class="hljs-keyword">true</span>); <span class="hljs-regexp">//</span>设置弹出层背景是否半透明
<span class="hljs-number">2</span>. properties.setCanThrough(<span class="hljs-keyword">false</span>); <span class="hljs-regexp">//</span>设置弹出层背景是否能被点穿,<span class="hljs-keyword">false</span>表示不能被点穿,默认值<span class="hljs-keyword">false</span>
<span class="hljs-number">3</span>. properties.setManualRefresh(<span class="hljs-keyword">false</span>);<span class="hljs-regexp">//</span>设置手动刷新模式,<span class="hljs-keyword">false</span>表示不开启手动刷新模式,默认值<span class="hljs-keyword">false</span>
<span class="hljs-number">4</span>. properties.setAcct(MmuProperties.ACCT.VIEW);<span class="hljs-regexp">//</span>设置请求方式,SDK方式:MmuProperties.ACCT.VIEW,SDK-数据方式:MmuProperties.ACCT.DATA,注意:需要和后台广告位设置保持一致
<span class="hljs-number">5</span>. properties.setMMUInterstitialListener(adsMogoListener);<span class="hljs-regexp">//</span>设置监听器
<span class="hljs-number">6</span>. properties.addCustomAdapter(id, customAdapter); <span class="hljs-regexp">//</span>添加自定义平台Adapter,只有用到自定义平台功能时需要添加</code></pre></li>
<li><p>加载广告接口说明 - MMUSDK</p>
<pre class="prettyprint hljs"><code> mmuSDK = MMUSDKFactory.getMMUSDK()<span class="hljs-comment">;</span>
mmuSDK.init(getApplication())<span class="hljs-comment">;//初始化SDK,该方法必须保证在集成代码前调用,可移到程序入口处调用</span>
mmuSDK.attach(properties)<span class="hljs-comment">; //通过properties属性,开始加载广告</span></code></pre></li>
<li><p>广告控制接口说明 - InsertController</p>
<pre class="prettyprint hljs"><code> <span class="hljs-number">1.</span> mController = properties.getController(); <span class="hljs-comment">//获取插屏控制器</span>
<span class="hljs-number">2.</span> mController.loadAd();<span class="hljs-comment">//预加载下一条广告,只有开启手动刷新模式时,该方法才生效</span>
<span class="hljs-number">3.</span> mController.show(true);<span class="hljs-comment">//进入展示机会,参数传入true表,示若调用该方法时没有广告缓存,会一直等待到有缓存广告并展示,false表示调用该方法时若, 没有广告缓存,则此次不会展示广告</span>
<span class="hljs-number">4.</span> mController.cancel();<span class="hljs-comment">//取消展示机会,与show方法是成对, 出现的,若在调用show后一直没有广告展示,此时调用cancel方法,show方法失效即该次不会,在展示广告,如:在游戏开始时广告还没有展示出来,需要调用cancel取消展示机会。</span>
<span class="hljs-number">5.</span> mController.close();<span class="hljs-comment">//关闭插屏广告,广告在屏幕展现时,调用该方法会关闭广告</span></code></pre></li>
</ul>
<p>PS:更多设置请参考Demo中集成代码,<code>com.alimama.mobile.demo.InsertActivity</code>。</p>
<h4 id="4-3-">4.3 信息流</h4>
<p>步骤1:确认已添加插件apk(如:FeedPlugin-1.0.apk)到项目工程的 <code>assets/mu/</code>目录下</p>
<p>步骤2:确定已添加聚合广告平台依赖包到本地工程的<code>libs</code>子目录下(该步骤非必须,只有用到聚合广告平台才需添加)</p>
<p>步骤3:开发者需要创建一个或多个广告位,每个广告位对应一个feed</p>
<p>步骤4:添加广告代码,添加广告代码前请确定已<a href="#初始化SDK">初始化SDK</a></p>
<ul>
<li><p>属性设置接口说明 - MMUFeedProperties</p>
<p> 1.构造方法</p>
<pre class="prettyprint hljs"><code> properties = <span class="hljs-keyword">new</span> MMUFeedProperties(<span class="hljs-keyword">this</span>, slotId);</code></pre><p> 参数说明:slotId:广告位ID</p>
<p> 2.属性设置</p>
<pre class="prettyprint hljs"><code>
<span class="hljs-number">1.</span> properties.setReqCount(reqCount); <span class="hljs-comment">//设置请求广告条数,SDK 1.1.0版本以上添加该接口</span>
<span class="hljs-number">2.</span> properties.setAdSize(<span class="hljs-number">320</span>,<span class="hljs-number">100</span>); <span class="hljs-comment">//设置请求广告尺寸</span>
<span class="hljs-number">3.</span> properties.setAcct(MmuProperties.ACCT.VIEW);<span class="hljs-comment">//设置请求方式,SDK方式:MmuProperties.ACCT.VIEW,SDK-数据方式:MmuProperties.ACCT.DATA,注意:需要和后台广告位设置保持一致</span>
<span class="hljs-number">4.</span> properties.setMMUFeedListener(feedListener);<span class="hljs-comment">//设置监听器</span>
<span class="hljs-number">5.</span> properties.addCustomAdapter(id, customAdapter); <span class="hljs-comment">//添加自定义平台Adapter,只有用到自定义平台功能时需要添加</span></code></pre></li>
<li><p>加载广告接口说明 - MMUSDK</p>
<pre class="prettyprint hljs"><code> mmuSDK = MMUSDKFactory.getMMUSDK()<span class="hljs-comment">;</span>
mmuSDK.init(getApplication())<span class="hljs-comment">;//初始化SDK,该方法必须保证在集成代码前调用,可移到程序入口处调用</span>
mmuSDK.attach(properties)<span class="hljs-comment">; //通过properties属性,开始加载广告</span></code></pre></li>
</ul>
<h5 id="4-3-1-sdk-">4.3.1 <code>SDK</code>方式集成</h5>
<ul>
<li><p>广告模版接口说明 - MMUFeedController</p>
<pre class="prettyprint hljs"><code> <span class="hljs-number">1.</span> mController = properties.getController(); <span class="hljs-comment">//获取信息流控制器</span>
获取广告模版方式一:
<span class="hljs-number">2.</span> mController.getFeedView(<span class="hljs-keyword">this</span>, adInfos, <span class="hljs-keyword">params</span>);<span class="hljs-comment">//使用回调中获取的广告数据获取广告View,参数说明,this:Activity,adInfo:List<MMUAdInfo> 一组广告数据,params:LayoutParams</span>
获取广告模版方式二:
<span class="hljs-number">3.</span> mController.getFeedView(<span class="hljs-keyword">this</span>, adInfo, <span class="hljs-keyword">params</span>);<span class="hljs-comment">//使用回调中获取的广告View,参数说明,this:Activity,adInfo:MMUAdInfo 一个广告数据,params:LayoutParams,SDK 1.1.0版本以上支持</span></code></pre><p> 说明:方式一为获取<code>小图排列模版</code>,方式二为获取其他模版,对应后台配置模版</p>
</li>
<li><p>视频广告说明</p>
<pre class="prettyprint hljs"><code> <span class="hljs-number">1.</span> 视频广告模版支持Android <span class="hljs-number">4.0</span>及以上版本
<span class="hljs-number">2.</span> 视频广告划出屏幕后,需要手动remove掉视频模版View以释放资源</code></pre><p> 注意:SDK 1.1.0及以上版本支持视频模版</p>
</li>
<li><p>模版id说明 - MMUAdInfo.rtid</p>
<p> | rtid值 | 模版类型 | 版本说明 |
| -------- |:-------------:||
|1 |标题大图 ||
|9 |小图描述 ||
|3或10 |小图排列 ||
|11 |视频 |1.1.0及以上|</p>
</li>
</ul>
<p>PS:更多设置请参考Demo中集成代码,<code>com.alimama.mobile.demo.MMUFeedViewActivity</code>。</p>
<h5 id="4-3-2-sdk-">4.3.2 <code>SDK-数据</code>方式集成</h5>
<ul>
<li><p>数据接口说明 - MMUAdInfo</p>
<pre class="prettyprint hljs"><code> <span class="hljs-number">1.</span> adInfo.attachAdView(view); <span class="hljs-comment">//当广告展示时,必须调用attachAdView()方法并传入展示的View</span>
<span class="hljs-number">2.</span> adInfo.onClickAd(); <span class="hljs-comment">//当广告被点击时,必须调用onClickAd()方法</span>
<span class="hljs-number">3.</span> adInfo.onDestroy(); <span class="hljs-comment">//当广告被销毁时调用onDestroy()方法</span>
<span class="hljs-number">4.</span> adInfo.getContentValue(<span class="hljs-type">key</span>); <span class="hljs-comment">//调用getContentValue(),通过key获取对应的数据</span>
<span class="hljs-number">5.</span> adInfo.notifyVideoOnStart(); <span class="hljs-comment">//通知视频开始播放</span>
<span class="hljs-number">6.</span> adInfo.notifyVideoOnComplete(); <span class="hljs-comment">//通知视频播放完成</span>
<span class="hljs-number">7.</span> adInfo.onEvent(int eventId,String eventMsg); <span class="hljs-comment">//自定义事件上报</span></code></pre></li>
<li><p>信息流数据接口Key-Value说明</p>
</li>
</ul>
<table>
<thead>
<tr>
<th>Key</th>
<th style="text-align:right">Value</th>
<th>版本说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>MMUAdInfoKey.TITLE</td>
<td style="text-align:right">标题</td>
<td></td>
</tr>
<tr>
<td>MMUAdInfoKey.SUBTITLE</td>
<td style="text-align:right">副标题</td>
<td></td>
</tr>
<tr>
<td>MMUAdInfoKey.PRICE</td>
<td style="text-align:right">价格</td>
<td></td>
</tr>
<tr>
<td>MMUAdInfoKey.PROMOPRICE</td>
<td style="text-align:right">折扣价</td>
<td></td>
</tr>
<tr>
<td>MMUAdInfoKey.SELL</td>
<td style="text-align:right">销量</td>
<td></td>
</tr>
<tr>
<td>MMUAdInfoKey.IMG_SIZE</td>
<td style="text-align:right">图片大小</td>
<td></td>
</tr>
<tr>
<td>MMUAdInfoKey.LINK</td>
<td style="text-align:right">点击地址,当地址为空或空字符串时不需要处理</td>
<td></td>
</tr>
<tr>
<td>MMUAdInfoKey.CLICKTYPE</td>
<td style="text-align:right">点击类型</td>
<td></td>
</tr>
<tr>
<td>MMUAdInfoKey.RATING</td>
<td style="text-align:right">星级</td>
<td></td>
</tr>
<tr>
<td>MMUAdInfoKey.IMAGE_URL</td>
<td style="text-align:right">图片地址</td>
<td></td>
</tr>
<tr>
<td>MMUAdInfoKey.ICON_URL</td>
<td style="text-align:right">Icon地址</td>
<td></td>
</tr>
<tr>
<td>MMUAdInfoKey.RATION_NAME</td>
<td style="text-align:right">平台名称</td>
<td></td>
</tr>
<tr>
<td>MMUAdInfoKey.MODEL_TYPE</td>
<td style="text-align:right">模版类型</td>
<td></td>
</tr>
<tr>
<td>MMUAdInfoKey.VIDEO_URL</td>
<td style="text-align:right">视频地址</td>
<td>1.1.0 及以上</td>
</tr>
<tr>
<td>MMUAdInfoKey.AUTO_PLAY</td>
<td style="text-align:right">播放控制,1:手动播放、2:自动播放、3:仅WIFI自动播放</td>
<td>1.1.0 及以上</td>
</tr>
<tr>
<td>MMUAdInfoKey.VIDEO_TIME</td>
<td style="text-align:right">视频播放时长</td>
<td>1.1.0 及以上</td>
</tr>
</tbody>
</table>
<ul>
<li><p>数据接口补充字段说明 - adInfo.getContent()</p>
<p> | 字段名 | 类型 | 描述 |
| ------------------------- |:-------------:||
| “cid” | String | 广告创意ID|
| “provider” | Map类型 | 创意广告商|</p>
</li>
<li><p>字段 provider结构说明</p>
<p> | 字段名 | 类型 | 描述 |
| ------------------------- |:-------------:||
| “name” | String | 广告商名称 |
| “icon” | Map类型 | 广告商角标信息|</p>
</li>
<li><p>字段 icon结构说明</p>
<p> | 字段名 | 类型 | 描述 |
| ------------------------- |:-------------:||
| “icu” | String | 角标图片地址 |
| “icpos” | int | 角标位置 |
| “icsz” | Map | 角标尺寸 |</p>
</li>
</ul>
<p>PS:更多设置请参考Demo中集成代码,<code>com.alimama.mobile.demo.MMUFeedDataActivity</code>。</p>
<h4 id="4-6-">4.6 开屏</h4>
<p>步骤1:确认已添加插件apk(如:WelcomePlugin-1.0.apk)到项目工程的 <code>assets/mu/</code>目录下</p>
<p>步骤2:确定已添加聚合广告平台依赖包到本地工程的<code>libs</code>子目录下(该步骤非必须,只有用到聚合广告平台才需添加)</p>
<p>步骤3:添加广告代码,添加广告代码前请确定已<a href="#初始化SDK">初始化SDK</a></p>
<ul>
<li><p>属性设置接口说明 - WelcomeProperties</p>
<p> 1.构造方法</p>
<pre class="prettyprint hljs"><code> <span class="hljs-built_in">properties</span> = <span class="hljs-built_in">new</span> WelcomeProperties(<span class="hljs-built_in">context</span>, slotId,
<span class="hljs-number">1000</span>, <span class="hljs-number">3000</span>,adsMogoWelcomeListener );</code></pre><p> 参数说明:slotId:广告位ID,adsMogoWelcomeListener:监听器</p>
<p> 2.属性设置</p>
<pre class="prettyprint hljs"><code>
<span class="hljs-selector-tag">1</span>. <span class="hljs-selector-tag">properties</span><span class="hljs-selector-class">.setWelcomeContainer</span>(handleContainer);<span class="hljs-comment">//设置开屏广告展示容器</span>
<span class="hljs-selector-tag">2</span>. <span class="hljs-selector-tag">properties</span><span class="hljs-selector-class">.setStyle</span>(style); <span class="hljs-comment">//设置开屏广告展示的样式,如:是否展示状态栏</span>
<span class="hljs-selector-tag">3</span>. <span class="hljs-selector-tag">properties</span><span class="hljs-selector-class">.setAcct</span>(MmuProperties.ACCT.VIEW);<span class="hljs-comment">//设置请求方式,SDK方式:MmuProperties.ACCT.VIEW,SDK-数据方式:MmuProperties.ACCT.DATA,注意:需要和后台广告位设置保持一致</span>
<span class="hljs-selector-tag">4</span>. <span class="hljs-selector-tag">properties</span><span class="hljs-selector-class">.setAnimations</span>(animation);<span class="hljs-comment">//设置开屏展示动画</span>
<span class="hljs-selector-tag">5</span>. <span class="hljs-selector-tag">properties</span><span class="hljs-selector-class">.addCustomAdapter</span>(id, customAdapter); <span class="hljs-comment">//添加自定义平台Adapter,只有用到自定义平台功能时需要添加</span></code></pre></li>
<li><p>加载广告接口说明 - MMUSDK</p>
<pre class="prettyprint hljs"><code> mmuSDK = MMUSDKFactory.getMMUSDK()<span class="hljs-comment">;</span>
mmuSDK.init(getApplication())<span class="hljs-comment">;//初始化SDK,该方法必须保证在集成代码前调用,可移到程序入口处调用</span>
mmuSDK.attach(properties)<span class="hljs-comment">; //通过properties属性,开始加载广告</span></code></pre></li>
</ul>
<h5 id="4-6-1-sdk-">4.6.1 <code>SDK</code>方式集成</h5>
<ul>
<li><p>设置说明</p>
<pre class="prettyprint hljs"><code> <span class="hljs-selector-tag">1</span>. <span class="hljs-selector-tag">properties</span><span class="hljs-selector-class">.setWelcomeContainer</span>(handleContainer);<span class="hljs-comment">//设置开屏广告展示容器,必需设置不可以为null</span>
<span class="hljs-selector-tag">2</span>. <span class="hljs-selector-tag">properties</span><span class="hljs-selector-class">.setAcct</span>(MmuProperties.ACCT.VIEW);<span class="hljs-comment">//设置请求方式,注意:后台广告位设置必需为“SDK”</span></code></pre><p>PS:更多设置请参考Demo中集成代码,<code>com.alimama.mobile.demo.WelcomeActivity</code>。</p>
</li>
</ul>
<h5 id="4-6-2-sdk-">4.6.2 <code>SDK-数据</code>接口方式集成</h5>
<ul>
<li><p>设置说明</p>
<pre class="prettyprint hljs"><code> <span class="hljs-number">1.</span> properties.setAcct<span class="hljs-comment">(MmuProperties.ACCT.DATA)</span>;<span class="hljs-comment">//设置请求方式,注意:后台广告位设置必需为“SDK-数据”</span></code></pre></li>
<li><p>数据接口说明 - MMUAdInfo</p>
<pre class="prettyprint hljs"><code> <span class="hljs-number">1.</span> adInfo.attachAdView(view); <span class="hljs-comment">//当广告展示时,必须调用attachAdView()方法并传入展示的View</span>
<span class="hljs-number">2.</span> adInfo.onClickAd(); <span class="hljs-comment">//当广告被点击时,必须调用onClickAd()方法</span>
<span class="hljs-number">3.</span> adInfo.onDestroy(); <span class="hljs-comment">//当广告被销毁时调用onDestroy()方法</span>
<span class="hljs-number">4.</span> adInfo.getContentValue(<span class="hljs-type">key</span>); <span class="hljs-comment">//调用getContentValue(),通过key获取对应的数据</span></code></pre></li>
</ul>
<ul>
<li><p>开屏数据接口Key-Value说明</p>
<p> | Key | Value |
| ------------------------- |:-------------:|
| MMUAdInfoKey.DISPLAY_TIME | 广告展示时间 |
| MMUAdInfoKey.IMAGE_URL | 图片地址 |
| MMUAdInfoKey.LINK | 点击地址 |
| MMUAdInfoKey.CLICKTYPE | 点击类型 |
| MMUAdInfoKey.RATION_NAME | 平台名称 |</p>
</li>
<li><p>数据接口补充字段说明 - adInfo.getContent()</p>
<p> | 字段名 | 类型 | 描述 |
| ------------------------- |:-------------:||
| “cid” | String | 广告创意ID|
| “provider” | Map类型 | 创意广告商|</p>
</li>
<li><p>字段 provider结构说明</p>
<p> | 字段名 | 类型 | 描述 |
| ------------------------- |:-------------:||
| “name” | String | 广告商名称 |
| “icon” | Map类型 | 广告商角标信息|</p>
</li>
<li><p>字段 icon结构说明</p>
<p> | 字段名 | 类型 | 描述 |
| ------------------------- |:-------------:||
| “icu” | String | 角标图片地址 |
| “icpos” | int | 角标位置 |
| “icsz” | Map | 角标尺寸 |</p>
</li>
</ul>
<p>PS:更多设置请参考Demo中集成代码,<code>com.alimama.mobile.demo.WelcomeDataActivity</code>。</p>
<h4 id="4-7-">4.7 焦点图</h4>
<p>步骤1:确认已添加插件apk(如:LoopImagePlugin-1.0.apk)到项目工程的 <code>assets/mu/</code>目录下</p>
<p>步骤2:在需要添加样式的布局文件中加入一个ViewGroup来给样式定位</p>
<ul>
<li><p>示例</p>
<pre class="prettyprint hljs"><code><android<span class="hljs-selector-class">.support</span><span class="hljs-selector-class">.v4</span><span class="hljs-selector-class">.view</span><span class="hljs-selector-class">.ViewPager</span>
android:id=<span class="hljs-string">"@+id/loop"</span>
android:layout_width=<span class="hljs-string">"fill_parent"</span>
android:layout_height=<span class="hljs-string">"140dp"</span> /></code></pre></li>
</ul>
<p>步骤3:添加广告代码,添加广告代码前请确定已<a href="#初始化SDK">初始化SDK</a></p>
<ul>
<li><p>属性设置接口说明 - LoopImageProperties</p>
<p> 1.构造方法</p>
<pre class="prettyprint hljs"><code> properties = <span class="hljs-keyword">new</span> LoopImageProperties(<span class="hljs-keyword">this</span>,slotId);</code></pre><p> 参数说明:slotId:广告位ID</p>
<p> 2.属性设置</p>
<pre class="prettyprint hljs"><code>
<span class="hljs-selector-tag">1</span>. <span class="hljs-selector-tag">properties</span><span class="hljs-selector-class">.setContainer</span>(nat);<span class="hljs-comment">//设置焦点图广告展示容器</span>
<span class="hljs-selector-tag">2</span>. <span class="hljs-selector-tag">properties</span><span class="hljs-selector-class">.setMmuLoopImageListener</span>(listener); <span class="hljs-comment">//设置监听器</span>
<span class="hljs-selector-tag">3</span>. <span class="hljs-selector-tag">properties</span><span class="hljs-selector-class">.setAcct</span>(MmuProperties.ACCT.VIEW);<span class="hljs-comment">//设置请求方式,SDK方式:MmuProperties.ACCT.VIEW,SDK-数据方式:MmuProperties.ACCT.DATA,注意:需要和后台广告位设置保持一致</span>
<span class="hljs-selector-tag">4</span>. <span class="hljs-selector-tag">properties</span><span class="hljs-selector-class">.addCustomAdapter</span>(id, customAdapter); <span class="hljs-comment">//添加自定义平台Adapter,只有用到自定义平台功能时需要添加</span></code></pre></li>
<li><p>加载广告接口说明 - MMUSDK</p>
<pre class="prettyprint hljs"><code> mmuSDK = MMUSDKFactory.getMMUSDK()<span class="hljs-comment">;</span>
mmuSDK.init(getApplication())<span class="hljs-comment">;//初始化SDK,该方法必须保证在集成代码前调用,可移到程序入口处调用</span>
mmuSDK.attach(properties)<span class="hljs-comment">; //通过properties属性,开始加载广告</span></code></pre></li>
</ul>
<h5 id="4-7-1-sdk-">4.7.1 <code>SDK</code>方式集成</h5>
<ul>
<li><p>设置说明</p>
<pre class="prettyprint hljs"><code> <span class="hljs-selector-tag">1</span>. <span class="hljs-selector-tag">properties</span><span class="hljs-selector-class">.setContainer</span>(nat);<span class="hljs-comment">//设置焦点图广告展示容器,必需设置不可以为null</span>
<span class="hljs-selector-tag">2</span>. <span class="hljs-selector-tag">properties</span><span class="hljs-selector-class">.setAcct</span>(MmuProperties.ACCT.VIEW);<span class="hljs-comment">//设置请求方式,注意:后台广告位设置必需为“SDK”</span></code></pre></li>
</ul>
<p>PS:更多设置请参考Demo中集成代码,<code>com.alimama.mobile.demo.LoopImageActivity</code>。</p>
<h5 id="4-7-2-sdk-">4.7.2 <code>SDK-数据</code>接口方式集成</h5>
<ul>
<li><p>设置说明</p>
<pre class="prettyprint hljs"><code> <span class="hljs-number">1.</span> properties.setAcct<span class="hljs-comment">(MmuProperties.ACCT.DATA)</span>;<span class="hljs-comment">//设置请求方式,注意:后台广告位设置必需为“SDK-数据”</span></code></pre></li>
<li><p>数据接口说明 - MMUAdInfo</p>
<pre class="prettyprint hljs"><code> <span class="hljs-number">1.</span> adInfo.attachAdView(view); <span class="hljs-comment">//当广告展示时,必须调用attachAdView()方法并传入展示的View</span>
<span class="hljs-number">2.</span> adInfo.onClickAd(); <span class="hljs-comment">//当广告被点击时,必须调用onClickAd()方法</span>
<span class="hljs-number">3.</span> adInfo.onDestroy(); <span class="hljs-comment">//当广告被销毁时调用onDestroy()方法</span>
<span class="hljs-number">4.</span> adInfo.getContentValue(<span class="hljs-type">key</span>); <span class="hljs-comment">//调用getContentValue(),通过key获取对应的数据</span></code></pre></li>
</ul>
<ul>
<li><p>焦点图数据接口Key-Value说明</p>
<p> | Key | Value |
| ------------------------- |:-------------:|
| MMUAdInfoKey.DISPLAY_TIME | 广告展示时间 |
| MMUAdInfoKey.IMAGE_URL | 图片地址 |
| MMUAdInfoKey.LINK | 点击地址 |
| MMUAdInfoKey.CLICKTYPE | 点击类型 |
| MMUAdInfoKey.RATION_NAME | 平台名称 |</p>
</li>
<li><p>数据接口补充字段说明 - adInfo.getContent()</p>
<p> | 字段名 | 类型 | 描述 |
| ------------------------- |:-------------:||
| “cid” | String | 广告创意ID|
| “provider” | Map类型 | 创意广告商|</p>
</li>
<li><p>字段 provider结构说明</p>
<p> | 字段名 | 类型 | 描述 |
| ------------------------- |:-------------:||
| “name” | String | 广告商名称 |
| “icon” | Map类型 | 广告商角标信息|</p>
</li>
<li><p>字段 icon结构说明</p>
<p> | 字段名 | 类型 | 描述 |
| ------------------------- |:-------------:||
| “icu” | String | 角标图片地址 |
| “icpos” | int | 角标位置 |
| “icsz” | Map | 角标尺寸 |</p>
</li>
</ul>
<p>PS:更多设置请参考Demo中集成代码,<code>com.alimama.mobile.demo.LoopImageDataActivity</code>。</p>
<h3 id="5-">5.自定义广告平台</h3>
<h4 id="5-1-">5.1 简介</h4>
<ul>
<li>媒体可以通过自定义广告平台功能,添加自己使用的广告平台到AFP中,实现多广告平台的统一管理。</li>
<li><p>集成步骤:</p>
<pre class="prettyprint hljs"><code> <span class="hljs-number">1</span>) 在AFP网站端新建自定义平台
<span class="hljs-number">2</span>) 在对应的广告位上,配置新建的三方平台信息,并获取平台ID
<span class="hljs-number">3</span>) 按照AFP SDK的协议,实现自定义平台adapter
<span class="hljs-number">4</span>) 添加adapter到AFP</code></pre></li>
</ul>
<h4 id="5-2-">5.2 新建自定义平台</h4>
<ul>
<li><p>示例:</p>
<p> <img src="https://gw.alicdn.com/tps/TB1pyzzKFXXXXXWXpXXXXXXXXXX-1000-686.png =600x" alt=""></p>
</li>
</ul>
<h4 id="5-3-">5.3 配置平台信息</h4>
<ul>
<li><p>示例:</p>
<p> <img src="https://gw.alicdn.com/tps/TB1b9DuKFXXXXaTXpXXXXXXXXXX-1000-535.png =600x" alt=""></p>
</li>
</ul>
<h4 id="5-4-adapter-">5.4 Adapter代码实现说明</h4>
<ul>
<li><p>横幅Banner(MMUBannerCustomAdapter)</p>
<p> 需要继承 MMUBannerCustomAdapter,并实现以下事件</p>
<pre class="prettyprint hljs"><code> <span class="hljs-comment">/**
* 开始请求单一平台广告方法
*/</span>
<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">abstract</span> <span class="hljs-keyword">void</span> <span class="hljs-title">startRequestAd</span>(<span class="hljs-params"></span>)</span>;
<span class="hljs-comment">/**
* 展示完毕销毁单一平台广告方法
*/</span>
<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">abstract</span> <span class="hljs-keyword">void</span> <span class="hljs-title">onFinishClearCache</span>(<span class="hljs-params"></span>)</span>;
<span class="hljs-comment">/**
* 将单一平台的广告视图传递给AFPSDK,由AFPSDK将其添加到界面中
* @param adView 单一平台的广告
*/</span>
<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">addAdView</span>(<span class="hljs-params">ViewGroup adView</span>)</span>;
<span class="hljs-comment">/**
* 返回在服务器端配置的APPID,以json字符串返回
*
* @return 配置的value
*/</span>
<span class="hljs-function"><span class="hljs-keyword">public</span> String <span class="hljs-title">getAPPID</span>(<span class="hljs-params"></span>) </span>;
<span class="hljs-comment">/**
* 获取当前activity对象
* @return
*/</span>
<span class="hljs-function"><span class="hljs-keyword">public</span> Activity <span class="hljs-title">getMMUActivity</span>(<span class="hljs-params"></span>)</span>;
<span class="hljs-comment">/**
* 提供给开发者调用的 通知AFPSDK广告请求展示失败
*/</span>
<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">notifyMMUAdRequestAdFail</span>(<span class="hljs-params"></span>)</span>;
<span class="hljs-comment">/**
* 提供给开发者调用的 通知AFPSDK广告展示成功
*/</span>
<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">notifyMMUAdRequestAdSuccess</span>(<span class="hljs-params"></span>)</span>;</code></pre><p> 参考Demo,<code>com.alimama.mobile.demo.custom.BaiduBannerAdapter</code></p>
</li>
<li><p>插屏(MMUInterstitialCustomAdapter)</p>
<p> 需要继承 MMUInterstitialCustomAdapter,并实现以下事件</p>
<pre class="prettyprint hljs"><code> <span class="hljs-comment">/**
* 开始请求单一平台广告方法
*/</span>
<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">abstract</span> <span class="hljs-keyword">void</span> <span class="hljs-title">startRequestAd</span>(<span class="hljs-params"></span>)</span>;
<span class="hljs-comment">/**
* 开始展示单一平台广告方法
*/</span>
<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">abstract</span> <span class="hljs-keyword">void</span> <span class="hljs-title">startShowAd</span>(<span class="hljs-params"></span>)</span>;
<span class="hljs-comment">/**
* 展示完毕销毁单一平台广告方法
*/</span>
<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">abstract</span> <span class="hljs-keyword">void</span> <span class="hljs-title">onFinishClearCache</span>(<span class="hljs-params"></span>)</span>;
<span class="hljs-comment">/******************************** 提供用户直接调用的方法 *****************************************************/</span>
<span class="hljs-comment">/**
* 返回在服务器端配置的APPID,以json字符串返回
*
* @return 配置的value
*/</span>
<span class="hljs-function"><span class="hljs-keyword">public</span> String <span class="hljs-title">getAPPID</span>(<span class="hljs-params"></span>) </span>;
<span class="hljs-comment">/**
* 获取当前activity对象
* @return
*/</span>
<span class="hljs-function"><span class="hljs-keyword">public</span> Activity <span class="hljs-title">getMMUActivity</span>(<span class="hljs-params"></span>)</span>;
<span class="hljs-comment">/**
* 提供给开发者调用的 通知AFPSDK广告被点击
*/</span>
<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">notifyMMUAdClicked</span>(<span class="hljs-params"></span>)</span>;
<span class="hljs-comment">/**
* 提供给开发者调用的 通知AFPSDK广告被关闭
*/</span>
<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">notifyMMUAdCloseed</span>(<span class="hljs-params"></span>)</span>;
<span class="hljs-comment">/**
* 提供给开发者调用的 通知AFPSDK广告请求展示失败
*/</span>
<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">notifyMMUAdRequestAdFail</span>(<span class="hljs-params"></span>) </span>;
<span class="hljs-comment">/**
* 提供给开发者调用的 通知AFPSDK广告请求成功
*/</span>
<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">notifyMMUAdRequestAdSuccess</span>(<span class="hljs-params"></span>)</span>;
<span class="hljs-comment">/**
* 提供给开发者调用的 通知AFPSDK广告展示成功
*/</span>
<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">notifyMMUAdShowSuccess</span>(<span class="hljs-params"></span>) </span>;</code></pre><p> 参考Demo,<code>com.alimama.mobile.demo.custom.BaiduInsertAdapter</code></p>
</li>
<li><p>信息流(MMUFeedCustomAdapter)</p>
<p> 需要继承 MMUFeedCustomAdapter,并实现以下事件</p>
<pre class="prettyprint hljs"><code> <span class="hljs-comment"><span class="markdown">/**
* 开始请求单一平台广告方法
*/</span></span>
public <span class="hljs-keyword">abstract</span> <span class="hljs-keyword">void</span> startRequestAd();
<span class="hljs-comment"><span class="markdown">/<span class="hljs-strong">*****</span><span class="hljs-strong">*****</span><span class="hljs-strong">*****</span><span class="hljs-strong">*****</span><span class="hljs-strong">*****</span><span class="hljs-strong">*****</span><span class="hljs-strong">** 提供用户直接调用的方法 **</span><span class="hljs-strong">*****</span><span class="hljs-strong">*****</span><span class="hljs-strong">*****</span><span class="hljs-strong">*****</span><span class="hljs-strong">*****</span><span class="hljs-strong">*****</span><span class="hljs-strong">*****</span><span class="hljs-strong">*****</span><span class="hljs-strong">*****</span><span class="hljs-strong">*****</span>*/</span></span>
<span class="hljs-comment"><span class="markdown">/**
* 添加信息流数据
*
* @param adInfo 数据结构
* @param adInfoStateReporter 平台展示和点击上报实现
*/</span></span>
public <span class="hljs-keyword">void</span> addMMUAdInfo(HashMap<<span class="hljs-built_in">String</span>, <span class="hljs-built_in">Object</span>> adInfo,MMUAdInfoStateReporter adInfoStateReporter);
<span class="hljs-comment"><span class="markdown">/**
* 返回在服务器端配置的APPID,以json字符串返回
*
* @return 配置的value
*/</span></span>
public <span class="hljs-built_in">String</span> getAPPID();
<span class="hljs-comment"><span class="markdown">/**
* 获取当前activity对象
* @return
*/</span></span>
public Activity getMMUActivity();
<span class="hljs-comment"><span class="markdown">/**
* 提供给开发者调用的 通知AFPSDK广告请求展示失败
*/</span></span>
public <span class="hljs-keyword">void</span> notifyMMUAdRequestAdFail();
<span class="hljs-comment"><span class="markdown">/**
* 提供给开发者调用的 通知AFPSDK广告展示成功
*/</span></span>
public <span class="hljs-keyword">void</span> notifyMMUAdRequestAdSuccess();</code></pre><p> 参考Demo,<code>com.alimama.mobile.demo.custom.BaiduFeedAdapter</code></p>
</li>
<li><p>开屏(MMUWelcomeCustomAdapter)</p>
<p> 需要继承 MMUWelcomeCustomAdapter,并实现以下事件</p>
<p> ```
/**</p>
<ul>
<li><p>开始请求单一平台广告方法
*/
public abstract void startRequestAd();</p>
<p>/**</p>
</li>
<li><p>展示完毕销毁单一平台广告方法
*/
public abstract void onFinishClearCache();</p>
<p>/<strong><strong><strong><strong><strong><strong><strong><em>**</em></strong></strong></strong></strong></strong></strong></strong> 提供用户直接调用的方法 <strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong>*</strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong>/</p>
<p>/**</p>
</li>
<li>返回在服务器端配置的APPID,以json字符串返回</li>
<li></li>
<li><p>@return 配置的value
*/
public String getAPPID();</p>
<p>/**</p>
</li>
<li>获取当前activity对象</li>
<li><p>@return
*/
public Activity getMMUActivity();</p>
<p>/**</p>
</li>
<li>返回广告容器,需要把容器加到window上面展示</li>
<li><p>@return
*/
public ViewGroup getViewContainer() ;</p>
<p>/**</p>
</li>
<li>返回广告容器中广告的区域view</li>
<li>@return
*/
public ViewGroup getAdView();</li>
</ul>
</li>
</ul>
<pre class="prettyprint hljs"><code><span class="hljs-comment">/**
* 提供给开发者调用的 通知AFPSDK广告被点击
*/</span>
<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">notifyMMUAdClicked</span><span class="hljs-params">()</span> </span>;
<span class="hljs-comment">/**
* 提供给开发者调用的 通知AFPSDK广告被关闭
*/</span>
<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">notifyMMUAdCloseed</span><span class="hljs-params">()</span></span>;
<span class="hljs-comment">/**
* 提供给开发者调用的 通知AFPSDK广告请求展示失败
*/</span>
<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">notifyMMUAdRequestAdFail</span><span class="hljs-params">()</span> </span>;
<span class="hljs-comment">/**
* 提供给开发者调用的 通知AFPSDK广告展示成功
*/</span>
<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">notifyMMUAdShowSuccess</span><span class="hljs-params">()</span> </span>;
```
参考Demo,`com.alimama.mobile.demo.custom.BaiduWelcomeAdapter`</code></pre><h4 id="5-5-adapter-afp">5.5 添加Adapter到AFP</h4>
<pre class="prettyprint hljs"><code>自定义广告平台Adapter实现完成后,在初始化广告样式时通过以下方式添加Adapter,
示例:
properties.addCustomAdapter(<span class="hljs-built_in">id</span>, adapter);
<span class="hljs-built_in">id</span>: 在后台新建自定义平台后获取的平台<span class="hljs-built_in">id</span>
adapter: 媒体实现的自定义平台adapter</code></pre><p>参考Demo,<code>com.alimama.mobile.demo.BannerActivity</code></p>
<h3 id="6-">6. 备注</h3>
<h4 id="6-1-">6.1 媒体自定义标签</h4>
<pre class="prettyprint hljs"><code>媒体自定义标签可以通过广告样式的properties.setTag(<span class="hljs-keyword">tag</span>)的方式来添加。
其中 <span class="hljs-keyword">tag</span> <span class="hljs-title">格式为 属性:标签,标签,.... 多组属性使用分号隔开</span></code></pre><h4 id="6-2-">6.2 权限说明</h4>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tbody><tr>
<th scope="col" width="300">权限</th>
<th scope="col">用途</th>
</tr>
<tr>
<td>android.permission.INTERNET</td>
<td>允许应用程序联网,以便向我们的服务器端发送数据。</td>
</tr>
<tr>
<td>android.permission.ACCESS_NETWORK_STATE</td>
<td>获取用户手机的IMEI,用来唯一的标识用户。(如果您的应用会运行在无法读取IMEI的平板上,我们会将mac地址作为用户的唯一标识,请添加权限: android.permission.ACCESS_WIFI_STATE )</td>
</tr>
<tr>
<td>android.permission.READ_PHONE_STATE</td>
<td>检测网络状态</td>
</tr>
<tr>
<td>android.permission.WRITE_EXTERNAL_STORAGE</td>
<td>将更新的APK临时存在SD卡里。</td>
</tr>
</tbody></table>
<h4 id="ad_libs"> 6.3 广告平台依赖包对应表</h4>
<p><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tbody><tr>
<th scope="col" width="300">广告平台</th>
<th scope="col">依赖包</th>
</tr>
<tr>
<td>阿里妈妈</td>
<td>-</td>
</tr>
<tr>
<td>百度</td>
<td>Baidu_MobAds_SDK_v5.6.jar</td>
</tr>
<tr>
<td rowSpan="2">广点通</td>
<td>GDTUnionSDK.4.8.517.min.jar</td>
</tr>
<tr>
<td>android-support-v4.jar</td>
</tr>
<tr>
<td>AdMob</td>
<td>google-play-services-v8.4.87.jar</td>
</tr>
<tr>
<td>Inmobi</td>
<td>InMobi-5.2.1.jar</td>
</tr><br> <tr>
<td>亿动智道</td>
<td>SmartMad-SDK-Android_v3.0.4.jar</td>
</tr>
<tr>
<td rowSpan="8">安沃</td>
<td>Adwo_Android_SDK6.2.jar</td>
</tr>
<tr>
<td>assets/libadwo60.png</td>
</tr>
<tr>
<td>armeabi/libAdwoLocker.so</td>
</tr>
<tr>
<td>armeabi/libImmHapticMedia.so</td>
</tr>
<tr>
<td>arm64-v8a/libAdwoLocker.so</td>
</tr>
<tr>
<td>arm64-v8a/libImmHapticMedia.so</td>
</tr>
<tr>
<td>armeabi-v7a/libAdwoLocker.so</td>
</tr>
<tr>
<td>armeabi-v7a/libImmHapticMedia.so</td>
</tr>
<tr>
<td>多盟</td>
<td>domob_v4.6.4.jar.jar</td>
</tr>
</tbody></table>
注意:<code>-</code>代表不需要添加依赖包</p>
<h4 id="6-4-">6.4 混淆</h4>
<pre class="prettyprint hljs"><code>-<span class="ruby">dontwarn android.taobao.**
</span>-<span class="ruby">dontwarn com.taobao.**
</span>-<span class="ruby">dontwarn com.alimama.mobile.**
</span>-<span class="ruby">dontwarn android.app.**
</span>-<span class="ruby">dontwarn android.support.v4.**
</span>
-<span class="ruby">keepattributes Signature
</span>-<span class="ruby">keepattributes *Annotation*
</span>
-<span class="ruby">keep <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">com</span>.<span class="hljs-title">taobao</span>.** {*;</span> }
</span>-<span class="ruby">keep <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">com</span>.<span class="hljs-title">alimama</span>.**{*;</span> }
</span>-<span class="ruby">keep <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">com</span>.<span class="hljs-title">alimama</span>.<span class="hljs-title">mobile</span>.**{*;</span> }
</span>-<span class="ruby">keep <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">android</span>.<span class="hljs-title">taobao</span>.** {*;</span> }
</span>-<span class="ruby">keep <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">android</span>.<span class="hljs-title">support</span>.<span class="hljs-title">v4</span>.** { *;</span> }
</span>-<span class="ruby">keep <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">android</span>.<span class="hljs-title">app</span>.**{*;</span>}
</span>-<span class="ruby">keep <span class="hljs-class"><span class="hljs-keyword">class</span> **.<span class="hljs-title">R</span>$* {*;</span>}</span></code></pre><h3 id="7-">7. 技术支持</h3>
<p>请发邮件至<a href="mailto:afpsupport@list.alibaba-inc.com">afpsupport@list.alibaba-inc.com</a>,我们会尽快回复您。</p>
</div></body></html>