2014年5月20日 星期二

[Android] 廣告 - Google Mobile Ads SDK - AdMob

要在 Android App 放廣告拿些收入,
廣告商有一些選擇,
包括 AdMob 、 DFP 等,
這邊介紹的是 AdMob ,並且以橫幅廣告(Banner)做範例。




一、安裝與設定 Google Play Services 的 SDK

請參考 [Android] 安裝與設定 Google Play Services 的 SDK



二、設定廣告 Overlay 顯示的 Activity

在 AndroidManifest.xml 內,加上第七、八行。
<?xml version="1.0" encoding="utf-8"?>
<manifest ...>
  <application ... >
    <meta-data android:name="com.google.android.gms.version"
               android:value="@integer/google_play_services_version" />
    <activity ... />
    <activity android:name="com.google.android.gms.ads.AdActivity"
             android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />
  </application>
</manifest>
第四、五行則是在上一個步驟加的。



三、設定權限

在 AndroidManifest.xml 內,加上第三、四行。
<?xml version="1.0" encoding="utf-8"?>
<manifest ...>
  <uses-permission android:name="android.permission.INTERNET" />
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  <application ... >
    <meta-data ... />
    <activity ... />
  </application>
</manifest>



四、到 AdMob 申請帳號和廣告單元編號(YOUR_AD_UNIT_ID)

從申請完帳號的首頁開始,

1. 到「營利」的頁面


2. 「 透過新應用程式營利」


3. 設定應用程式


4. 設定廣告單元格式



5. 設定完廣告格式後,就可以看到廣告單元編號(YOUR_AD_UNIT_ID)囉!


** 未來也可以從「所有應用程式」 -> 「你的應用程式」看到廣告單元編號(YOUR_AD_UNIT_ID)。



五、加入廣告

加入廣告有兩種方法,從 Layout.xml 加,和從 Activity.java 加。

1. 從 Layout.xml 加

把廣告的 AdView (下面這段)加到想顯示的地方,ex: activity_main.xml。
<com.google.android.gms.ads.AdView xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:id="@+id/ad_view"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    ads:adSize="BANNER"
    ads:adUnitId="YOUR_AD_UNIT_ID" />
第六行的 YOUR_AD_UNIT_ID 要換成在AdMob上的廣告單元編號(參見第四大項)。

再到相對應的頁面 Java 檔(ex: MainActivity.java)的 onCreate 中加入:
mAdView = (AdView) findViewById(R.id.ad_view);
mAdView.loadAd(new AdRequest.Builder().build());

2. 從 Activity.java 加

在想顯示的頁面 Java 檔(ex: MainActivity.java)的 onCreate 中加入:
// 新建廣告的 AdView
adView = new AdView(this);
adView.setAdSize(AdSize.BANNER);
adView.setAdUnitId(YOUR_AD_UNIT_ID);

// 把上面的 AdView 加到想加的 View 底下
// 這邊請自行代換成想放廣告的地方的 Parent View
LinearLayout layout = (LinearLayout) findViewById(R.id.linearLayout);
layout.addView(adView);

// 在背景開始 load 廣告
adView.loadAd(new AdRequest.Builder().build());


** 無論使用哪一種方式,在顯示的頁面 Java 檔(ex: MainActivity.java)都要再加入:

@Override
public void onResume() {
    super.onResume();
    if (adView != null) {
        adView.resume();
    }
}

@Override
public void onPause() {
    if (adView != null) {
        adView.pause();
    }
    super.onPause();
}

@Override
public void onDestroy() {
    if (adView != null) {
        adView.destroy();
    }
    super.onDestroy();
}



六、Rebuild





沒有留言:

張貼留言