Android应用开发-小巫CSDN博客客户端之嵌入有米广告

来源:互联网 发布:java 多态 理解 编辑:程序博客网 时间:2024/05/16 15:50
 

Android应用开发-小巫CSDN博客客户端之嵌入有米广告

分类: 【小巫CSDN博客客户端开发】 2166人阅读 评论(9) 收藏 举报
android应用csdn博客
Android应用开发-小巫CSDN博客客户端之嵌入有米广告

上一篇博客给大家介绍如何集成友盟社会化组件,本篇继续带来干货,教大家如何嵌入广告到应用中去。小巫自称专业对接30年,熟悉各大渠道SDK的接入和使用,除非渠道提供的SDK很坑,不然只需要不到半个小时的时间就可以把SDK接入到应用当中。关于广告,是开发者比较关注的话题,为什么要嵌入广告呢,自然是为了为自己的辛苦劳作得到些许额外的收益,因为在国内除非做IOS付费软件,不然在Android平台下做收费软件是很难获得收益的,用户只想用看起来好用并且免费的东西,嵌入广告是唯一能行得通的办法,只要不会太离谱就行。
广告服务商很多,比如有米、点金、多盟、广点通等等,开发者可以选择口碑比较好,能为开发者带来较好的收益的广告渠道。
笔者这里选择了有米作为实验点,提供一个参考给大家,废话不多说,先来看看小巫CSDN博客客户端现在的收益:


有木有看到收入啊,囧,很抱歉这点收入,小巫这个客户端的广告隐藏得很深,用户也不是很多,所以就暂时就只有这点啦。

同样的,下面是有米广告的集成过程:
到有米广告官网注册帐号,在管理中心创建应用获取到发布ID和应用密钥:

创建完应用之后,下载SDK并且解压缩,得到如下文件夹和文件:

demo对应相应的示例项目,开发者可以通过这些示例项目,可以快速实现集成SDK。
doc对应开发文档
libs对应集成时需要的库
说实在集成SDK并没有什么技术含量,只要你按照渠道提供的开发文档,自己试一遍,基本上就没有什么疑惑了。

有米给我们提供了以下几种广告类型:
  • 广告条,也称横幅
  • 插屏广告
  • 积分墙广告

然而横幅广告有两种形式,一种是以XML形式布局,另一种是以代码形式布局。


配置有米权限:
[html] view plaincopy
  1. <!-- 有米广告配置权限 -->  
  2. <!-- 配置权限 -->  
  3. <uses-permission android:name="android.permission.INTERNET" />  
  4. <uses-permission android:name="android.permission.READ_PHONE_STATE" />  
  5. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />  
  6. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />  
  7. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />  
  8. <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />  
  9. <uses-permission android:name="android.permission.GET_TASKS" />  
  10. <!-- 以下为可选权限 -->  
  11. <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />  


有米必要的配置:
[html] view plaincopy
  1. <!-- 有米广告必须添加的组件 -->  
  2.        <!-- 添加必须的组件 -->  
  3.        <activity  
  4.            android:name="net.youmi.android.AdBrowser"  
  5.            android:configChanges="keyboard|keyboardHidden|orientation|screenSize"  
  6.            android:theme="@android:style/Theme.Light.NoTitleBar" >  
  7.        </activity>  
  8.   
  9.        <service  
  10.            android:name="net.youmi.android.AdService"  
  11.            android:exported="false" >  
  12.        </service>  
  13.   
  14.        <receiver android:name="net.youmi.android.AdReceiver" >  
  15.            <intent-filter>  
  16.                <action android:name="android.intent.action.PACKAGE_ADDED" />  
  17.   
  18.                <data android:scheme="package" />  
  19.            </intent-filter>  
  20.        </receiver>  
  21.   
  22.        <!-- 有米渠道号(可选配置) 渠道号不能带空格,类型为整数 -->  
  23.        <meta-data  
  24.            android:name="YOUMI_CHANNEL"  
  25.            android:value="0" >  
  26.        </meta-data>  


有米广告初始化:
[java] view plaincopy
  1. // 初始化应用的发布 ID 和密钥,以及设置测试模式  
  2.         AdManager.getInstance(this).init("您的应用发布ID""您的应用密钥"false);  

小巫的博客客户端至集成了广告条和插屏广告,效果如下:



代码中的实现:
[java] view plaincopy
  1. /** 
  2.      * 初始化广告 
  3.      *  
  4.      * @param view 
  5.      */  
  6.     public void initAd(View view) {  
  7.         // 初始化接口,应用启动的时候调用  
  8.         // 参数:appId, appSecret, 调试模式  
  9.         AdManager.getInstance(getActivity()).init("8df70b90ebf86823",  
  10.                 "b7659d08439c052b"false);  
  11.         // // 广告条接口调用(适用于应用)  
  12.         // // 将广告条adView添加到需要展示的layout控件中  
  13.         // LinearLayout adLayout = (LinearLayout)  
  14.         // view.findViewById(R.id.adLayout);  
  15.         // AdView adView = new AdView(getActivity(), AdSize.FIT_SCREEN);  
  16.         // adLayout.addView(adView);  
  17.   
  18.         // 普通布局,适用于应用  
  19.         // 获取要嵌入迷你广告条的布局  
  20.         RelativeLayout adLayout = (RelativeLayout) view  
  21.                 .findViewById(R.id.adLayout);  
  22.         // demo 1 迷你Banner : 宽满屏,高32dp  
  23.         DiyBanner banner = new DiyBanner(getActivity(),  
  24.                 DiyAdSize.SIZE_MATCH_SCREENx32);// 传入高度为32dp的AdSize来定义迷你Banner  
  25.         // demo 2 迷你Banner : 宽320dp,高32dp  
  26.         // DiyBanner banner = new DiyBanner(this,  
  27.         // DiyAdSize.SIZE_320x32);//传入高度为32dp的AdSize来定义迷你Banner  
  28.         // 将积分Banner加入到布局中  
  29.         adLayout.addView(banner);  
  30.   
  31.         // 监听广告条接口  
  32.         // adView.setAdListener(new AdViewListener() {  
  33.         //  
  34.         // @Override  
  35.         // public void onSwitchedAd(AdView arg0) {  
  36.         // Log.i("YoumiAdDemo", "广告条切换");  
  37.         // }  
  38.         //  
  39.         // @Override  
  40.         // public void onReceivedAd(AdView arg0) {  
  41.         // Log.i("YoumiAdDemo", "请求广告成功");  
  42.         // }  
  43.         //  
  44.         // @Override  
  45.         // public void onFailedToReceivedAd(AdView arg0) {  
  46.         // Log.i("YoumiAdDemo", "请求广告失败");  
  47.         // }  
  48.         // });  
  49.   
  50.         // 插播接口调用  
  51.         // 开发者可以到开发者后台设置展示频率,需要到开发者后台设置页面(详细信息->业务信息->无积分广告业务->高级设置)  
  52.         // 自4.03版本增加云控制是否开启防误点功能,需要到开发者后台设置页面(详细信息->业务信息->无积分广告业务->高级设置)  
  53.   
  54.         // 加载插播资源  
  55.         SpotManager.getInstance(getActivity()).loadSpotAds();  
  56.         // 设置展示超时时间,加载超时则不展示广告,默认0,代表不设置超时时间  
  57.         SpotManager.getInstance(getActivity()).setSpotTimeout(5000);// 设置5秒  
  58.         SpotManager.getInstance(getActivity()).setShowInterval(20);// 设置20秒的显示时间间隔  
  59.         // 如需要使用自动关闭插屏功能,请取消注释下面方法  
  60.         SpotManager.getInstance(getActivity()).setAutoCloseSpot(true);// 设置自动关闭插屏开关  
  61.         SpotManager.getInstance(getActivity()).setCloseTime(6000); // 设置关闭插屏时间  
  62.   
  63.     }  



展示插屏广告的代码:
[java] view plaincopy
  1. // 展示插播广告,可以不调用loadSpot独立使用  
  2.             SpotManager.getInstance(getActivity()).showSpotAds(getActivity(),  
  3.                     new SpotDialogListener() {  
  4.                         @Override  
  5.                         public void onShowSuccess() {  
  6.                             Log.i("YoumiAdDemo""展示成功");  
  7.                         }  
  8.   
  9.                         @Override  
  10.                         public void onShowFailed() {  
  11.                             Log.i("YoumiAdDemo""展示失败");  
  12.                         }  
  13.   
  14.                     });  




声明周期中的插屏广告的处理:
[java] view plaincopy
  1. @Override  
  2. public void onStop() {  
  3.     // 如果不调用此方法,则按home键的时候会出现图标无法显示的情况。  
  4.     SpotManager.getInstance(getActivity()).disMiss(false);  
  5.     super.onStop();  
  6. }  
  7.   
  8. @Override  
  9. public void onDestroy() {  
  10.     // 取消注册监听  
  11.     SpotManager.getInstance(getActivity()).unregisterSceenReceiver();  
  12.     super.onDestroy();  
  13. }  

以上就是关于嵌入有米广告的过程,如何长正式产生收益呢,需要应用审核通过呈运行状态,就开始计费了。只要你的应用做得足够吸引人,我想用户也不介意多点几下作为汇报,看看Flappy Bird就是一个很好的例子了。


下一篇博文预告是,如何用ListView呈现文章详细内容,谢谢朋友们的耐心阅读,你的支持是小巫的无限动力。



0 0
原创粉丝点击