【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
...
...
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
...
...
<application>
...
...
    <activity 
        android:name="com.google.ads.AdActivity"
        android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />
...
...
</application>


開啟要放 AdMob 廣告的 Layout,
<LinearLayout
    ...
    ... >

    <!-- AdMob -->
    <!-- 我將廣告放置在畫面的最上方 -->
    <LinearLayout 
        android:id="@+id/adMob"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >
    </LinearLayout>
...
...
</LinearLayout>

開啟對應上述 Layout 的 activity

import com.google.ads.*;
...
...

public class MainActivity extends Activity
{
    private AdView adView;
    ...
    ...
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        ...
        ...
        setContentView(R.layout.main);
        // 建立 adView
        adView = new AdView(this, AdSize.BANNER, "AdMob的 ID");
        LinearLayout layout = (LinearLayout) findViewById(R.id.adMob);
        // 在 layout 中加入 adView
        layout.addView(adView);
        // 在這裡列出不計入 AdMob 廣告的裝置
        // 這些裝置會顯示假廣告
        // 以免您誤按到廣告而被 AdMob 懷疑您作弊
        // 而將您停權
        AdRequest adRequest = new AdRequest();
        adRequest.addTestDevice(AdRequest.TEST_EMULATOR);               // 模擬器
        adRequest.addTestDevice("實體機ID"); // 實體機
        adView.loadAd(adRequest);
        ...
        ...
    }
    ...
    ...
    @Override
    public void onDestroy() 
    {
        adView.destroy();
        super.onDestroy();
    }
    ...
    ...
}


在模擬器上執行 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