Eclipse 入門

このガイドでは、Eclipse を使用して Google Mobile Ads SDK を新しいアプリに組み込み、アプリに簡単なバナー広告を表示する手順を説明します。 所要時間は約 30 分で、アプリ内で SDK がどのように機能するかを理解できるようになります。

このガイドで使用している広告ユニットとサンプルは、テスト広告を返します。テスト広告は、アカウントが停止中であったり、無効であったりしても、常時利用できます。 詳細については、AdMob のポリシー無効な操作をご覧ください。

ご自分の実際の広告をクリックすることは、AdMob のポリシーに反します。開発中とテスト中は、テスト広告のみを使用してください。運用開始前に実際の広告を表示する必要がある場合は、広告をクリックしないようにしてください。実際の広告をクリックすると、AdMob アカウントが停止されることがあります。

このガイドは、Eclipse について十分に理解し、これまでに Eclipse を使用して、Android アプリを作成したことがあるデベロッパーを対象にしています。初めて Android のコーディングを行う場合は、Android Studio を使用することをおすすめします。Android Studio は、Android 開発用の公式 IDE です。

開発の経験はデベロッパーごとに異なります。そのため、補足を必要とするデベロッパーに向けて、このような参考情報を適宜記載しています。内容を理解されている場合は、スキップしていただいても問題ありません。

事前準備

新しいプロジェクトを作成する

この手順では、この例で使用する新しいプロジェクトを Eclipse で作成します。

  1. Eclipse で空のワークスペースを開き、メニューから [ファイル] > [新規] > [プロジェクト] を選択します。

  2. [Android] フォルダを選択してから、[Android アプリケーション・プロジェクト] を選択し、[次へ] をクリックしてウィザードを選択します。

  3. プロジェクトを作成します。[アプリケーション名] フィールドと [プロジェクト名] フィールドに「BannerExample」と入力します。[パッケージ名] フィールドに、通常使用するパッケージ名を入力します。バージョン 9(Google Mobile Ads SDK でサポートされている最小バージョン)を選択し、[次へ] をクリックします。

  4. 新しいプロジェクトを設定します。ここでは説明を簡単にするため、[カスタム・ランチャー・アイコンを作成する] チェックボックスをオフにして、[次へ] をクリックします。他の項目はすべてそのままにします。

  5. アクティビティを作成します。[アクティビティーの作成] チェックボックスをオンにして、リスト内で [Blank Activity] が選択されていない場合は選択します。

  6. アクティビティに名前を付けます。この画面でも、デフォルトのオプションをそのまま使用します。 [完了] をクリックすると、Eclipse によって新しいプロジェクトのソースコードが作成されます。

新しいプロジェクトをコンパイルする

Eclipse の処理が完了したら、新しいアプリをコンパイルして実行します。 灰色の背景画面に「Hello world!」というメッセージが表示されます。 以降のステップでさらにコンテンツを追加していきます。

Google Play 開発者サービス SDK をダウンロードする

Google Play 開発者サービス SDK には、アプリで広告をリクエストして表示するために使用できるクラスやリソースが含まれています。 IDE とツールを更新して、最新バージョンの SDK Manager がインストールされていることを確認します。確認するには、[ウィンドウ] > [Android SDK マネージャー] を選択します。

SDK Manager

Android SDK Manager ウィンドウで、[Extras] フォルダ内の [Google Play services] を選択してから、[Install Packages] をクリックし、ライセンスに同意してダウンロードします。 [Install packages] が無効になっている場合は、最新バージョンがすでにインストールされています。この場合、SDK Manager で行う作業はありません。

Google Play 開発者サービス ライブラリを含める

これで、Google Play 開発者サービス SDK がダウンロードされ、プロジェクトで参照できるようになりました。メニューから [ファイル] > [新規] > [プロジェクト] を選択します。

既存のコードからプロジェクトを作成する

[Android] フォルダを選択してから、[既存コードからの Android プロジェクト] を選択します。

プロジェクトのインポート

ここでは、Eclipse で使用するライブラリの場所を指定します。[参照] をクリックして、/extras/google/google_play_services/libproject/google-play-services_lib/ を探し、[OK] をクリックします。 参照ダイアログが閉じ、[プロジェクト] リストに 1 つだけ項目が表示されます。 この項目の横にあるチェックボックスがオンになっていることを確認してから、[完了] をクリックして、インポートしたコードで新しいプロジェクトを作成します。

インポートしたプロジェクトを参照する

作成した新しいプロジェクトは、アプリコード内で参照できます。パッケージ エクスプローラーで [BannerExample] を右クリックして、[プロパティ] を選択します。

BannerExample のプロパティ

左側のプロパティのリストから [Android] を選択し、[追加] をクリックして、[OK] をクリックします。

プロジェクトの選択

リストビューに google-play-services_lib が表示されます。 これを選択して、[OK] をクリックし、選択ダイアログとプロパティ ダイアログを順に閉じます。これでアプリには、Google Play 開発者サービス ライブラリ プロジェクトへの参照が含まれ、Google Play 開発者サービス SDK に含まれるクラスとリソースを使用できるようになりました。

すべての項目が正しく設定されていることを確認するため、アプリを再度ビルドして実行します。 見た目は変わりませんが、Google Play 開発者サービスを含めることは、アプリに広告を掲載する第一歩になります。

マニフェスト ファイルを変更する

この時点で、作業中のアプリには Google Play 開発者サービスが含まれています。次に、アプリ マニフェスト ファイルを変更して、Mobile Ads SDK に必要な権限、バージョン番号、アクティビティの定義を含めます。 BannerExample プロジェクトの Android マニフェスト AndroidManifest.xml を開いて編集します。 このファイルは BannerExample/src/ フォルダにあります (プロジェクトを設定するときに別のパッケージ名のパスを選択した場合、正確なパスは異なることがあります)。

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" >

    <uses-sdk
        android:minSdkVersion="9"
        android:targetSdkVersion="21" />

    <!-- Include required permissions for Google Mobile Ads to run-->
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <!--This meta-data tag is required to use Google Play services.-->
        <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>
        <!--Include the AdActivity configChanges and theme. -->
        <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 つの変更を加える必要があります。

  • INTERNETACCESS_NETWORK_STATE の 2 つの <uses-permission> タグを追加します。 INTERNET のタグは必須であり、インターネットにアクセスして広告リクエストを行うために使用します。 ACCESS_NETWORK_STATE はオプションで、広告リクエストを実行する前にインターネット接続が利用可能かどうか確認するために使用します。

  • Google Play 開発者サービスのバージョンを参照する <meta-data> タグを追加します。これにより、アプリでの使用を意図しているサービスのバージョンを指定します。

  • configChanges 属性と theme 属性を持つ <activity> 要素を追加します。 このアクティビティは、バナー広告がクリックされたり、インタースティシャル広告が表示されたりした場合に使用されます。また、他のアクティビティと同様に、表示される前にマニフェストで宣言する必要があります。

次に、プロジェクトを再ビルドして、すべての内容が正しく設定されていることを確認します。 ここでも、これまでと同じ「Hello world!」メッセージが表示されます。 ただし、アプリ マニフェスト ファイルが正しく設定されている場合、アプリはモバイル広告を使用できるようになっています。

アプリに広告ユニット ID を設定する

広告ユニット ID は、アプリ内で広告を表示する場所に対して指定する一意の ID です。 たとえば、アプリに 2 つのアクティビティがあり、それぞれにバナーを表示する場合、独自の ID を持つ 2 つの広告ユニットを用意することになります。 AdMob 広告ユニット ID は ca-app-pub-XXXXXXXXXXXXXXXX/NNNNNNNNNN という形式になります。

そのため、新しいアプリで広告を表示するには、広告ユニット ID を含める必要があります。 BannerExample/res/values/strings.xml にあるアプリの文字列リソース ファイルを開きます。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">My Application</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>
    <string name="banner_ad_unit_id">ca-app-pub-3940256099942544/6300978111</string>
</resources>

上記のように、新しい <string> タグを追加します。上記の広告ユニット ID はテスト用です。 この ID を使用すると、サンプルバナー広告が取得され、正しく実装されていることを確認できます。

ご自分の実際の広告をクリックすることは、AdMob のポリシーに反します。開発中とテスト中は、テスト広告のみを使用してください。運用開始前に実際の広告を表示する必要がある場合は、広告をクリックしないようにしてください。実際の広告をクリックすると、AdMob アカウントが停止されることがあります。

独自の広告ユニット ID でテスト広告を取得する方法については、addTestDevice() メソッドのドキュメントをご覧ください。

メイン アクティビティ レイアウトに AdView を配置する

アプリで広告を表示するために必要なステップはあと 3 つです。

  1. エディタで BannerExample/res/layout/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"
        xmlns:ads="http://schemas.android.com/apk/res-auto"
        android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:paddingBottom="@dimen/activity_vertical_margin"
        tools:context=".MainActivity">

    &lt;TextView android:text="@string/hello_world" android:layout_width="wrap_content"
        android:layout_height="wrap_content" /&gt;</span>
    
    <span class="newcode">&lt;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"&gt;
    &lt;/com.google.android.gms.ads.AdView&gt;</span>
    

    </RelativeLayout>

  2. 広告に使用する名前空間 http://schemas.android.com/apk/res-auto を追加します。

  3. AdView 用の新しい要素を追加します。 layout_widthlayout_height を指定するように求められます。 両方とも wrap_content に設定できます。 AdView タグでは、adSizeBANNER に設定し、adUnitId@string/banner_ad_unit_id に設定します。

MainActivity クラスに広告を読み込む

最後に必要な変更は、アプリのメイン アクティビティ クラスに、広告を AdView に読み込む Java コードを追加することです。

MainActivity.java ファイルを開きます。 このファイルは BannerExample/src/ フォルダにあります (プロジェクトを設定するときに別のパッケージ名のパスを選択した場合、正確なパスは異なることがあります)。 ファイルをエディタで開いたら、MainActivity クラス内の onCreate() メソッドを探します。

MainActivity.java(抜粋)

package ...

import ...
import ...
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;

public class MainActivity extends ActionBarActivity {

    ...

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        AdView mAdView = (AdView) findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder().build();
        mAdView.loadAd(adRequest);
    }

    ...

}

アプリのメイン アクティビティで AdView を完全に機能させるには、次の変更を加えます。

  • AdRequest クラスと AdView クラスをインポートします。

  • レイアウト内から AdView を検索するコードを追加し、AdRequest を作成してから、これを使用して AdView に広告を読み込みます。

変更を終えたら手順は終了です。

読み込まれた最新の広告を表示する

Google Mobile Ads SDK を使用して、アプリで広告を表示する準備ができました。 アプリを再度実行すると、端末画面の下部にテストバナーが表示されます。

お疲れさまでした。 バナー広告は Eclipse を使用して正常にアプリに組み込まれました。

よくある質問

アプリを実行しても広告が表示されません。ログには「広告を表示するための十分なスペースがありません」と記録されています。なぜでしょうか?
画面の幅が 320 dp である端末でアプリをテストしている可能性が考えられます。アクティビティのデフォルトのパディング(16 dp)では、320x50 のテストバナーを表示するための十分なスペースがありません。activity_main.xmlRelativeLayout から android:paddingRight 属性と android:paddingLeft 属性を削除して、アプリを再コンパイルしてください。
テスト広告を使用する必要はありますか?
はい。ご自分の実際の広告をクリックすることは、AdMob のポリシーに反します。開発中とテスト中は、テスト広告のみを使用してください。運用開始前に実際の広告を表示する必要がある場合は、広告をクリックしないようにしてください。実際の広告をクリックすると、AdMob アカウントが停止されることがあります。 詳細については、AdMob のポリシー無効な操作をご覧ください。
テスト広告を取得するにはどうすればよいですか?
このガイドで使用している広告ユニットとサンプルは、テスト広告を返します。 また、AdRequest.Builder.addTestDevice() を使用してテスト広告をリクエストすることもできます。
AdMob 広告ユニット ID を取得するにはどうすればよいですか?
プロセス全体については、広告ユニットを作成するをご覧ください。AdMob 広告ユニット ID は ca-app-pub-XXXXXXXXXXXXXXXX/NNNNNNNNNN のような形式になります。

フィードバックを送信...