本文共 9216 字,大约阅读时间需要 30 分钟。
在Android应用中添加广告是开发者收入之一,但有广告的应用对于用户来说比较反感,很多事情都是相互矛盾。如何在我们的APP中添加广告呢?移动广告平台为我们提供了相应的SDK,只需要他们的SDK,按他们的开发文档添加就可以了。
下面是一些广告平台:
一、百度移动联盟:http://munion.baidu.com/
1.百度移动联盟SDK下载:http://munion.baidu.com/about.html#/sdk/mobSdk
2.百度移动联盟积分墙SDK下载:http://munion.baidu.com/about.html#/sdk/statSdk
二、有米:http://www.youmi.net/
还有其它的一些广告平台如:多盟、力美、酷果
关于更多移动广告平台信息可以查看:http://baike.baidu.com/link?url=4MavjKAnjUsqLuhs0rdOkjzfWdzJBv_2pDEh36blDxDwNzp2R-0LoEP1mRLjb-KbId8w-FXnYg4EWc5QWAdFLa
下面是我使用百度推广SDK的例子,其实跟百度提供的例子是一样的,只是我自己练了一遍
首先把百度推广SDK包下载,解压后的目录
在《Baidu_MobAds_SDK_Manual.doc》文档中教你如何把广告添加到你的APP中
目录结构<喎�"http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PGltZyBzcmM9"http://www.2cto.com/uploadfile/Collfiles/20140410/2014041009321272.png" alt="\">
AndroidManifest.xml文件中声明权限和Activity
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | <!--?xml version= "1.0" encoding= "utf-8" ?--> <manifest xmlns:android= "" package = "com.dzt.baidu" android:versioncode= "1" android:versionname= "1.0" > <uses-sdk android:minsdkversion= "8" android:targetsdkversion= "17" > <uses-permission android:name= "android.permission.INTERNET" > <uses-permission android:name= "android.permission.READ_PHONE_STATE" > <uses-permission android:name= "android.permission.ACCESS_NETWORK_STATE" > <uses-permission android:name= "android.permission.ACCESS_COARSE_LOCATION" > <uses-permission android:name= "android.permission.WRITE_EXTERNAL_STORAGE" > <uses-permission android:name= "android.permission.ACCESS_WIFI_STATE" > <!-- 以下为可选权限 --> <uses-permission android:name= "android.permission.CHANGE_WIFI_STATE" > <uses-permission android:name= "android.permission.RECORD_AUDIO" > <uses-permission android:name= "android.permission.VIBRATE" > <uses-permission android:name= "android.permission.CAMERA" > <uses-permission android:name= "android.permission.ACCESS_FINE_LOCATION" > <uses-permission android:name= "com.android.browser.permission.READ_HISTORY_BOOKMARKS" > <meta-data android:name= "BaiduMobAd_APP_ID" android:value= "debug" > <meta-data android:name= "BaiduMobAd_APP_SEC" android:value= "debug" > <intent-filter> <category android:name= "android.intent.category.LAUNCHER" > </category></action></intent-filter> </activity> </activity></activity></activity></activity></activity></meta-data></meta-data></application> </uses-permission></uses-permission></uses-permission></uses-permission></uses-permission></uses-permission></uses-permission></uses-permission></uses-permission></uses-permission></uses-permission></uses-permission></uses-sdk></manifest> |
调试过程中,建议先设置APPSID和计费名的值为debug,以便进行广告调试。调试成功后,务必改为自己的APPSID和计费名,并上传应用至联盟端审核,审核通过后才能为您计费,如果还未审核通过而APPSID和计费名的值不为debug,则没有广告显示。
AdActivity.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | package com.dzt.baidu; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; /** * 使用百度推广示例 dzt * * @author Administrator 2014.04.09 * */ public class AdActivity extends Activity implements OnClickListener { @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_main); initWidgets(); } private void initWidgets() { Button btn = (Button) findViewById(R.id.simple_declaring); btn.setOnClickListener( this ); btn = (Button) findViewById(R.id.simple_coding); btn.setOnClickListener( this ); btn = (Button) findViewById(R.id.simple_inters); btn.setOnClickListener( this ); btn = (Button) findViewById(R.id.simple_icon); btn.setOnClickListener( this ); } @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.simple_declaring: StartActivity(DeclaringActivity. class ); break ; case R.id.simple_coding: StartActivity(CodingActivity. class ); break ; case R.id.simple_inters: StartActivity(InterstitialActivity. class ); break ; case R.id.simple_icon: StartActivity(IconsActyvity. class ); break ; default : break ; } } private void StartActivity(Class<!--?--> cls) { Intent intent = new Intent(AdActivity. this , cls); startActivity(intent); } } |
相应的xml文件
1 2 3 4 5 6 7 8 9 10 11 12 13 | <relativelayout xmlns:android= "" xmlns:tools= "" android:layout_width= "match_parent" android:layout_height= "match_parent" tools:context= ".AdActivity" > <textview android:id= "@+id/tv_text" android:layout_width= "wrap_content" android:layout_height= "wrap_content" android:layout_centerhorizontal= "true" android:layout_margintop= "10dp" android:text= "@string/hello_world" > <button android:id= "@+id/simple_declaring" android:layout_width= "match_parent" android:layout_height= "wrap_content" android:layout_below= "@id/tv_text" android:layout_centerhorizontal= "true" android:layout_margintop= "10dp" android:text= "@string/simple_declaring" > </button><button android:id= "@+id/simple_coding" android:layout_width= "match_parent" android:layout_height= "wrap_content" android:layout_below= "@id/simple_declaring" android:layout_centerhorizontal= "true" android:layout_margintop= "10dp" android:text= "@string/simple_coding" > </button><button android:id= "@+id/simple_inters" android:layout_width= "match_parent" android:layout_height= "wrap_content" android:layout_below= "@id/simple_coding" android:layout_centerhorizontal= "true" android:layout_margintop= "10dp" android:text= "@string/simple_inters" > </button><button android:id= "@+id/simple_icon" android:layout_width= "match_parent" android:layout_height= "wrap_content" android:layout_below= "@id/simple_inters" android:layout_centerhorizontal= "true" android:layout_margintop= "10dp" android:text= "@string/simple_icon" > </button></textview></relativelayout> |
横幅banner广告有两种添加方式
一、代码添加
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | package com.dzt.baidu; import org.json.JSONObject; import com.baidu.mobads.AdSettings; import com.baidu.mobads.AdSize; import com.baidu.mobads.AdView; import com.baidu.mobads.AdViewListener; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.widget.RelativeLayout; public class CodingActivity extends Activity { private static final String TAG = "dzt" ; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super .onCreate(savedInstanceState); // setContentView(R.layout.coding); // 人群属性 AdSettings.setKey( new String[] { "baidu" , "中国" }); AdSettings.setCity( "上海" ); AdSettings.setZip( "123456" ); AdSettings.setJob( "工程师" ); AdSettings.setEducation(AdSettings.Education.BACHELOR); AdSettings.setSalary(AdSettings.Salary.F10kT15k); AdSettings.setHob( new String[] { "羽毛球" , "足球" , "baseball" }); RelativeLayout rlMain = new RelativeLayout( this ); // 创建广告View AdView adView = new AdView( this , AdSize.Banner, "01" ); // 设置监听器 adView.setListener( new AdViewListener() { public void onAdSwitch() { Log.w(TAG, "[CodingActivity]->onAdSwitch" ); } public void onAdShow(JSONObject info) { Log.w(TAG, "[CodingActivity]->onAdShow " + info.toString()); } public void onAdReady(AdView adView) { Log.w(TAG, "[CodingActivity]->onAdReady " + adView); } public void onAdFailed(String reason) { Log.w(TAG, "[CodingActivity]->onAdFailed " + reason); } public void onAdClick(JSONObject info) { Log.w(TAG, "[CodingActivity]->onAdClick " + info.toString()); } public void onVideoStart() { Log.w(TAG, "[CodingActivity]->onVideoStart" ); } public void onVideoFinish() { Log.w(TAG, "[CodingActivity]->onVideoFinish" ); } @Override public void onVideoClickAd() { Log.w(TAG, "[CodingActivity]->onVideoClickAd" ); } @Override public void onVideoClickClose() { Log.w(TAG, "[CodingActivity]->onVideoClickClose" ); } @Override public void onVideoClickReplay() { Log.w(TAG, "[CodingActivity]->onVideoClickReplay" ); } @Override public void onVideoError() { Log.w(TAG, "[CodingActivity]->onVideoError" ); } }); rlMain.addView(adView); setContentView(rlMain); } } |
二、xml文件添加
1 2 3 4 5 6 7 | <!--?xml version= "1.0" encoding= "utf-8" ?--> <relativelayout xmlns:android= "" xmlns:baiduadsdk= "" android:layout_width= "match_parent" android:layout_height= "match_parent" android:background= "#fdfefa" android:orientation= "vertical" > <com.baidu.mobads.adview android:id= "@+id/adView" android:layout_width= "match_parent" android:layout_height= "wrap_content" android:layout_alignparentbottom= "true" android:layout_alignparentleft= "true" baiduadsdk:adid= "" baiduadsdk:adsize= "0" > <!-- 注: baiduadsdk:adId可以指定为 "" ,表示默认广告位 --> </com.baidu.mobads.adview></relativelayout> |
xmlns:baiduadsdk="http://schemas.android.com/apk/res/com.dzt.baidu" 其中com.dzt.baidu为你app的包名,xmlns:baiduadsdk为自定义控件的属性域
相应的属性文件attrs.xml
1 2 3 4 5 6 7 | <!--?xml version= "1.0" encoding= "utf-8" ?--> <resources> <declare-styleable name= "com.baidu.mobads.AdView" > </attr></attr></declare-styleable> </resources> |
相应的Demo:
转载: