UNPKG

mdindex

Version:
849 lines (766 loc) 55.8 kB
<!DOCTYPE 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>注:除基础核心包必须集成外,其余只需按需集成,需要类库 &#39;android-support-v4.jar&#39;</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>&lt;application&gt;</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>&lt;<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>&gt;&lt;/<span class="hljs-built_in">meta</span>-data&gt;</code></pre><h4 id="3-4-">3.4 添加访问权限</h4> <p><code>AndroidManifest.xml</code>文件中添加</p> <pre class="prettyprint hljs"><code> &lt;uses-permission android:<span class="hljs-built_in">name</span>=<span class="hljs-string">"android.permission.ACCESS_NETWORK_STATE"</span> /&gt; &lt;uses-permission android:<span class="hljs-built_in">name</span>=<span class="hljs-string">"android.permission.ACCESS_WIFI_STATE"</span> /&gt; &lt;uses-permission android:<span class="hljs-built_in">name</span>=<span class="hljs-string">"android.permission.WRITE_SETTINGS"</span> /&gt; &lt;uses-permission android:<span class="hljs-built_in">name</span>=<span class="hljs-string">"android.permission.READ_PHONE_STATE"</span> /&gt; &lt;uses-permission android:<span class="hljs-built_in">name</span>=<span class="hljs-string">"android.permission.WRITE_EXTERNAL_STORAGE"</span> /&gt; &lt;uses-permission android:<span class="hljs-built_in">name</span>=<span class="hljs-string">"android.permission.READ_EXTERNAL_STORAGE"</span> /&gt; &lt;uses-permission android:<span class="hljs-built_in">name</span>=<span class="hljs-string">"android.permission.CHANGE_WIFI_STATE"</span> /&gt; &lt;uses-permission android:<span class="hljs-built_in">name</span>=<span class="hljs-string">"android.permission.INTERNET"</span> /&gt;</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">&lt;<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>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">intent-filter</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">action</span> <span class="hljs-attr">android:name</span>=<span class="hljs-string">"com.alimama.mobile.sdk.download.action"</span> /&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-name">intent-filter</span>&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-name">service</span>&gt;</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">&lt;<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> /&gt;</span> <span class="hljs-tag">&lt;<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> &gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-name">activity</span>&gt;</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">&lt;<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>&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-name">RelativeLayout</span>&gt;</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&lt;MMUAdInfo&gt; 一组广告数据,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>&lt;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> /&gt;</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&lt;<span class="hljs-built_in">String</span>, <span class="hljs-built_in">Object</span>&gt; 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="&#109;&#x61;&#105;&#108;&#x74;&#x6f;&#x3a;&#97;&#x66;&#x70;&#x73;&#117;&#x70;&#112;&#111;&#x72;&#116;&#64;&#108;&#105;&#x73;&#116;&#x2e;&#97;&#108;&#105;&#x62;&#x61;&#x62;&#x61;&#x2d;&#105;&#110;&#99;&#46;&#99;&#111;&#109;">&#97;&#x66;&#x70;&#x73;&#117;&#x70;&#112;&#111;&#x72;&#116;&#64;&#108;&#105;&#x73;&#116;&#x2e;&#97;&#108;&#105;&#x62;&#x61;&#x62;&#x61;&#x2d;&#105;&#110;&#99;&#46;&#99;&#111;&#109;</a>,我们会尽快回复您。</p> </div></body></html>