天天看點

Android應用開發-小巫CSDN部落格用戶端之嵌入有米廣告

Android應用開發-小巫CSDN部落格用戶端之嵌入有米廣告

上一篇部落格給大家介紹如何內建友盟社會化元件,本篇繼續帶來幹貨,教大家如何嵌入廣告到應用中去。小巫自稱專業對接30年,熟悉各大管道SDK的接入和使用,除非管道提供的SDK很坑,不然隻需要不到半個小時的時間就可以把SDK接入到應用當中。關于廣告,是開發者比較關注的話題,為什麼要嵌入廣告呢,自然是為了為自己的辛苦勞作得到些許額外的收益,因為在國内除非做IOS付費軟體,不然在Android平台下做收費軟體是很難獲得收益的,使用者隻想用看起來好用并且免費的東西,嵌入廣告是唯一能行得通的辦法,隻要不會太離譜就行。 廣告服務商很多,比如有米、點金、多盟、廣點通等等,開發者可以選擇口碑比較好,能為開發者帶來較好的收益的廣告管道。 筆者這裡選擇了有米作為實驗點,提供一個參考給大家,廢話不多說,先來看看小巫CSDN部落格用戶端現在的收益:

Android應用開發-小巫CSDN部落格用戶端之嵌入有米廣告

有木有看到收入啊,囧,很抱歉這點收入,小巫這個用戶端的廣告隐藏得很深,使用者也不是很多,是以就暫時就隻有這點啦。

同樣的,下面是有米廣告的內建過程: 到有米廣告官網注冊帳号,在管理中心建立應用擷取到釋出ID和應用密鑰:

Android應用開發-小巫CSDN部落格用戶端之嵌入有米廣告

建立完應用之後,下載下傳SDK并且解壓縮,得到如下檔案夾和檔案:

Android應用開發-小巫CSDN部落格用戶端之嵌入有米廣告

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);
           

小巫的部落格用戶端至內建了廣告條和插屏廣告,效果如下:

Android應用開發-小巫CSDN部落格用戶端之嵌入有米廣告

代碼中的實作:

/**
	 * 初始化廣告
	 * 
	 * @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就是一個很好的例子了。

Android應用開發-小巫CSDN部落格用戶端之嵌入有米廣告

下一篇博文預告是,如何用ListView呈現文章詳細内容,謝謝朋友們的耐心閱讀,你的支援是小巫的無限動力。