Table 1. Individual APIs and corresponding build.gradle descriptions.
橫幅廣告 II
智慧型橫幅廣告
先下載安裝 Google Repository
開一個新專案,其中 Activity 類型選擇 Blank Activity with Fragment
左上角,由 Android 變更為 Project,並展開專案的結構樹,會看到 build.gradle,
雙擊 build.gradle 開啟,看到檔案最末的 dependencies,原本如下 ----
dependencies
{
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.0'
}
更新為 ----
dependencies
{
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.0'
compile 'com.google.android.gms:play-services-ads:8.1.0'
}
存檔,並按一下 工具列 的 Sync Project with Gradle Files
編輯 AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.google.android.gms.example.bannerexample" >
<!-- 取得可顯示 AdMob 廣告的權限 -->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application
...
... >
<!-- 這段 meta-data 為必需 -->
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- AdMob 的 AdActivity -->
<activity
android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:theme="@android:style/Theme.Translucent" />
</application>
</manifest>
開啟 app > src > main > res > values > strings.xml,加入要播的廣告 AdUnitID,這個 ID 是 Google 提供給我們測試用的,Google 強烈建議,在 app 開發時期,以這個 ID 進行您程式的測試,驗證您的 app 是否可正常顯示廣告,等到 app 要上架前再換上您的實際 ID,以免觸犯 Google AdMob 的規定。
... ... <string name="banner_ad_unit_id">ca-app-pub-3940256099942544/6300978111</string> ... ...
新增一個 fragment layout
修改內容為如下 ----
<?xml version="1.0" encoding="utf-8"?>
<!-- 插入 xmlns:ads= ... -->
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
ads:adSize="SMART_BANNER"
ads:adUnitId="@string/banner_ad_unit_id">
</com.google.android.gms.ads.AdView>
</RelativeLayout>
adSize 除了 BANNER 外,另有其他值可填入(參考 橫幅廣告 II)
| 大小 (寬 x 高) | 說明 | 適用裝置 | AdSize 常值 |
|---|---|---|---|
| 320x50 | 標準橫幅廣告 | 手機和平板電腦 | BANNER |
| 320x100 | 大横幅 | 手機和平板電腦 | LARGE_BANNER |
| 300x250 | IAB 中矩形廣告 | 手機和平板電腦 | MEDIUM_RECTANGLE |
| 468x60 | IAB 完整橫幅廣告 | 平板電腦 | FULL_BANNER |
| 728x90 | IAB 超級橫幅廣告 | 平板電腦 | LEADERBOARD |
| 查看表格 | 智慧型橫幅廣告 | 手機和平板電腦 | SMART_BANNER |
開啟 MainActivity,增加兩個 import,並在 Placeholder 後面新建一個 AdFragment
...
...
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
...
...
public static class PlaceholderFragment extends Fragment
{
...
...
}
// 播 AdMob 的 fragment
public static class AdFragment extends Fragment
{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
return inflater.inflate(R.layout.fragment_ad, container, false);
}
@Override
public void onActivityCreated(Bundle bundle)
{
super.onActivityCreated(bundle);
AdView mAdView = (AdView) getView().findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
}
}
修改 activity_main.xml,將原本的 FragmentLayout 變更為 RelativeLayout,並加入 PlaceholderFragment 和 AdFragment,如下 ----
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
tools:ignore="MergeRootFrame" >
<fragment
android:name="com.google.android.gms.example.bannerexample.MainActivity$PlaceholderFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/adFragment" />
<fragment
android:id="@+id/adFragment"
android:name="com.google.android.gms.example.bannerexample.MainActivity$AdFragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true" />
</RelativeLayout>
修改 MainActivity.java 的 onCreate(),如下 ----
...
...
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
執行程式,就可以看到在畫面下方播放廣告了。
相關筆記 ----
【Android Studio】置入 AdMob 播廣告 - 插頁式廣告(InterstitialAd)篇
【Android】app 置入 Admob 廣告賺錢





