Android應用開發-小巫CSDN部落格用戶端之嵌入有米廣告
上一篇部落格給大家介紹如何內建友盟社會化元件,本篇繼續帶來幹貨,教大家如何嵌入廣告到應用中去。小巫自稱專業對接30年,熟悉各大管道SDK的接入和使用,除非管道提供的SDK很坑,不然隻需要不到半個小時的時間就可以把SDK接入到應用當中。關于廣告,是開發者比較關注的話題,為什麼要嵌入廣告呢,自然是為了為自己的辛苦勞作得到些許額外的收益,因為在國内除非做IOS付費軟體,不然在Android平台下做收費軟體是很難獲得收益的,使用者隻想用看起來好用并且免費的東西,嵌入廣告是唯一能行得通的辦法,隻要不會太離譜就行。 廣告服務商很多,比如有米、點金、多盟、廣點通等等,開發者可以選擇口碑比較好,能為開發者帶來較好的收益的廣告管道。 筆者這裡選擇了有米作為實驗點,提供一個參考給大家,廢話不多說,先來看看小巫CSDN部落格用戶端現在的收益:
有木有看到收入啊,囧,很抱歉這點收入,小巫這個用戶端的廣告隐藏得很深,使用者也不是很多,是以就暫時就隻有這點啦。
同樣的,下面是有米廣告的內建過程: 到有米廣告官網注冊帳号,在管理中心建立應用擷取到釋出ID和應用密鑰:
建立完應用之後,下載下傳SDK并且解壓縮,得到如下檔案夾和檔案:
demo對應相應的示例項目,開發者可以通過這些示例項目,可以快速實作內建SDK。 doc對應開發文檔 libs對應內建時需要的庫 說實在內建SDK并沒有什麼技術含量,隻要你按照管道提供的開發文檔,自己試一遍,基本上就沒有什麼疑惑了。
有米給我們提供了以下幾種廣告類型:
- 廣告條,也稱橫幅
- 插屏廣告
- 積分牆廣告
然而橫幅廣告有兩種形式,一種是以XML形式布局,另一種是以代碼形式布局。
配置有米權限:
<!-- 有米廣告配置權限 -->
<!-- 配置權限 -->
<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_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.GET_TASKS" />
<!-- 以下為可選權限 -->
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
有米必要的配置:
<!-- 有米廣告必須添加的元件 -->
<!-- 添加必須的元件 -->
<activity
android:name="net.youmi.android.AdBrowser"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:theme="@android:style/Theme.Light.NoTitleBar" >
</activity>
<service
android:name="net.youmi.android.AdService"
android:exported="false" >
</service>
<receiver android:name="net.youmi.android.AdReceiver" >
<intent-filter>
<action android:name="android.intent.action.PACKAGE_ADDED" />
<data android:scheme="package" />
</intent-filter>
</receiver>
<!-- 有米管道号(可選配置) 管道号不能帶空格,類型為整數 -->
<meta-data
android:name="YOUMI_CHANNEL"
android:value="0" >
</meta-data>
有米廣告初始化:
// 初始化應用的釋出 ID 和密鑰,以及設定測試模式
AdManager.getInstance(this).init("您的應用釋出ID", "您的應用密鑰", false);
小巫的部落格用戶端至內建了廣告條和插屏廣告,效果如下:
代碼中的實作:
/**
* 初始化廣告
*
* @param view
*/
public void initAd(View view) {
// 初始化接口,應用啟動的時候調用
// 參數:appId, appSecret, 調試模式
AdManager.getInstance(getActivity()).init("8df70b90ebf86823",
"b7659d08439c052b", false);
// // 廣告條接口調用(适用于應用)
// // 将廣告條adView添加到需要展示的layout控件中
// LinearLayout adLayout = (LinearLayout)
// view.findViewById(R.id.adLayout);
// AdView adView = new AdView(getActivity(), AdSize.FIT_SCREEN);
// adLayout.addView(adView);
// 普通布局,适用于應用
// 擷取要嵌入迷你廣告條的布局
RelativeLayout adLayout = (RelativeLayout) view
.findViewById(R.id.adLayout);
// demo 1 迷你Banner : 寬滿屏,高32dp
DiyBanner banner = new DiyBanner(getActivity(),
DiyAdSize.SIZE_MATCH_SCREENx32);// 傳入高度為32dp的AdSize來定義迷你Banner
// demo 2 迷你Banner : 寬320dp,高32dp
// DiyBanner banner = new DiyBanner(this,
// DiyAdSize.SIZE_320x32);//傳入高度為32dp的AdSize來定義迷你Banner
// 将積分Banner加入到布局中
adLayout.addView(banner);
// 監聽廣告條接口
// adView.setAdListener(new AdViewListener() {
//
// @Override
// public void onSwitchedAd(AdView arg0) {
// Log.i("YoumiAdDemo", "廣告條切換");
// }
//
// @Override
// public void onReceivedAd(AdView arg0) {
// Log.i("YoumiAdDemo", "請求廣告成功");
// }
//
// @Override
// public void onFailedToReceivedAd(AdView arg0) {
// Log.i("YoumiAdDemo", "請求廣告失敗");
// }
// });
// 插播接口調用
// 開發者可以到開發者背景設定展示頻率,需要到開發者背景設定頁面(詳細資訊->業務資訊->無積分廣告業務->進階設定)
// 自4.03版本增加雲控制是否開啟防誤點功能,需要到開發者背景設定頁面(詳細資訊->業務資訊->無積分廣告業務->進階設定)
// 加載插播資源
SpotManager.getInstance(getActivity()).loadSpotAds();
// 設定展示逾時時間,加載逾時則不展示廣告,預設0,代表不設定逾時時間
SpotManager.getInstance(getActivity()).setSpotTimeout(5000);// 設定5秒
SpotManager.getInstance(getActivity()).setShowInterval(20);// 設定20秒的顯示時間間隔
// 如需要使用自動關閉插屏功能,請取消注釋下面方法
SpotManager.getInstance(getActivity()).setAutoCloseSpot(true);// 設定自動關閉插屏開關
SpotManager.getInstance(getActivity()).setCloseTime(6000); // 設定關閉插屏時間
}
展示插屏廣告的代碼:
// 展示插播廣告,可以不調用loadSpot獨立使用
SpotManager.getInstance(getActivity()).showSpotAds(getActivity(),
new SpotDialogListener() {
@Override
public void onShowSuccess() {
Log.i("YoumiAdDemo", "展示成功");
}
@Override
public void onShowFailed() {
Log.i("YoumiAdDemo", "展示失敗");
}
});
聲明周期中的插屏廣告的處理:
@Override
public void onStop() {
// 如果不調用此方法,則按home鍵的時候會出現圖示無法顯示的情況。
SpotManager.getInstance(getActivity()).disMiss(false);
super.onStop();
}
@Override
public void onDestroy() {
// 取消注冊監聽
SpotManager.getInstance(getActivity()).unregisterSceenReceiver();
super.onDestroy();
}
以上就是關于嵌入有米廣告的過程,如何長正式産生收益呢,需要應用稽核通過呈運作狀态,就開始計費了。隻要你的應用做得足夠吸引人,我想使用者也不介意多點幾下作為彙報,看看Flappy Bird就是一個很好的例子了。
下一篇博文預告是,如何用ListView呈現文章詳細内容,謝謝朋友們的耐心閱讀,你的支援是小巫的無限動力。