2012-08-01

【Android】app 置入 Admob 廣告賺錢

註冊 admob 帳號
http://www.google.com.tw/ads/admob/



選取網站或應用程式類型



填寫您的 app 資料


應用程式名稱:填入您的 app 中文名稱
Android 套裝 URL:按照提示填入您的 app 的 完整 package 名稱,如:market://details?id=com.tw.myapp
類別:選取適合您的 app 分類
應用程式說明:說明您的 app 特色,用途......等,大略寫一寫就可以了


出現下圖,點擊 "前往網站/應用程式"



因為剛申請,所以狀態還是紅燈,滑鼠移至這列,會浮現 "管理設定" 的按鈕,點擊這個按鈕



取得發佈商 ID 了


下載並安裝 admob SDK, 如果您是使用 Eclipse 編寫 Android 程式,通常您可以透過 Android SDK Manager 安裝。


或是到 https://developers.google.com/mobile-ads-sdk/ 下載安裝。

然後在 \您的 Android SDK安裝路徑\extras\google\admob_ads_sdk\ 下找到 GoogleAdMobAdsSdk-版本.jar,複製放到您專案的 libs 資料夾內。


滑鼠移到專案上,按右鍵、選 "Refresh" 後,再選 "Properties"


點左方的 "Android",勾選目標編譯平台要在 13 之後,以我的例子來說,我勾選的是 14



再點左方的 "Java Build Path" ==> 右上方的 "Libraries" 頁籤 ==> 可以看到剛剛放進 libsGoogleAdMobAdsSdk



在 AndroidManifest.xml 中宣告 com.google.ads.AdActivity 及 uses-permission
  1. ...
  2. ...
  3. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  4. <uses-permission android:name="android.permission.INTERNET" />
  5. ...
  6. ...
  7. <application>
  8. ...
  9. ...
  10.     <activity
  11.         android:name="com.google.ads.AdActivity"
  12.         android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />
  13. ...
  14. ...
  15. </application>


開啟要放 AdMob 廣告的 Layout,
  1. <LinearLayout
  2.     ...
  3.     ... >
  4.  
  5.     <!-- AdMob -->
  6.     <!-- 我將廣告放置在畫面的最上方 -->
  7.     <LinearLayout
  8.         android:id="@+id/adMob"
  9.         android:layout_width="match_parent"
  10.         android:layout_height="wrap_content"
  11.         android:orientation="horizontal" >
  12.     </LinearLayout>
  13. ...
  14. ...
  15. </LinearLayout>

開啟對應上述 Layout 的 activity

  1. import com.google.ads.*;
  2. ...
  3. ...
  4.  
  5. public class MainActivity extends Activity
  6. {
  7.     private AdView adView;
  8.     ...
  9.     ...
  10.     @Override
  11.     public void onCreate(Bundle savedInstanceState)
  12.     {
  13.         ...
  14.         ...
  15.         setContentView(R.layout.main);
  16.         // 建立 adView
  17.         adView = new AdView(this, AdSize.BANNER, "AdMob的 ID");
  18.         LinearLayout layout = (LinearLayout) findViewById(R.id.adMob);
  19.         // 在 layout 中加入 adView
  20.         layout.addView(adView);
  21.         // 在這裡列出不計入 AdMob 廣告的裝置
  22.         // 這些裝置會顯示假廣告
  23.         // 以免您誤按到廣告而被 AdMob 懷疑您作弊
  24.         // 而將您停權
  25.         AdRequest adRequest = new AdRequest();
  26.         adRequest.addTestDevice(AdRequest.TEST_EMULATOR); // 模擬器
  27.         adRequest.addTestDevice("實體機ID"); // 實體機
  28.         adView.loadAd(adRequest);
  29.         ...
  30.         ...
  31.     }
  32.     ...
  33.     ...
  34.     @Override
  35.     public void onDestroy()
  36.     {
  37.         adView.destroy();
  38.         super.onDestroy();
  39.     }
  40.     ...
  41.     ...
  42. }


在模擬器上執行 app,就會如下圖,在畫面上方顯示假的廣告。




注意:如果 AdMob 是第一次收到您的發佈商編號,廣告最多可能要過兩分鐘才會傳回;只要編號在 24 小時內都沒有使用,一開始都會出現這兩分鐘的延遲。

要如何取得實體機的 ID?首先您要將 app 改為在實體機上開發,請參考 在實體裝置進行 app 開發

在實體機上執行您的 app,Eclipse 會開始列出 LogCat,點一下綠色的 + 號,出現 "Logcat MessageFilter Settings" 視窗,Filter Nameby Log Tag 填入 ads,表示我們只要找跟 ads 相關的 log。



然後找到下圖的 log


call adRequest.addTestDevice() 括號內的那段字串就是實體機的 ID

點擊右上角的磁片圖示,將這個 log 存成文字檔,再將 ID 字串貼入您的程式碼中,重新執行 app,這時在實體機上顯示的就是假廣告了。

如果無法存成文字檔,就乖乖地手抄下來吧......

再回 AdMob 看,這個 app 的狀態已經變成綠燈,開始賺廣告費了。  :-D





沒有留言:

張貼留言