2010年6月6日星期日

【分享】- 如何在 Android 程式中置入 AdMob 廣告?

試試 AdMob for Mobile 吧 !^__^

夥伴們請參考此篇文章,在申請好 AdMob 帳號後,就直接參考這裡的文章吧!Google Admob 的程式寫法又大翻修了! @@

1. 先到 AdMob 網站申請一個廣告發佈商帳號。



2. 依指示步驟申請完成後,登入 AdMob,並點選右上角你剛登入的帳號連結(電子郵件地址)或 http://zhtw.admob.com/my_sites/


3. 點選選單中的『網站與應用程式』下的『新增網站/應用程式』。


4. 選擇『Android 應用程式』


5. 填入你的應用程式資料,建立新的應用程式 ID:


6. 取得程式碼與 SDK:


7. 檢視廣告發佈狀態:


8. Android 程式中置入 Admob for mobile (android) 程式:

(1) 解壓縮 Admob SDK 檔後複製解壓縮目錄內的 admob-sdk-android.jar 到專案的 libs 目錄中, 如沒 libs 目錄請自行新增)

(2) 將 admob-sdk-android.jar 加到專案的編譯的設定中 (Project-->Properties-->Java Build Patch-->Libraries-->Add JARs...-->選擇在專案目錄中 libs 目錄下的 admob-sdk-android.jar

(3) 在 res/values 中新增一個 attrs.xml 檔案,並填入以下內容:


<?xml version="1.0" encoding="UTF-8"?>
<resources>
<declare-styleable name="com.admob.android.ads.AdView">
<attr name="backgroundColor" format="color" />
<attr name="primaryTextColor" format="color" />
<attr name="secondaryTextColor" format="color" />
<attr name="keywords" format="string" />
<attr name="refreshInterval" format="integer" />
</declare-styleable>
</resources>


(4) 在 res/layout/main.xml 中加入以下內容 (注意紅色部份要改成你自己的 App 名稱):


<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:myapp="http://schemas.android.com/apk/res/com.test.android.YourAppName"


android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center">



<!-- 320x50 px AdMob -->
<com.admob.android.ads.AdView
android:id="@+id/ad"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
myapp:backgroundColor="#000000"
myapp:primaryTextColor="#FFFFFF"
myapp:secondaryTextColor="#CCCCCC"
/>



</LinearLayout>

(5) 在 AndroidManifest.xml 中放入以下內容  (紅色部份記得改成你的 Admob App ID):


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"


...................  略 ...................................
<activity android:name=".TaiwanGirlPictureCopyRun"
  android:label="@string/str_auto_run"
  android:screenOrientation="sensor">
</activity>

<!-- The application's publisher ID assigned by AdMob -->
<meta-data android:value="a1234567890abc" android:name="ADMOB_PUBLISHER_ID" />

</application>
<uses-sdk android:minSdkVersion="3" />

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

</manifest> 

(6)  重新編譯 android 程式'上載 Android Market 即可,但廣告會好久之後才放送 @@ ...

(7) 如要在還沒放上 Android Market 上之前做測試,看廣告效果,可在主程式中加入以程式段:

@Override

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
       
    TextView010 = (TextView) this.findViewById(R.id.TextView010);
    TextView010.setText("AdMob Mobile 連網測試");
        
    AdManager.setTestDevices( new String[] {
       AdManager.TEST_EMULATOR, // Android emulator
        "Your_EMEI_number", // My HTC Hero Test Phone (IMEI number)
    } );
}


(8) 報告完畢

12 則留言:

  1. 最近試了一下...Admob挺糟的說:(

    首先就是費用很低,點一下大概0.01美金,再來廣告投放率也很低,約40%吧,就是兩次有一次會出步來...沒廣告,當然就不會被點,而且會空一塊在那邊,QQ有點醜...一個禮拜..不到一塊美金QQ

    不知道有沒有類似的形況...

    回覆刪除
  2. ㄏㄏ ... 感同身受 >_<\\\ , 同樣的點擊數, 獲益差了 10 幾倍!! 所以咧, AdSense for mobile Apps 快開放啦 ~~~~~ 快抓狂了快抓狂了快抓狂了快抓狂 ....

    回覆刪除
  3. 對了 ! 您說沒廣告會空出一片 ? 我的不會耶, 是不是您沒用以下的參數 ?
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"

    回覆刪除
  4. 東港兄你好,想請問你知道如何將admob banner置中在螢幕中間嗎?

    回覆刪除
  5. Jerry 您好, 派謝喔, 現在才回應, 因剛帶全家去旅遊回來.

    要置中在螢幕上, 您可在 layout 設定中, ad 加入以下參數

    android:layout_centerInParent="true"

    另外還有兩個參數可以用試看看:

    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"

    回覆刪除
  6. 東大,好久沒上來看看您的文章了...

    今天收到 AdSense 的問卷,才又想到再試試看跟他們申請「AdSense for Mobile Applications」的服務開通... 後來自己 Google 一下,被導引到 AdMob 開通帳戶,然後又回到東大您這邊看一下相關文章。

    想請教一下東大是不是拿到 AdSense 了?還是 Google 以後都用 AdMob 來取代 AdSense for Mobile Applications」?

    回覆刪除
  7. 沒申請到「AdSense for Mobile Applications」,只知被「AdMob」告知會開始在 AdMob 上推播「AdSense for Mobile Applications」的廣告,我猜 Google 想用 AdMob for Mobile Apps 取代 AdSense for Mobile Applications,在漁郎近日的文章上有提及喔 ^_^

    回覆刪除
  8. 魚郎您好
    感謝您的教學 受益匪淺
    再我實作之後
    結果是這樣
    http://imgur.com/zVKr2
    請問這樣的話我上傳到market就會有廣告了嘛~?
    你說等很久是上傳之後不會馬上有廣告嘛?
    因為我用
    AdManager.setTestDevices( new String[] {
    AdManager.TEST_EMULATOR, // Android emulator
    "Your_EMEI_number", // My HTC Hero Test Phone (IMEI number)
    } );
    或是adRequest.setTesting(true);
    都還是沒辦法測試有沒有實際廣告~
    admanger的setTestDevice好像都會有error@@~

    如果知道的話煩請告訴我
    謝謝你

    回覆刪除
  9. @ ymow ,不知怎的,您的留言被系統丟到了「垃圾留言」中了,漁郎想說怎麼只收到 e-mail,卻在版上看不到留言 @@ ... 原來是 Blog 的新功能 >_<。。。

    是的!您可以不要使用文中的第 7 段說明,漁郎目前都只是直接丟到「實機」上測試,且都不啟用「測試模式」,以免忘記關掉就丟到 Android Market 發佈了!

    至於「等很久」:指的是上載後(前提是您的 AdMob 廣告是剛申請)會等ㄧ些時候才會有廣告,漁郎已經忘了等多久了,只覺得「好久」「好久」@@ ...

    回覆刪除
  10. 謝謝您的快速回應~
    垃圾信(淡淡的憂傷)xd
    不過應該是縮網址的判讀關係~

    因為我現在也是有實機+模擬機
    所以如果可以的話實機上面跑就會馬上有廣告了嗎??
    因為我一直試都只有成功畫面~~
    不然就是banner沒出現==
    都沒有出現真正的廣告
    已經玩一天了~囧

    另外~
    新版(4.1.1)似乎不能用AdManager的方法了

    回覆刪除
  11. 您有看看文「頂」嗎? AdMob 大翻修了:看ㄧ下另一篇文章吧:http://www.e68club.com/2011/04/android-sdk-eclipse-google-admob-ads.html

    回覆刪除
  12. 嗯嗯~我都有看~謝謝~我在試試看好了

    回覆刪除