アプリに広告を実装する

Admob をアプリに実装しよう
1. Gradle を設定する
Gradle は、フリーのオープンソース ビルドシステムで、Android 開発者にとって便
利な機能(以下で説明する依存関係の管理機能など)が多数統合されています。
このステップでは、build.gradle ファイルを変更します。
作成したプロジェクトには、build.gradle ファイルが 2 つあります。1 つは、ルート
の BannerExample フォルダ内にあるプロジェクト レベルのファイルで、プロジェク
ト全体に影響する設定が含まれています。もう 1 つは、アプリレベルのファイルで、
プロジェクトの 1 つのアプリに対する設定が含まれています。複数のアプリを含むプ
ロジェクトの場合は、各アプリに対してアプリレベルの build.gradle ファイルが 1 つ
ずつある。
アプリ内で Google Play 開発者サービス SDK を参照できるよう、アプリを更新する
必要があります。アプリを更新するには、アプリレベルの build.gradle ファイルに含
まれる dependencies セクションに太字の行を追加する。
build.gradle
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.0'
// Google Play 管理者サービス SDK を含めるには、下記のように新しいステー
//トメントを 1 行追加します。こうすることで、バージョン番号が「7.×.×」で始
//まる、play-services アーティファクトの最新バージョンが、Gradle によって読
//み込まれる。
compile 'com.google.android.gms:play-services:7.+'
}
2. マニフェスト ファイルを変更
すべての Android アプリは、マニフェストと呼ばれるファイルを使用して、Android
システムにアプリ自体の情報を提供している。
全ての android アプリは、そのルートディレクトリに(正確にはその名前を持つ)の
AndroidManifest.xml ファイルを持っている必要がある。 マニフェストファイルは、
Android システムにアプリに関する重要な情報を提供し、情報には、アプリのコードの
いずれかを実行する前に、システムが持っている必要がある。
Android Manifest ファイルを変更して、Mobile Ads SDK に必要な権限、バージョン
番号、アクティビティの定義を含める。AndroidManifest.xml を開いて編集する。
そして、太字の行を追加する。
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.owner.myapplication" >
//Google モバイルが広告を実行するために必要な権限が含まれている。
//2 つの<uses-permission> タグで、INTERNET および
//ACCESS_NETWORK_STATE を追加する。INTERNET のタグは必須であり
//インターネットにアクセスして広告リクエストを行うために使用する。
//ACCESS_NETWORK_STATE のタグはオプションで、広告リクエストを実行す
//る前にインターネット接続が利用可能かどうか確認するために使用する。
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission
android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
//この meta-data タグは Google Play サービスを使用する必要がある。
//Google Play 開発者サービスのバージョンを参照する <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>
//ここは AdActivity.の設定変更が含まれている。
//configChanges および theme 属性を持つ <activity> 要素を追加します。この
//アクティビティは、バナーがクリックされたり、インタースティシャルが表示さ
//れたりした場合に使用される。また、他のアクティビティと同様に、表示され
//る前にマニフェストで宣言する必要がある。
<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>
3. アプリに広告ユニット ID を設定する
広告ユニット ID は、アプリ内で広告を表示する場所に対して指定する一意の ID
です。たとえば、アプリに 2 つのアクティビティがあり、それぞれにバナーを表
示する場合、独自の ID を持つ 2 つの広告ユニットを用意することになる。
新しいアプリで広告を表示するには、広告ユニット ID を含める必要があります。
strings.xml ファイルを開きます。
<string
name="banner_ad_unit_id">ca-app-pub-3940256099942544/6300978111</string>
新しい <string> タグを追加する。上記の広告ユニット ID はテスト用。この ID を
使用すると、サンプルバナー広告が取得され、正しく実装されていることを確認できる。
アプリの開発時およびテスト時には、必ずテスト広告を使用しよう。もし
実際の広告でテストすると、AdMob ポリシー違反になり、アカウント停止の原因とな
る場合がある。
4. activity_main に AdView を配置する
レイアウト ファイルには、アクティビティ、フラグメント、リスト項目などのビジュ
アル デザインに関する XML 定義が含まれる。このステップでは、メイン アクティ
ビティのレイアウト ファイルを変更して、下部に AdView が含まれるようにする。
まずは、メイン アクティビティのレイアウトを変更して AdView を含める必要がある。
エディタで activity_main.xml を開く。そして、太字の行を追加する。
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
//広告に使用する追加の名前空間(http://schemas.android.com/apk/res-auto)
。
xmlns:ads=http://schemas.android.com/apk/res-auto
android:layout_height="match_parent"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity">
//AdView 用の新しい要素。layout_width と layout_height の指定が必要になる。
両 方 と も wrap_content に 設 定 で き ま す 。 AdView タ グ で は 、 adSize を
BANNER に設定し、adUnitId を @string/banner_ad_unit_id に設定する。
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
ads:adSize="BANNER"
ads:adUnitId="@string/banner_ad_unit_id">
</com.google.android.gms.ads.AdView>
</RelativeLayout>
5. MainActivity.java に広告を読み込む
最後に必要となる手順は、アプリの MainActivity.java に、広告を AdView に読み込む
Java コードを追加することである。
まずは MainActivity.java ファイルを開きます。ファイルを開いたら、MainActivity ク
ラス内の onCreate メソッドを探す。そして、太字の行を追加する。
MainActivity.java
package com.example.owner.myapplication;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
// AdRequest クラスと AdView クラスをインポート
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//レイアウト内から AdView を検索するコードを追加し、AdRequest を作成して
から、これを使用して AdView に広告を読み込む。
AdView mAdView = (AdView) findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
}
実行結果