如何在Android应用中加入广告

前面在论坛里发了《Android学习及如何利用android来赚钱》帖子后,收到不少android开发者的回复,加上整理到博客里的回复,很多人问到如何在应用中加入广告,今天刚好有一个新的小应用要加广告,一起算写一篇总结。

先介绍一下我准备好的东西:

应用:

《Popstar  2015》,一个简单大家熟悉的小游戏。美化了下界面,优化了下操作流程,大家可以从https://itunes.apple.com/us/app/xiao-chu-xing-xing-zhong-wen/id966179624?mt=8

下载到

结合该应用的实际,我打算在这里加入3种模式的广告,即我前面文章里说到的广告条、广告墙和推送广告。

我打算在第一个图拍照按钮下边的设置按钮加入弹出菜单(更多应用和关于2个选项),在更多应用菜单中展示广告墙,在第二个图界面的上方展示一个广告条,推送广告因为不占用广告界面,所以不用考虑放在哪里。(当然最后发布的时候我会根据不同的发布市场来选择其中的1-2种广告形式,这里只为演示用,太多的广告会让用户反感)

广告平台:

广告墙和推送广告我使用百度,广告条我使用Keymob的聚合管理工具,暂时打算用广点通Admob这2个平台。(之所以用多个平台是可以根据情况做实时的在线比例分配,这样可以有更多的选择余地,当然也不是越多越好,加的平台越多应用就越臃肿,你的收入当然就分散了,而每个平台都至少要求100元才能提款的。)

首先我们来添加广告墙和推送广告。

1.登录百度平台,进入开发者页面,点击添加应用,输入应用名称,点保存,之后打开应用详情页面,记下WAPS_ID的值备第2步骤使用。后面的信息也尽量完善起来,

文件程序等最后完成广告集成并测试后再上传即可。

2.在我的项目的AndroidManifest.xml文件下添加广告需要的权限(具体要哪些权限参加广告SDK的帮助和实际情况定):

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

在Application项加入:

<meta-data android:name="WAPS_ID" android:value="2f9dd55307ede480a80ba0783be835d" />
  <meta-data android:name="WAPS_PID" android:value="WAPS" />
  <activity android:name="com.waps.OffersWebView" 
   android:configChanges="keyboardHidden|orientation" />

第一行android:value对应的字符串要替换成步骤1从百度添加应用后得到的ID,千万不要填错哦。

第二行是百度进行渠道设置选项,最好按其开发者手册最后对应的表格来填写

第三行是展示广告墙所使用的activity,不添加会导致展示不了广告墙

3.Eclipse->Project->Properties->Java Build Path->Libraries->Add External JARs->选择我们前面下载解压出来的AppOffer_1.5.3.jar,来完成添加百度SDK的Jar包。
在对应更多应用菜单的处理事件里加入AppConnect.getInstance(this).showOffers(this);来打开广告墙。

运行应用,点击更多应用,顺利打开推荐列表如图:

4.打开项目的入口Activity,在onCreate事件里写入

AppConnect.getInstance(this);

AppConnect.getInstance(this).getPushAd();                                      //自动推送使用,如果你在百度web端配置自动推送则可以注释次行

在退出应用的地方(我是在入口Activity的onDestroy事件)写入

AppConnect.getInstance(this).finalize();

运行推送效果如下图:

点击通知(推送广告) 打开如图

这样我们就把百度的广告墙和推送模式的广告集成好了,将应用使用正式签名(方法网上搜很多,这里不介绍)编译后将apk上传到百度审核,同时就可以发布到市场渠道去让用户下载了。(关于市场发布下篇里再介绍)

下面介绍使用Keymob聚合来添加广告条:

1.登录Keymob平台,添加新应用,打*的必须填写,点下一步来进入广告平台选择页面。

2.到你要添加的广告平台添加新应用来获取对应的ID,并把这些ID设置到1步骤Keymob平台对应的ID设置中(点对应平台后面的“未设置”)。

3.点击Keymob页面上对应平台后面的按钮来打开对应平台的状态,并点击开启测试,以便接下来测试是否能正常获取测试广告。同时将2个平台的比例均配成50%。

4.点击下一步,应用就添加完成了。会得到一个KeymobID备用,下载Keymob广告的SDK。(因为该SDK里已经包含了其所支持的所有平台的jar包,所以不需要单独再去下载其他广告平台的包了,而且聚合平台不一定及时更新所有平台的包,可能会对广告平台的更新没有及时更改其SDK,所以也必须从这里下)

5.解压Keymob上下载下来的SDK,并将其libs下对应平台的包加入工程(我这里加入AdsMOGO-SDK-Android.jar[Keymob]、youmi-android.jar[有米]、domob_android_sdk.jar[多盟])。

6.修改AndroidManifest.xml文件,添加必要的权限,以及到KeymobSDK的开发帮助文档里找到对应平台要求添加的activity。我这里加入:

<!-- 多盟integration -->
  <activity android:name="cn.domob.android.ads.DomobActivity"
   android:theme="@android:style/Theme.Translucent" />
  <!-- 有米integration -->
  <activity android:name="net.youmi.android.AdActivity"
   android:configChanges="keyboard|keyboardHidden|orientation" />
  <activity android:name="net.youmi.android.spotad.AdActivity"
   android:configChanges="keyboard|keyboardHidden|orientation" />

7.加入KeymobKey的meta-data ,将值替换你在Keymob平台最后得到的KEY值,我这边如下:

<meta-data android:value="25fff80a3966465e888e0db9735fef11" android:name="ADMOGO_KEY" />

8.在要展示的地方添加代码如下:

AdMogoLayout adview = new AdMogoLayout(this,"25fff80a3966465e888e0db9735fef11"); //ID跟xml配置的相同
  FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
  FrameLayout.LayoutParams.WRAP_CONTENT,
  FrameLayout.LayoutParams.WRAP_CONTENT);
  // 设置广告出现的位置(悬浮于顶部)
  params.topMargin = 0;
  params.gravity = Gravity.TOP|Gravity.CENTER_HORIZONTAL;
  addContentView(adview, params);

这段代码作用是新建一个Keymob广告的View,并将它加到activity的最顶端。

9.OK,代码都添加完成,运行测试,广告正常展示如下:

自己点击测试下,是否能正常打开广告页面。到Keymobweb页面调整广告平台的分配比例,分别测试所有你的平台是否均成功展示。如果有失败,请核对Keymob上配置的ID或密码是否相同(包括前后不能有空格),任然有问题的话联系平台技术人员帮你协助解决。

10.最后一步,将Keymob web页面上的比例平均分配,关闭测试模式。然后将应用签名打包,上传到各个广告平台审核。(平均分配是为了审核人员保证有机会能看到你的应用上有展示他们平台的广告),审核均通过后就可以发布到各个市场上来开始收益旅程了。

关于Keymob的使用可以看教程 www.keymob.com/tutorial_zh/index.html

比较详细和完整

时间: 2024-11-03 16:39:49

如何在Android应用中加入广告的相关文章

如何在android app中使用STL库

方法: 1.在jni目录下新建Application.mk; 加入 APP_STL := stlport_static右边的值还可以换成下面几个: system - 使用默认最小的C++运行库,这样生成的应用体积小,内存占用小,但部分功能将无法支持 stlport_static - 使用STLport作为静态库,这项是Android开发网极力推荐的 stlport_shared - STLport作为动态库,这个可能产生兼容性和部分低版本的Android固件,目前不推荐使用. gnustl_st

【转】如何在 Android 程序中禁止屏幕旋转和重启Activity

原文网址:http://www.cnblogs.com/bluestorm/p/3665890.html 禁止屏幕随手机旋转变化 有时候我们希望让一个程序的界面始终保持在一个方向,不随手机方向旋转而变化:在AndroidManifest.xml的每一个需要禁止转向的Activity配置中加入android:screenOrientation=”landscape” 属性. landscape = 横向portrait = 纵向 避免在转屏时重启Activity android中每次屏幕方向切换时

如何在Android开发中让你的代码更有效率

如何在Android开发中让你的代码更有效率 最近看了一个视频,名字叫做Doing More With Less: Being a Good Android Citizen,主要是讲如何用少少的几句代码来改善Android App的性能.在这个视频里面,演讲者以一个图片app为例讲解如何应用Android中现有的东西来改善app性能问题. 这个图片app的代码:https://github.com/penkzhou/iogallery.ppt:http://greenrobot.qiniudn.

如何:在Android应用中加入广告方法步骤!

我打算在第一个图拍照按钮下边的设置按钮加入弹出菜单(更多应用和关于2个选项),在更多应用菜单中展示广告墙,在第二个图界面的上方展示一个广告 条,推送广告因为不占用广告界面,所以不用考虑放在哪里.(当然最后发布的时候我会根据不同的发布市场来选择其中的1-2种广告形式,这里只为演示用,太 多的广告会让用户反感) 广告平台: 广告墙和推送广告我使用万普,广告条我使用芒果的聚合,暂时打算用多盟.有米这2个平台.(之所以用多个平台是可以根据情况做实时的在线比例分配,这样可以有更多的选择余地,当然也不是越多

如何在Android Gradle中添加原生so文件依赖

@author ASCE1885的 Github 简书 微博 CSDN 原文链接 背景 几个月前,基于Google的LevelDB,我为Android平台写了一个名为SnappyDB的键值数据库(NoSQL). 由于它使用到了原生C++代码,因此最终生成的文件除了Jars包还有so文件. 通过Maven仓库发布我们的函数库没有什么问题(只要你通过繁琐的发布流程),maven-android-plugin可以帮助我们包含共享库.Maven依赖规则使得我们可以指定想要获取的ABI(不同的CPU架构)

如何在Android App中使用matlab的神经网络代码

整个过程大概可以分成这么几步: 首先你要在matlab中写一个完整的神经网络 获取样本 样本导入 神经网络建模 神经网络训练 神经网络测试(优化建模) 然后你要在matlab中重写一个神经网络,第二个神经网络的特殊之处是 首先这个神经网络必须写成函数,具体有几个细节 把第一个神经网络的训练结果net网络保存成mat文件 把相关需要用的但无法直接写入代码的数据也保存成mat文件(比如数据归一化的参数) 然后在函数中把上面几个mat文件导入,基本上就是一个完整的神经网络模型了 再加上一个神经网络计算

如何在android studio中cordova的混合开发

基于Android Studio 中Cordova的开发 cordova简介 Cordova的前身是PhoneGap 官网: (http://cordova.io) Cordova应是运行在客户端本地应用容器的web应用.因此,运行在Cordova容器中的Html5应用的结构和传统的基于web服务器的有所不同.传统的web应用中服务器端做了大部分工作,比如按照用户请求传回生成的内容.而Cordova这种容器中的应用本身包括了所需要的静态页面,用户请求一般由js代码响应并与服务器交互,这样与服务器

如何在Android Studio中添加RecyclerView-v7支持包

1.打开SDK Manager,在Extras树下找到Android Support Library,下载好支持包.RecyclerView在v7-21版本就出来了.我这里不用更新了,说明是最新的,怎么可能不行呢? 2.按照目录结构,在app的build.gradle的dependencies最后添加了一句: compile 'com.android.support:recyclerview-v7:24.2.1' 3.Build——Clean Project.等待Clean完毕后,在Extern

如何在android程序中使用百度api接口:

百度地图.百度语音.百度导航.百度定位等等.以下为使用百度天气提供的api,具有天气查询,城市设置,短信分享天气等基本功能,界面清爽,不过现在因为百度key的原因失效了,不能更新天气了.srceduswustiweatherwebUpdateWeather.java中的AK替换成自己申请的百度API KEY,申请地址http://lbsyun.baidu.com/apiconsole/key.代码有比较详细的注释.代码量也不大,有兴趣的朋友可以自己排查一下.项目编码UTF-8 默认编译版本4.2