为你的移动应用添加广告

原创
2012/07/14 11:05
阅读数 1.4K

有段时间没有写博客了,接了一个android的外包,直到前段时间才收尾,不过弄的够呛的,主要是前期的一些流程没有商量好,加上时间又比较紧张,所以当时就匆匆忙忙的弄了起来,至于后期收款的事情一拖再拖,而且这还是前期的一个demo

接下来介绍的是给我们自己的app添加广告,这边选择的广告平台是腾讯旗下的Adview平台,地址是:http://www.adview.cn/ 里面提供了相应的sdk和开发文档,里面都有详细的说明,而且提供了三种不同的方式来添加广告,可以从这边http://www.adview.cn/sdk下载文档和sdk,当然这些都是你添加广告的前奏。

下面我们来看看是怎样添加广告吧,下载后的压缩包是这样的:


需要注意的是下载下来的sample里面的demo在我自己的机器上跑不起来,后来自己写了一个其实也挺简单的。Adview提供了三种不同的方式添加广告,分别是布局方式,代码方式,xml布局方式自己可以根据自身的需要选择不同的方式添加广告,我建立一个AdViewActivity,里面相应的布局分别放三个按钮

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    
    <Button android:id="@+id/ad_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="布局方式"/>
    
    <Button android:id="@+id/ad_code"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="代码方式"/>
    
    <Button android:id="@+id/ad_xml"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="xml布局方式"/>
</LinearLayout>    //AdViewActivity     private Context mContext;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.adview_layout);
		
		mContext = this;
		findViewById(R.id.ad_layout).setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				Intent i = new Intent(mContext, LayoutActivity.class);
				startActivity(i);
			}
		});
		
		findViewById(R.id.ad_code).setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				Intent i = new Intent(mContext, CodeActivity.class);
				startActivity(i);
			}
		});
		
		findViewById(R.id.ad_xml).setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				Intent i = new Intent(mContext, XMLAdViewActivity.class);
				startActivity(i);
			}
		});
	}

LayoutActivity的代码如下:

/***
 * @author  huangsm
 * @date 2012-7-9
 * @email  huangsanm@gmail.com
 * @desc 布局方式添加
 */
public class LayoutActivity extends Activity implements AdViewInterface{

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.layout);
		
		//在调试的时候可以放开,
		//AdViewTargeting.setRunMode(RunMode.TEST);
		//AdViewTargeting.setUpdateMode(UpdateMode.EVERYTIME);
		
		LinearLayout layout = (LinearLayout) findViewById(R.id.adLayout);
		AdViewLayout adViewLayout = new AdViewLayout(this, "SDK201207150706098ng5d8fpuvjg0gi");
		adViewLayout.setAdViewInterface(this);
		layout.addView(adViewLayout);
		layout.invalidate();
	}

	@Override
	public void onClickAd() {
		
	}

	@Override
	public void onDisplayAd() {
		
	}
}
//布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:id="@+id/layout_main">
    
    <LinearLayout android:id="@+id/adLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
    
</LinearLayout>

通过代码的方式添加广告的方式显得相当灵活,CodeActivity的代码如下:

/***
 * @author  huangsm
 * @date 2012-7-9
 * @email  huangsanm@gmail.com
 * @desc 纯代码方式
 */
public class CodeActivity extends Activity implements AdViewInterface{

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		 /*下面两行只用于测试,完成后一定要去掉,参考文挡说明*/
        //AdViewTargeting.setUpdateMode(UpdateMode.EVERYTIME);  //每次都从服务器取配置
        //AdViewTargeting.setRunMode(RunMode.TEST);        //保证所有选中的广告公司都为测试状态

    	AdViewLayout adViewLayout = new AdViewLayout(this, "SDK201207150706098ng5d8fpuvjg0gi");
    	adViewLayout.setAdViewInterface(this);
    	FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, 
    			FrameLayout.LayoutParams.WRAP_CONTENT);		
    	params.gravity=Gravity.BOTTOM; 
    	setContentView(adViewLayout, params);
	}

	@Override
	public void onClickAd() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void onDisplayAd() {
		// TODO Auto-generated method stub
		
	}
}

通过XMLAdViewActivity方式添加:

/***
 * @author  huangsm
 * @date 2012-7-9
 * @email  huangsanm@gmail.com
 * @desc 
 */
public class XMLAdViewActivity extends Activity implements AdViewInterface {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.xml_layout);
		
		 /*下面两行只用于测试,完成后一定要去掉,参考文挡说明*/
        //AdViewTargeting.setUpdateMode(UpdateMode.EVERYTIME);  //每次都从服务器取配置
       // AdViewTargeting.setRunMode(RunMode.TEST);        //保证所有选中的广告公司都为测试状态
        /*下面这句方便开发者进行发布渠道统计,详细调用可以参考java doc  */
        //AdViewTargeting.setChannel(Channel.GOOGLEMARKET);
        AdViewLayout adViewLayout = (AdViewLayout)findViewById(R.id.adview_layout);
        adViewLayout.setAdViewInterface(this);
	}

	@Override
	public void onClickAd() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void onDisplayAd() {
		// TODO Auto-generated method stub
		
	}
}
//布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    

    <com.adview.AdViewLayout 
        android:id="@+id/adview_layout"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"/>
</LinearLayout>

这样你的应用里面就可以显示广告了,而且广告显示的位置可以自行调整通过gravity布局参数设置广告的位置,

说明:

1:SDK201207150706098ng5d8fpuvjg0gi这个是你注册过后的key

2:需要添加AdViewSDK_Android.jar,这个包是必须要的,例外还可根据自行选择的广告商添加不同的jar,里面的开发“AdView应用互推使用指南”都有相关的说明,

3:需要在androidmanifest.xml文件中声明权限 

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

代码已经分享到: http://www.oschina.net/code/snippet_127095_11879

再和大家分享一篇关于分析不同广告平台的文章:http://blog.jobbole.com/23008/

展开阅读全文
打赏
0
12 收藏
分享
加载中
顶开发者!!
2013/03/07 17:07
回复
举报
更多评论
打赏
1 评论
12 收藏
0
分享
返回顶部
顶部