想必大家都知道,国内的Android应用基本都是免费的,那么开发者如何获得收入呢?应用中插入广告是一个比较常用的盈利手段。本文就讲解如何在Android应用中插入广告。 国内的广告平台有很多,用户数量比较多的有万普,有米,多普。下面就不一一介绍了,免得说我打广告。本文以万普为例。 1、首先去万普官网下载sdk,把sdk里面的jar包导入到项目的lib目录下。 2、修改AndroidManifest.xml文件。 确保应用具有以下几项权限:XML/HTML代码
12345678910
|
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.GET_TASKS" /> <!--以下两个权限为可选项,用于支持特殊广告形式--> <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" /> <uses-permission android:name="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS"/>
|
在<application>段内添加以下内容:XML/HTML代码
1234567
|
<activity android:name="com.waps.OffersWebView" android:configChanges="keyboardHidden|orientation"/> <!--以下属性为应用ID,从万普后台获取--> <meta-data android:name="WAPS_ID" android:value="应用标识,这个你再万普申请一个应用就会生成" /> <!--以下属性为分发渠道ID,编码表参见本文档末附表--> <meta-data android:name="WAPS_PID" android:value="分发渠道标识,你需要的发布渠道比如机锋,安卓市场" />
|
3、接口代码 (一)数据统计接口 该接口是所有其他接口能正常使用的基础,在每次应用启动时,必须调用该接口,才能保证获得准确的统计数据。 步骤1:在的应用中第一个Activity类中(启动的第一个类),添加下面一行代码:Java代码
12345
|
//方式①:通过AndroidManifest文件读取WAPS_ID和WAPS_PID AppConnect.getInstance(this); //必须确保AndroidManifest文件内配置了WAPS_ID //方式②:通过代码设置WAPS_ID和WAPS_PID AppConnect.getInstance("WAPS_ID","WAPS_PID",this);
|
步骤2:在程序退出的处理方法中,添加下面一行代码:Java代码
12
|
//以下方法将用于释放SDK占用的系统资源 AppConnect.getInstance(this).finalize();
|
4、广告条添加 在布局文件添加:XML/HTML代码
12345
|
<LinearLayoutandroid:id="@+id/AdLinearLayout"android:layout_width="fill_parent"android:
layout_height="wrap_content"android:gravity="center_horizontal"/>
|
在activity添加以下代码:Java代码
12
|
LinearLayout container =(LinearLayout)findViewById(R.id.AdLinearLayout); new AdView(this,container).DisplayAd();
|
5、迷你广告条添加 步骤1:复制如下代码到相应Activiy的Layout文件中,并放置在合适的位置:XML/HTML代码
1234
|
<LinearLayout android:id="@+id/miniAdLinearLayout" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal"/>
|
步骤2:在调用样式文件的Activity类中, 添加下面的代码:Java代码
12345678910
|
//设置迷你广告背景颜色 AppConnect.getInstance(this).setAdBackColor(Color.argb(50, 120, 240, 120)); //设置迷你广告广告语颜色 AppConnect.getInstance(this).setAdForeColor(Color.YELLOW); //若未设置以上两个颜色,则默认为黑底白字 LinearLayout miniLayout =(LinearLayout)findViewById(R.id.miniAdLinearLayout); new MiniAdView(this, miniLayout).DisplayAd(10); //默认10秒切换一次广告
|
6、应用列表添加 应用列表(积分墙)是收入主要来源,高于广告收入,单个下载价格一般是0.5元,很可观, 1)activtiy,点击事件添加 AppConnect.getInstance(this).showOffers(this); 为了更好的让推荐应用下载,一般是结合积分,比如一款看图软件,假如你要看图,结果积分不够,没办法只有下载应用获取积分。 步骤1:从服务器端获取用户点数/虚拟货币余额: AppConnect.getInstance(this).getPoints(this);
步骤2:确保在this类中实现UpdatePointsNotifier接口,实现下面的两个方法,用于异步接收服务器返回的结果: public void getUpdatePoints(String currencyName, int pointTotal);//获取成功
public void getUpdatePointsFailed(String error);//获取失败
2)花费用户虚拟货币 花费(扣除)用户的虚拟货币接口: AppConnect.getInstance(this).spendPoints(int amount, this); 调用此方法的响应结果将通过this中实现的UpdatePointsNotifier接口返回 3)奖励用户虚拟货币 授予(增加)用户虚拟货币的接口:
AppConnect.getInstance(this).awardPoints(int amount, this); 调用此方法的响应结果将通过this中实现的UpdatePointsNotifier接口返回。 注意,所有通过万普广告获得的虚拟货币将自动给予到用户,无需调用该接口。该接口仅用于用户完成了开发者指定的其他任务的情况下额外给予用户虚拟货币。开可通过管理后台禁用该接口。 这样就基本完成了在Android应用中插入广告的过程。
前面在论坛里发了《Android学习及如何利用android来赚钱》帖子后,收到不少Android开发者的回复,加上整理到博客里的回复,很多人问到如何在应用中加入广告,今天刚好有一个新的小应用要加广告,一起算写一篇总结。 先介绍一下我准备好的东西:应用:《快拍分享》,一个简单的拍照程序,并可以将应用拍好的照片发到自己的微博上的一个应用,支持新浪微博、人人网和腾讯微博。下面是该应用的主要的界面 结合该应用的实际,我打算在这里加入3种模式的广告,即我前面文章里说到的广告条、广告墙和推送广告。因为sns分享是由友盟SDK来集成的,所以最后一个界面加不了广告。我打算在第一个图拍照按钮下边的设置按钮加入弹出菜单(更多应用和关于2个选项),在更多应用菜单中展示广告墙,在第二个图界面的上方展示一个广告条,推送广告因为不占用广告界面,所以不用考虑放在哪里。(当然最后发布的时候我会根据不同的发布市场来选择其中的1-2种广告形式,这里只为演示用,太多的广告会让用户反感)广告平台:广告墙和推送广告我使用万普,广告条我使用芒果的聚合,暂时打算用多盟、有米这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->JavaBuild 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上传到万普审核,同时就可以发布到市场渠道去让用户下载了。(关于市场发布下篇里再介绍) 下面介绍使用芒果聚合来添加广告条:1.登录芒果平台,添加新应用,打*的必须填写,点下一步来进入广告平台选择页面。2.到你要添加的广告平台添加新应用来获取对应的ID,并把这些ID设置到1步骤芒果平台对应的ID设置中(点对应平台后面的“未设置”)。3.点击芒果页面上对应平台后面的按钮来打开对应平台的状态,并点击开启测试,以便接下来测试是否能正常获取测试广告。同时将2个平台的比例均配成50%。4.点击下一步,应用就添加完成了。会得到一个芒果ID备用,下载芒果广告的SDK。(因为该SDK里已经包含了其所支持的所有平台的jar包,所以不需要单独再去下载其他广告平台的包了,而且聚合平台不一定及时更新所有平台的包,可能会对广告平台的更新没有及时更改其SDK,所以也必须从这里下)5.解压芒果上下载下来的SDK,并将其libs下对应平台的包加入工程(我这里加入AdsMOGO-SDK-Android.jar[芒果]、youmi-android.jar[有米]、domob_android_sdk.jar[多盟])。6.修改AndroidManifest.xml文件,添加必要的权限,以及到芒果SDK的开发帮助文档里找到对应平台要求添加的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.加入芒果Key的meta-data ,将值替换你在芒果平台最后得到的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);这段代码作用是新建一个芒果广告的View,并将它加到activity的最顶端。9.OK,代码都添加完成,运行测试,广告正常展示如下: 自己点击测试下,是否能正常打开广告页面。到芒果web页面调整广告平台的分配比例,分别测试所有你的平台是否均成功展示。如果有失败,请核对芒果上配置的ID或密码是否相同(包括前后不能有空格),任然有问题的话联系平台技术人员帮你协助解决。10.最后一步,将芒果web页面上的比例平均分配,关闭测试模式。然后将应用签名打包,上传到各个广告平台审核。(平均分配是为了审核人员保证有机会能看到你的应用上有展示他们平台的广告),审核均通过后就可以发布到各个市场上来开始收益旅程了。
广告墙和推送广告我使用万普,广告条我使用芒果的聚合,暂时打算用多盟、有米这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上传到万普审核,同时就可以发布到市场渠道去让用户下载了。(关于市场发布下篇里再介绍) 下面介绍使用芒果聚合来添加广告条: 1.登录芒果平台,添加新应用,打*的必须填写,点下一步来进入广告平台选择页面。 2.到你要添加的广告平台添加新应用来获取对应的ID,并把这些ID设置到1步骤芒果平台对应的ID设置中(点对应平台后面的“未设置”)。 3.点击芒果页面上对应平台后面的按钮来打开对应平台的状态,并点击开启测试,以便接下来测试是否能正常获取测试广告。同时将2个平台的比例均配成50%。 4.点击下一步,应用就添加完成了。会得到一个芒果ID备用,下载芒果广告的SDK。(因为该SDK里已经包含了其所支持的所有平台的jar包,所以不需要单独再去下载其他广告平台的包了,而且聚合平台不一定及时更新所有平台的包,可能会对广告平台的更新没有及时更改其SDK,所以也必须从这里下) 5.解压芒果上下载下来的SDK,并将其libs下对应平台的包加入工程(我这里加入AdsMOGO-SDK-Android.jar[芒果]、youmi-android.jar[有米]、domob_android_sdk.jar[多盟])。 6.修改AndroidManifest.xml文件,添加必要的权限,以及到芒果SDK的开发帮助文档里找到对应平台要求添加的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.加入芒果Key的meta-data ,将值替换你在芒果平台最后得到的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); 这段代码作用是新建一个芒果广告的View,并将它加到activity的最顶端。 9.OK,代码都添加完成,运行测试,广告正常展示如下: 自己点击测试下,是否能正常打开广告页面。到芒果web页面调整广告平台的分配比例,分别测试所有你的平台是否均成功展示。如果有失败,请核对芒果上配置的ID或密码是否相同(包括前后不能有空格),任然有问题的话联系平台技术人员帮你协助解决。 10.最后一步,将芒果web页面上的比例平均分配,关闭测试模式。然后将应用签名打包,上传到各个广告平台审核。(平均分配是为了审核人员保证有机会能看到你的应用上有展示他们平台的广告),审核均通过后就可以发布到各个市场上来开始收益旅程了。
|