有米积分墙的使用

目录

 [隐藏

准备工作

步骤一.将 youmi-android.jar 导入您的工程中。

  1. 右键您的工程根目录,选择“Properties”
  2. 在左面板中选择“Java Build Path”
  3. 然后选择“Libraries”标签
  4. 点击“Add External JARs…”
  5. 选择 youmi-android.jar 的目录路径.
  6. 点击“OK”即导入成功

步骤二.在manifest.xml文件中配置用户权限

请务必配置以下权限,否则将有可能获取不到广告。

  1. android.permission.INTERNET,连接网络权限 INTERNET ,用于请求广告
  2. android.permission.READ_PHONE_STATE,用于精确统计用户手机的系统信息
  3. android.ACCESS_NETWORK_STATE,用于精确识别网络接入点等信息
  4. android.permission.ACCESS_COARSE_LOCATION,有助于精准投放地域广告以及帮助统计使用应用程序的用户的地区分布情况
  5. android.permission.WRITE_EXTERNAL_STORAGE,有助于实现图片资源的缓存,节省流量,并可获得更好的用户体验

请将下面权限配置代码复制到 AndroidManifest.xml 文件中 :

 <uses-permission android:name="android.permission.INTERNET"></uses-permission> 
 <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission> 
 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission> 
 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

步骤三.在AndroidManifest.xml中添加AdActivity

AdActivity是广告详情展示的载体,请在AndroidManifest.xml中添加AdActivity:

<activity android:name="net.youmi.android.AdActivity"
 android:configChanges="keyboard|keyboardHidden|orientation"/>

步骤四.初始化账号信息

在主Activity的onCreate中调用AdManager.init() 初始化 App ID 、App Secret、请求广告间隔和测试模式等参数(请务必在任意AdView初始化前调用一次)。

  //第一个参数为您的应用发布Id
  //第二个参数为您的应用密码
  //第三个参数是请求广告的间隔,有效的设置值为30至200,单位为秒
  //第四个参数是设置测试模式,设置为true时,可以获取测试广告,正式发布请设置此参数为false  
  AdManager.init(Context context,String appid, String appsec, int intervalSecond,  boolean isTestMode);
  • !注意:3.04版本开始AdManager.init方法的参数改为五个,加上了Context参数
  • !请将测试模式设置为false后上传至网站等待审核。
  • !未上传应用安装包、未通过审核的应用、模拟器运行,都只能获得测试广告,审核通过后,模拟器上依旧是测试广告,真机才会获取到正常的广告。

步骤五.设置发布渠道号【可选】

有米广告条 3.02版以后的sdk加入了分发渠道号设置,以后可以统计来自各个分发渠道的数据。
该设置为可选,当没有设置发布渠道号时,将采用默认渠道号0。
设置方法如下: 把以下代码复制到AndroidManifest.xml 文件中:

  <meta-data android:name="YOUMI_CHANNEL" android:value="渠道编号"></meta-data>

注意:请在AndroidManifest.xml配置中加入meta-data参数,其中key为"YOUMI_CHANNEL" ,value为int型的渠道编号,请为每个不同渠道号打一个独立的包。详细的渠道编号请参见: http://wiki.youmi.net/wiki/PromotionChannelIDs

常用布局方式

使用xml布局嵌入广告

步骤一.建立attrs.xml文件

在 res/values 文件夹中添加 attrs.xml。如果你没有添加这个文件,那你将不能在 layout 中设置 AdView 的属性。attrs.xml 文件的内容如下:

 <?xml version="1.0" encoding="utf-8"?>
 <resources>
  <declare-styleable name="net.youmi.android.AdView">                
   <!--广告背景颜色[只对文字广告有效](取值范围为#000000----#ffffff) -->        
   <attr name="backgroundColor" format="color" />                      
   <!--广告文本颜色[只对文字广告有效](取值范围为#000000----#ffffff) -->
   <attr name="textColor" format="color" />
   <!--广告背景透明度[只对文字广告有效],默认为 255,设置范围0-255 -->
   <attr name="backgroundTransparent"  format="integer"/>
  </declare-styleable>
 </resources>
步骤二.在布局xml中嵌入有米广告视图

以下为一个实例:

 <?xml version="1.0" encoding="utf-8"?>
 <!--  需要设置命名空间 :umadsdk  -->
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:umadsdk="http://schemas.android.com/apk/res/com.youmi"
     android:orientation="vertical"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent">      
    <net.youmi.android.AdView
     android:id="@+id/adView"  
     android:layout_width="fill_parent"  
     android:layout_height="wrap_content"
     umadsdk:textColor="#ffffff"  
     umadsdk:backgroundColor="#4076AA"
     umadsdk:backgroundTransparent="155"/> 
 </LinearLayout>

!注意: xmlns:umadsdk=”http://schemas.android.com/apk/res/您的应用包名” 这句一定要加上,不然编辑器会提示错误。

步骤三.XML布局代码部分
 public class XmlSample extends Activity {
 
 
 	@Override
 	protected void onCreate(Bundle savedInstanceState) {
 		// TODO Auto-generated method stub
 		super.onCreate(savedInstanceState); 
               //              应用Id          应用密码        广告请求间隔(s)   设置测试模式[false为发布模式] 
                AdManager.init(this,"XXXXXXXXXXXX", "XXXXXXXXXXXX",  30,               false); 
 		setContentView(com.youmi.R.layout.xmlsample); 
 	}
 }

使用代码布局嵌入广告

以下是一个示例

 public class CodeSample extends Activity{
 
 
 
 
 	/** Called when the activity is first created. */
 	@Override
 	protected void onCreate(Bundle savedInstanceState) {
 		// TODO Auto-generated method stub
 		super.onCreate(savedInstanceState); 
 
               //              应用Id          应用密码        广告请求间隔(s)   设置测试模式[false为发布模式] 
                AdManager.init(this,"XXXXXXXXXXXX", "XXXXXXXXXXXX",  30,               false); 
 
 	        LinearLayout layout=new LinearLayout(this); 
 		layout.setOrientation(LinearLayout.VERTICAL); 
 		layout.setBackgroundResource(R.drawable.bg);
 
 
 		//初始化广告视图,可以使用其他的构造函数设置广告视图的背景色、透明度及字体颜色
 		AdView adView = new AdView(this); 
 		LayoutParams params = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);		
 		layout.addView(adView, params); 
 
 
 
 		setContentView(layout);
 	}  	
 
 }

使用悬浮布局嵌入广告

以下是一个示例

 public class SuspensoidSample extends Activity{
 
 
 	@Override
 	protected void onCreate(Bundle savedInstanceState) {
 		// TODO Auto-generated method stub
 		super.onCreate(savedInstanceState);
               //              应用Id          应用密码        广告请求间隔(s)   设置测试模式[false为发布模式] 
                AdManager.init(this,"XXXXXXXXXXXX", "XXXXXXXXXXXX",  30,               false); 
 
 		setContentView(R.layout.main); 
 
 
 		//初始化广告视图
 		AdView adView = new AdView(this);
 
 		FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.FILL_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);
 
 		//设置广告出现的位置(悬浮于屏幕右下角)		 
 		params.gravity=Gravity.BOTTOM|Gravity.RIGHT; 
 
 		//将广告视图加入Activity中
 		addContentView(adView, params); 
 
 	} 
 }

常见问题

版本更新内容

3.0版

  1. 全新的广告条界面。
  2. 重新定义广告条尺寸,详情请查看文档。
  3. 支持应用程序版本更新功能。
  4. 重新定义AdListener接口为AdViewListener,同时重命名其方法onReceiveAd为onAdViewSwitchedAd。并且修改了AdView的setAdListener(AdListener adListener)方法为setAdViewListener(AdViewListener listener)。详情请查看API文档。
  5. 为AdView类新增了一个方法:refreshAd()。调用该方法尝试刷新AdView展示的广告。在某些情况下,如想在一个停留时间极短的界面上快速地显示广告条,可以调用该方法尝试刷新广告,这样可以最大可能地避免出现这样的情况:一个只停留十几秒的界面由于广告没有及时出来而错过了展示广告的机会。详情请查看API文档
  6. 修改了AdManager类的init方法,取消了旧版本的appVersion参数,现在init方法只有4个参数。详情请查看API文档。
  7. 为AdManager新增了一个方法:disableUpdateApp。调用该方法可以取消使用应用程序版本更新功能。除非有特别需要,否则请不要调用此接口。详情请查看API文档
  8. 为AdManager新增了一个方法:setDonotClearWebViewCache。调用该方法设置SDK不删除所使用的WebView的缓存。除非有特别需要,否则请不要调用此接口。详情请查看API文档
  9. 修复了SDK内置网页浏览页在cmwap环境下出现乱码的一个bug。
  10. 该版本SDK兼容系统版本1.6及以上,对于1.5版本的系统可能有一定的兼容性问题。

3.01版

  1. 修复了3.0版导致混淆出错的bug。
  2. 修复了未成功请求广告时广告条占据广告位的bug。
  3. 轻量化了AdView的初始化流程,加快运行速度。

3.02版

  1. 加入了分发渠道号设置,以后可以通过后台统计来自各个分发渠道的数据。
  2. 修复了对android 1.5系统的兼容性问题。

3.03版

  1. 修复了文字广告有时候出现显示样式混乱的一个bug。
  2. 优化了请求广告线程的操作,减少资源消耗。

3.04版

  • 在广告条的宽度设置为FILL_PARENT的情况下可自适应容器控件的宽度。

3.05版

  • 优化了广告展示模式

广告条的尺寸定义

新版本的SDK对广告条尺寸进行了调整:
使用LayoutParams进行广告条尺寸的设置
广告条的宽度必须设置为LayoutParams.FILL_PARENT或LayoutParams.WRAP_CONTENT,规则如下:
当宽度设置为LayoutParams.FILL_PARENT时,广告条的宽度为屏幕当前状态的宽度。如320*480的屏幕,当竖屏时,广告条宽度为320px;当横屏时,广告条宽度为480px。在v3.04以后,设置为该值时,广告条宽度与容器控件宽度一致
当宽度设置为LayoutParams.WRAP_CONTENT时,广告条的宽度为屏幕宽高中较小一边的值。如320*480的屏幕,无论屏幕的方向如何,广告条的宽度都为320px。

广告条的高度必须设置为LayoutParams.WRAP_CONTENT,并且广告条的高度会自动调整为50dp
换算为px,则:
对于Low density (120), ldpi:
广告条的高度为38px;
对于Medium density (160), mdpi:
广告条的高度为50px;
对于High density (240), hdpi:
广告条的高度为75px;
对于Extra high density (320), xhdpi:
广告条的高度为100px;

有米广告Android SDK使用哪种字符编码

有米广告Android SDK使用UTF-8字符编码,在嵌入广告的时候请使用UTF-8编程环境,否则会出现乱码情况。

有米广告Android SDk兼容Android系统SDK的哪些版本

有米广告Android SDK兼容Android 系统 1.6及以上版本SDK,对于1.5及以下版本可能会有兼容性问题。

关于AdViewListener接口

当指定的AdView切换展示广告后或者请求广告失败后,该接口会通知监听者。该接口的设计是为了方便那些有需要在广告条展示广告后进行一些界面处理的开发者,但它不适用于统计展示数,因为在一个应用程序的生命周期中可能存在多个AdView实例,因此在运行的过程中,使用该接口统计到的切换展示广告的次数将会比广告的真正展示数多,如果依据该接口来统计展示数,结果将会与真实展示数相差很大。查询详细的展示数据请登录有米平台: http://www.youmi.net

ps: 旧版本该接口的原型是AdListener,该接口的方法onReceiveAd实际上就是针对每个AdView实例切换广告的时候通知监听者,作用与新接口一样,但其命名不准确,导致了一些不必要的误会,现更正其命名为 void onAdViewSwitchedAd(AdView adView) 。

关于广告没有成功展示的问题排查

如果出现广告没有展示的情况,请按下面的步骤检查:

  1. 检查广告配置是否正确,请务必仔细阅读并且按照"SDK嵌入步骤"中的"准备工作"一节中的步骤来完成广告的参数配置。如果该参数配置正确仍然无法显示广告,请按下一步检查。
  2. 使用Eclpse开发的朋友可以通过查看DDMS的logcat输出,有米广告的Tag是YoumiSdk。如果log信息中有输出Request Error Code,请将错误码发给有米客服。

关于混淆APK出错的问题

如果使用xml布局并且使用proguard混淆apk,请在proguard.cfg中加入以下代码:

-keep class net.youmi.android.** {
*;
}

更多常见问题

请查看 http://wiki.youmi.net

 

附录:API文档

net.youmi.android.AdManager

Class Overview

有米广告参数配置管理类,用于初始化请求广告的相关设置

Summary

Public Methods

staticvoidinit(Context context,String appid, String appsec, int intervalSecond, boolean isTestMode)初始化广告配置
staticvoidsetDonotClearWebViewCache()SDK在展示广告的过程中使用了WebView,如果您希望保留WebView的缓存,可以调用此接口设置SDK不删除WebView缓存。如无特别需要,请不要调用此接口。
staticvoiddisableUpdateApp()新版SDK加入了应用版本检查更新功能,如果您不希望使用应用程序检查更新功能时,可以调用此接口关闭自动检查更新功能。如无特别需要,请不要调用此接口。

Public Methods

public static void init(Context context,String appid, String appsec, int intervalSecond, boolean isTestMode)

初始化广告参数,必须在任意AdView实例化前调用。建议仅且在应用启动的时候在主Activity的onCreate中调用该方法初始化一次。

参数:
context
appid - 应用Id
appsec - 应用密码
intervalSecond - 设置广告最小切换时间,单位为秒
isTestMode - 设置是否测试模式,如果设置为true,可以在真机上展示测试广告。在正式发布的版本中应该置为false 
public static void setDonotClearWebViewCache()

SDK中有使用到WebView,为了避免应用程序中的缓存数据的积累造成大量的存储空间消耗,SDK会自动清除使用到的WebViewCache缓存。如果您的应用程序中有使用WebView,并且不希望清除缓存,可以调用此接口设置不清除缓存。否则,请不要调用此接口。

public static void disableUpdateApp()

有米广告Android 3.0版SDK加入了应用程序自动检查更新功能,这样可以很方便您的应用升级。以后当您升级应用程序的时候,只需要将应用程序的最新版本上传到我们的服务器,审核通过以后,您的旧版应用程序在启动的时候就会自动检查更新,在得到用户的授权后,应用程序会下载最新版本安装,这样老用户可以更快地使用最新版本的软件。 SDK默认开启应用程序检查更新功能 如果您不希望使用该功能,可以调用此接口停用该功能。


 

net.youmi.android.AdView

Class Overview

AdView是展示广告的载体

Summary

Public Constructors

AdView(Activity activity)AdView构造函数,使用默认样式。
AdView(Context context, AttributeSet attrs)AdView构造函数,用于xml布局
AdView(Context context, AttributeSet attrs, int defStyle)AdView构造函数,用于xml布局
AdView(Activity activity, int backgroundColor, int textColor, int backgroundTransparent)AdView的构造函数


Public Methods

intgetAdWidth()获取广告条宽度
intgetAdHeight()获取广告条高度
voidrefreshAd()尝试刷新广告
voidsetAdViewListener(AdViewListener listener)设置广告条监听接口

Public Constructors

public AdView(Activity activity)

AdView构造函数,使用默认样式

public AdView(Context context, AttributeSet attrs)

AdView构造函数,用于xml布局

public AdView(Context context, AttributeSet attrs, int defStyle)

AdView构造函数,用于xml布局

public AdView(Activity activity, int backgroundColor, int textColor, int backgroundTransparent)

AdView的构造函数

参数
activity - Activity
backgroundColor - 文字广告的背景颜色
textColor - 文字广告的字体颜色
backgroundTransparent - 文字广告的背景透明度,范围是0到255

Public Methods

public int getAdWidth()

获取广告条宽度

public int getAdHeight()

获取广告条的高度

public void refreshAd()

在某些情况下,如停留时间较短的页面上放置广告条,希望使广告条尽快地展示广告,可以调用此接口尝试刷新展示广告。

public void setAdViewListener(AdViewListener listener)

设置广告条监听接口


 

net.youmi.android.AdViewListener

Class Overview

AdView监听接口,监听一个指定的AdView的切换广告的状态。

Summary

Public Methods

voidonAdViewSwitchedAd(AdView adView)当指定的AdView实例切换所展示的广告时,会调用此接口通知监听者
voidonConnectFailed(AdView adView)当指定的AdView实例请求广告失败时,如遇到手机网络断开等情况,会调用此接口通知监听者

Public Methods

public void onAdViewSwitchedAd(AdView adView)

当指定的AdView实例切换所展示的广告时,会通知此接口监听者。
该接口的设计是为了方便那些有需要在广告条展示广告后进行一些界面处理的开发者,但它不适用于统计展示数,因为在一个应用程序的生命周期中可能存在多个AdView实例,因此在运行的过程中,使用该接口统计到的切换展示广告的次数将会比广告的真正展示数多,如果依据该接口来统计展示数,结果将会与真实展示数相差很大。详细的展示数据请登录有米平台: http://www.youmi.net 查询。

ps: 旧版本该接口的原型是AdListener,该接口的方法onReceiveAd实际上就是针对每个AdView实例切换广告的时候通知监听者,作用与新接口一样,但其命名不准确,导致了一些不必要的误会,现更正其命名为 void onAdViewSwitchedAd(AdView adView) 。

public void onConnectFailed(AdView adView)

当指定的AdView实例请求广告失败时,如遇到手机网络断开等情况,会调用此接口通知监听者


 

net.youmi.android.AdActivity

Class Overview

AdActivity是展示广告详情的载体,请在AndroidManifest.xml中添加AdActivity:

<activity android:name="net.youmi.android.spotad.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation"/> 

准备工作

步骤一.将 youmi-android.jar 导入您的工程中。

  1. 右键您的工程根目录,选择“Properties”
  2. 在左面板中选择“Java Build Path”
  3. 然后选择“Libraries”标签
  4. 点击“Add External JARs…”
  5. 选择 youmi-android.jar 的目录路径.
  6. 点击“OK”即导入成功

步骤二.在manifest.xml文件中配置用户权限

请务必配置以下权限,否则将有可能获取不到广告。

  1. android.permission.INTERNET,连接网络权限 INTERNET ,用于请求广告
  2. android.permission.READ_PHONE_STATE,用于精确统计用户手机的系统信息
  3. android.ACCESS_NETWORK_STATE,用于精确识别网络接入点等信息
  4. android.permission.ACCESS_COARSE_LOCATION,有助于精准投放地域广告以及帮助统计使用应用程序的用户的地区分布情况
  5. android.permission.WRITE_EXTERNAL_STORAGE,有助于实现图片资源的缓存,节省流量,并可获得更好的用户体验

请将下面权限配置代码复制到 AndroidManifest.xml 文件中 :

 <uses-permission android:name="android.permission.INTERNET"></uses-permission> 
 <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission> 
 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission> 
 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

步骤三.在AndroidManifest.xml中添加AdActivity

AdActivity是广告详情展示的载体,请在AndroidManifest.xml中添加AdActivity:

<activity android:name="net.youmi.android.AdActivity"
 android:configChanges="keyboard|keyboardHidden|orientation"/>

步骤四.初始化账号信息

在主Activity的onCreate中调用AdManager.init() 初始化 App ID 、App Secret、请求广告间隔和测试模式等参数(请务必在任意AdView初始化前调用一次)。

  //第一个参数为您的应用发布Id
  //第二个参数为您的应用密码
  //第三个参数是请求广告的间隔,有效的设置值为30至200,单位为秒
  //第四个参数是设置测试模式,设置为true时,可以获取测试广告,正式发布请设置此参数为false  
  AdManager.init(Context context,String appid, String appsec, int intervalSecond,  boolean isTestMode);
  • !注意:3.04版本开始AdManager.init方法的参数改为五个,加上了Context参数
  • !请将测试模式设置为false后上传至网站等待审核。
  • !未上传应用安装包、未通过审核的应用、模拟器运行,都只能获得测试广告,审核通过后,模拟器上依旧是测试广告,真机才会获取到正常的广告。

步骤五.设置发布渠道号【可选】

有米广告条 3.02版以后的sdk加入了分发渠道号设置,以后可以统计来自各个分发渠道的数据。
该设置为可选,当没有设置发布渠道号时,将采用默认渠道号0。
设置方法如下: 把以下代码复制到AndroidManifest.xml 文件中:

  <meta-data android:name="YOUMI_CHANNEL" android:value="渠道编号"></meta-data>

注意:请在AndroidManifest.xml配置中加入meta-data参数,其中key为"YOUMI_CHANNEL" ,value为int型的渠道编号,请为每个不同渠道号打一个独立的包。详细的渠道编号请参见: http://wiki.youmi.net/wiki/PromotionChannelIDs

常用布局方式

使用xml布局嵌入广告

步骤一.建立attrs.xml文件

在 res/values 文件夹中添加 attrs.xml。如果你没有添加这个文件,那你将不能在 layout 中设置 AdView 的属性。attrs.xml 文件的内容如下:

 <?xml version="1.0" encoding="utf-8"?>
 <resources>
  <declare-styleable name="net.youmi.android.AdView">                
   <!--广告背景颜色[只对文字广告有效](取值范围为#000000----#ffffff) -->        
   <attr name="backgroundColor" format="color" />                      
   <!--广告文本颜色[只对文字广告有效](取值范围为#000000----#ffffff) -->
   <attr name="textColor" format="color" />
   <!--广告背景透明度[只对文字广告有效],默认为 255,设置范围0-255 -->
   <attr name="backgroundTransparent"  format="integer"/>
  </declare-styleable>
 </resources>
步骤二.在布局xml中嵌入有米广告视图

以下为一个实例:

 <?xml version="1.0" encoding="utf-8"?>
 <!--  需要设置命名空间 :umadsdk  -->
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:umadsdk="http://schemas.android.com/apk/res/com.youmi"
     android:orientation="vertical"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent">      
    <net.youmi.android.AdView
     android:id="@+id/adView"  
     android:layout_width="fill_parent"  
     android:layout_height="wrap_content"
     umadsdk:textColor="#ffffff"  
     umadsdk:backgroundColor="#4076AA"
     umadsdk:backgroundTransparent="155"/> 
 </LinearLayout>

!注意: xmlns:umadsdk=”http://schemas.android.com/apk/res/您的应用包名” 这句一定要加上,不然编辑器会提示错误。

步骤三.XML布局代码部分
 public class XmlSample extends Activity {
 
 
 	@Override
 	protected void onCreate(Bundle savedInstanceState) {
 		// TODO Auto-generated method stub
 		super.onCreate(savedInstanceState); 
               //              应用Id          应用密码        广告请求间隔(s)   设置测试模式[false为发布模式] 
                AdManager.init(this,"XXXXXXXXXXXX", "XXXXXXXXXXXX",  30,               false); 
 		setContentView(com.youmi.R.layout.xmlsample); 
 	}
 }

使用代码布局嵌入广告

以下是一个示例

 public class CodeSample extends Activity{
 
 
 
 
 	/** Called when the activity is first created. */
 	@Override
 	protected void onCreate(Bundle savedInstanceState) {
 		// TODO Auto-generated method stub
 		super.onCreate(savedInstanceState); 
 
               //              应用Id          应用密码        广告请求间隔(s)   设置测试模式[false为发布模式] 
                AdManager.init(this,"XXXXXXXXXXXX", "XXXXXXXXXXXX",  30,               false); 
 
 	        LinearLayout layout=new LinearLayout(this); 
 		layout.setOrientation(LinearLayout.VERTICAL); 
 		layout.setBackgroundResource(R.drawable.bg);
 
 
 		//初始化广告视图,可以使用其他的构造函数设置广告视图的背景色、透明度及字体颜色
 		AdView adView = new AdView(this); 
 		LayoutParams params = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);		
 		layout.addView(adView, params); 
 
 
 
 		setContentView(layout);
 	}  	
 
 }

使用悬浮布局嵌入广告

以下是一个示例

 public class SuspensoidSample extends Activity{
 
 
 	@Override
 	protected void onCreate(Bundle savedInstanceState) {
 		// TODO Auto-generated method stub
 		super.onCreate(savedInstanceState);
               //              应用Id          应用密码        广告请求间隔(s)   设置测试模式[false为发布模式] 
                AdManager.init(this,"XXXXXXXXXXXX", "XXXXXXXXXXXX",  30,               false); 
 
 		setContentView(R.layout.main); 
 
 
 		//初始化广告视图
 		AdView adView = new AdView(this);
 
 		FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.FILL_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);
 
 		//设置广告出现的位置(悬浮于屏幕右下角)		 
 		params.gravity=Gravity.BOTTOM|Gravity.RIGHT; 
 
 		//将广告视图加入Activity中
 		addContentView(adView, params); 
 
 	} 
 }

常见问题

版本更新内容

3.0版

  1. 全新的广告条界面。
  2. 重新定义广告条尺寸,详情请查看文档。
  3. 支持应用程序版本更新功能。
  4. 重新定义AdListener接口为AdViewListener,同时重命名其方法onReceiveAd为onAdViewSwitchedAd。并且修改了AdView的setAdListener(AdListener adListener)方法为setAdViewListener(AdViewListener listener)。详情请查看API文档。
  5. 为AdView类新增了一个方法:refreshAd()。调用该方法尝试刷新AdView展示的广告。在某些情况下,如想在一个停留时间极短的界面上快速地显示广告条,可以调用该方法尝试刷新广告,这样可以最大可能地避免出现这样的情况:一个只停留十几秒的界面由于广告没有及时出来而错过了展示广告的机会。详情请查看API文档
  6. 修改了AdManager类的init方法,取消了旧版本的appVersion参数,现在init方法只有4个参数。详情请查看API文档。
  7. 为AdManager新增了一个方法:disableUpdateApp。调用该方法可以取消使用应用程序版本更新功能。除非有特别需要,否则请不要调用此接口。详情请查看API文档
  8. 为AdManager新增了一个方法:setDonotClearWebViewCache。调用该方法设置SDK不删除所使用的WebView的缓存。除非有特别需要,否则请不要调用此接口。详情请查看API文档
  9. 修复了SDK内置网页浏览页在cmwap环境下出现乱码的一个bug。
  10. 该版本SDK兼容系统版本1.6及以上,对于1.5版本的系统可能有一定的兼容性问题。

3.01版

  1. 修复了3.0版导致混淆出错的bug。
  2. 修复了未成功请求广告时广告条占据广告位的bug。
  3. 轻量化了AdView的初始化流程,加快运行速度。

3.02版

  1. 加入了分发渠道号设置,以后可以通过后台统计来自各个分发渠道的数据。
  2. 修复了对android 1.5系统的兼容性问题。

3.03版

  1. 修复了文字广告有时候出现显示样式混乱的一个bug。
  2. 优化了请求广告线程的操作,减少资源消耗。

3.04版

  • 在广告条的宽度设置为FILL_PARENT的情况下可自适应容器控件的宽度。

3.05版

  • 优化了广告展示模式

广告条的尺寸定义

新版本的SDK对广告条尺寸进行了调整:
使用LayoutParams进行广告条尺寸的设置
广告条的宽度必须设置为LayoutParams.FILL_PARENT或LayoutParams.WRAP_CONTENT,规则如下:
当宽度设置为LayoutParams.FILL_PARENT时,广告条的宽度为屏幕当前状态的宽度。如320*480的屏幕,当竖屏时,广告条宽度为320px;当横屏时,广告条宽度为480px。在v3.04以后,设置为该值时,广告条宽度与容器控件宽度一致
当宽度设置为LayoutParams.WRAP_CONTENT时,广告条的宽度为屏幕宽高中较小一边的值。如320*480的屏幕,无论屏幕的方向如何,广告条的宽度都为320px。

广告条的高度必须设置为LayoutParams.WRAP_CONTENT,并且广告条的高度会自动调整为50dp
换算为px,则:
对于Low density (120), ldpi:
广告条的高度为38px;
对于Medium density (160), mdpi:
广告条的高度为50px;
对于High density (240), hdpi:
广告条的高度为75px;
对于Extra high density (320), xhdpi:
广告条的高度为100px;

有米广告Android SDK使用哪种字符编码

有米广告Android SDK使用UTF-8字符编码,在嵌入广告的时候请使用UTF-8编程环境,否则会出现乱码情况。

有米广告Android SDk兼容Android系统SDK的哪些版本

有米广告Android SDK兼容Android 系统 1.6及以上版本SDK,对于1.5及以下版本可能会有兼容性问题。

关于AdViewListener接口

当指定的AdView切换展示广告后或者请求广告失败后,该接口会通知监听者。该接口的设计是为了方便那些有需要在广告条展示广告后进行一些界面处理的开发者,但它不适用于统计展示数,因为在一个应用程序的生命周期中可能存在多个AdView实例,因此在运行的过程中,使用该接口统计到的切换展示广告的次数将会比广告的真正展示数多,如果依据该接口来统计展示数,结果将会与真实展示数相差很大。查询详细的展示数据请登录有米平台: http://www.youmi.net

ps: 旧版本该接口的原型是AdListener,该接口的方法onReceiveAd实际上就是针对每个AdView实例切换广告的时候通知监听者,作用与新接口一样,但其命名不准确,导致了一些不必要的误会,现更正其命名为 void onAdViewSwitchedAd(AdView adView) 。

关于广告没有成功展示的问题排查

如果出现广告没有展示的情况,请按下面的步骤检查:

  1. 检查广告配置是否正确,请务必仔细阅读并且按照"SDK嵌入步骤"中的"准备工作"一节中的步骤来完成广告的参数配置。如果该参数配置正确仍然无法显示广告,请按下一步检查。
  2. 使用Eclpse开发的朋友可以通过查看DDMS的logcat输出,有米广告的Tag是YoumiSdk。如果log信息中有输出Request Error Code,请将错误码发给有米客服。

关于混淆APK出错的问题

如果使用xml布局并且使用proguard混淆apk,请在proguard.cfg中加入以下代码:

-keep class net.youmi.android.** {
*;
}

更多常见问题

请查看 http://wiki.youmi.net

附录:API文档

net.youmi.android.AdManager

Class Overview

有米广告参数配置管理类,用于初始化请求广告的相关设置

Summary

Public Methods

staticvoidinit(Context context,String appid, String appsec, int intervalSecond, boolean isTestMode)初始化广告配置
staticvoidsetDonotClearWebViewCache()SDK在展示广告的过程中使用了WebView,如果您希望保留WebView的缓存,可以调用此接口设置SDK不删除WebView缓存。如无特别需要,请不要调用此接口。
staticvoiddisableUpdateApp()新版SDK加入了应用版本检查更新功能,如果您不希望使用应用程序检查更新功能时,可以调用此接口关闭自动检查更新功能。如无特别需要,请不要调用此接口。

Public Methods

public static void init(Context context,String appid, String appsec, int intervalSecond, boolean isTestMode)

初始化广告参数,必须在任意AdView实例化前调用。建议仅且在应用启动的时候在主Activity的onCreate中调用该方法初始化一次。

参数:
context
appid - 应用Id
appsec - 应用密码
intervalSecond - 设置广告最小切换时间,单位为秒
isTestMode - 设置是否测试模式,如果设置为true,可以在真机上展示测试广告。在正式发布的版本中应该置为false 
public static void setDonotClearWebViewCache()

SDK中有使用到WebView,为了避免应用程序中的缓存数据的积累造成大量的存储空间消耗,SDK会自动清除使用到的WebViewCache缓存。如果您的应用程序中有使用WebView,并且不希望清除缓存,可以调用此接口设置不清除缓存。否则,请不要调用此接口。

public static void disableUpdateApp()

有米广告Android 3.0版SDK加入了应用程序自动检查更新功能,这样可以很方便您的应用升级。以后当您升级应用程序的时候,只需要将应用程序的最新版本上传到我们的服务器,审核通过以后,您的旧版应用程序在启动的时候就会自动检查更新,在得到用户的授权后,应用程序会下载最新版本安装,这样老用户可以更快地使用最新版本的软件。 SDK默认开启应用程序检查更新功能 如果您不希望使用该功能,可以调用此接口停用该功能。


net.youmi.android.AdView

Class Overview

AdView是展示广告的载体

Summary

Public Constructors

AdView(Activity activity)AdView构造函数,使用默认样式。
AdView(Context context, AttributeSet attrs)AdView构造函数,用于xml布局
AdView(Context context, AttributeSet attrs, int defStyle)AdView构造函数,用于xml布局
AdView(Activity activity, int backgroundColor, int textColor, int backgroundTransparent)AdView的构造函数


Public Methods

intgetAdWidth()获取广告条宽度
intgetAdHeight()获取广告条高度
voidrefreshAd()尝试刷新广告
voidsetAdViewListener(AdViewListener listener)设置广告条监听接口

Public Constructors

public AdView(Activity activity)

AdView构造函数,使用默认样式

public AdView(Context context, AttributeSet attrs)

AdView构造函数,用于xml布局

public AdView(Context context, AttributeSet attrs, int defStyle)

AdView构造函数,用于xml布局

public AdView(Activity activity, int backgroundColor, int textColor, int backgroundTransparent)

AdView的构造函数

参数
activity - Activity
backgroundColor - 文字广告的背景颜色
textColor - 文字广告的字体颜色
backgroundTransparent - 文字广告的背景透明度,范围是0到255

Public Methods

public int getAdWidth()

获取广告条宽度

public int getAdHeight()

获取广告条的高度

public void refreshAd()

在某些情况下,如停留时间较短的页面上放置广告条,希望使广告条尽快地展示广告,可以调用此接口尝试刷新展示广告。

public void setAdViewListener(AdViewListener listener)

设置广告条监听接口


net.youmi.android.AdViewListener

Class Overview

AdView监听接口,监听一个指定的AdView的切换广告的状态。

Summary

Public Methods

voidonAdViewSwitchedAd(AdView adView)当指定的AdView实例切换所展示的广告时,会调用此接口通知监听者
voidonConnectFailed(AdView adView)当指定的AdView实例请求广告失败时,如遇到手机网络断开等情况,会调用此接口通知监听者

Public Methods

public void onAdViewSwitchedAd(AdView adView)

当指定的AdView实例切换所展示的广告时,会通知此接口监听者。
该接口的设计是为了方便那些有需要在广告条展示广告后进行一些界面处理的开发者,但它不适用于统计展示数,因为在一个应用程序的生命周期中可能存在多个AdView实例,因此在运行的过程中,使用该接口统计到的切换展示广告的次数将会比广告的真正展示数多,如果依据该接口来统计展示数,结果将会与真实展示数相差很大。详细的展示数据请登录有米平台: http://www.youmi.net 查询。

ps: 旧版本该接口的原型是AdListener,该接口的方法onReceiveAd实际上就是针对每个AdView实例切换广告的时候通知监听者,作用与新接口一样,但其命名不准确,导致了一些不必要的误会,现更正其命名为 void onAdViewSwitchedAd(AdView adView) 。

public void onConnectFailed(AdView adView)

当指定的AdView实例请求广告失败时,如遇到手机网络断开等情况,会调用此接口通知监听者


net.youmi.android.AdActivity

Class Overview

AdActivity是展示广告详情的载体,请在AndroidManifest.xml中添加AdActivity:

<activity android:name="net.youmi.android.spotad.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation"/> 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值