Android Studio スタートガイド

このガイドでは、Google Mobile Ads SDK を新しいアプリに組み込み、アプリに AdMob バナー広告を表示する手順を説明します。所要時間は約 30 分で、アプリ内で SDK がどのように機能するかを理解できるようになります。Google モバイル広告を初めてご利用になる場合は、より高度な例をご覧になる前に、このガイドで基本事項をご確認ください。

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

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

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

事前準備

  • Android Studio 1.0 以降を実行すること
  • Android レベル 9 以降向けに開発すること

このガイドを完了するには、開発用パソコンに Android Studio がインストールされている必要があります。インストールがお済みでない場合は、Android Studio サイトを参照して、開発を始めるために必要なファイルのダウンロード手順をご確認ください。

Android Studio をお使いになったことがない場合は、Android Studio 向けのはじめてのアプリの作成チュートリアルをご覧になってから、このガイドを始めることをおすすめします。

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

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

  1. Android Studio をまだ起動していない場合は、ここで起動する

  2. [New Project] ウィザードを開始する

    ようこそ画面が表示されたら

    [Start a new Android Studio project] を選択します。[File] > [New Project] を選択することもできます。[New Project] ウィザードが表示されます。

  3. プロジェクトに名前を付ける

    アプリ名として「BannerExample」と入力し、アプリで使用する会社ドメインを入力します。Android Studio では、プロジェクトの場所が自動的に決定されますが、必要に応じて変更できます。

  4. 必須の SDK バージョンを設定する

    フォーム ファクターとして [Phone and Tablet] を選択し、プラットフォーム SDK の最小バージョンとして「9」を選択します。このバージョンは、Google Mobile Ads SDK でサポートされている最小バージョンです。

  5. メイン アクティビティを追加する

    この例は単純さ重視のため、この画面では [Empty Activity] を選択します。

  6. アクティビティに名前を付ける

    この画面では、アプリのアクティビティと関連リソースの名前を選択することができます。この例ではデフォルトの名前を使用するため、そのまま [Finish] をクリックします。

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

    [Finish] をクリックすると、1 つのアクティビティが設定された作業プロジェクトが作成されます。このプロジェクトをコンパイルして実行します([Run] メニューから [Run 'app'] を選択します)。灰色の背景画面に「Hello world!」というメッセージだけが表示されます。以降のステップでさらにコンテンツを追加していきます。

初めて Android アプリを開発する場合は、USB デバッグ仮想端末の使用についての各チュートリアルをご覧ください。新しいアプリを実行して外観を確認するには、これら 2 つのいずれかを使用する必要があります。

Firebase を Mobile Ads SDK と統合する

Firebase と AdMob が連携する仕組みや、その影響ついて詳しくは、Firebase と AdMob の使用に関するページをご覧ください。

開始するには、Android プロジェクトに Firebase を追加するガイドをご覧ください。

AdMob アカウントを既に持っている場合は、AdMob コンソールからアプリを Firebase に登録してリンクできます。

今すぐには Firebase に登録しない場合は、google-services.json のサンプル ファイルをダウンロードすることもできます。このファイルは、この演習以外には使用しないでください。特に、実際のアプリには絶対に使用しないでください。

アプリレベルの build.gradle(抜粋)の検証

...
    dependencies {
            compile fileTree(dir: 'libs', include: ['*.jar'])
            compile 'com.android.support:appcompat-v7:xx.x.x'
            compile 'com.google.firebase:firebase-ads:10.0.1'
        }
...

apply plugin: 'com.google.gms.google-services'

上記の太字の 2 行がアプリレベルの build.gradle にない場合は、追加します。compile ステートメントは dependencies セクション内に配置し、apply plugin ステートメントは末尾に配置します。

Android Studio ウィンドウの上部に、Gradle で同期を実行する必要があることを示す警告メッセージが表示される場合があります。その場合は、[Sync Now] をクリックして同期します。Gradle によってプロジェクトのライブラリが更新され、追加した依存関係が含められます。

今回初めて Google レポジトリを使用する場合は、レポジトリをインストールするよう求めるメッセージが表示されることもあります。この場合はインストールすることに同意します。Android Studio によって自動的に Google レポジトリがダウンロードされます。

build.gradle ファイルを変更してすべて同期したら、正しくコンパイルできることを確認するために、プロジェクトを再ビルドします([Run] メニューの [Run app])。外観に変化はありませんが、Firebase と Mobile Ads SDK を含めることは、アプリに広告を掲載する第一歩になります。

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

広告ユニット ID は、アプリ内で広告を表示する場所に対して指定する一意の ID です。 アプリで実行するアクティビティごとに、広告ユニットを作成します。 たとえば、アプリに 2 つのアクティビティがあり、それぞれにバナーを表示する場合、個別の ID を持つ 2 つの広告ユニットを用意することになります。AdMob 広告ユニット ID は次のような形式になります。

ca-app-pub-XXXXXXXXXXXXXXXX/NNNNNNNNNN

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

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 を使用してテスト広告を取得する手順については、テスト広告をご覧ください。

必須ではありませんが、広告ユニット ID 値をリソース ファイルに保存することをおすすめします。 将来的にアプリの機能を追加して、広告配信の内容を変更する必要がある場合、ID 値の変更が必要になる場合があります。ID 値を常にリソース ファイルに保存することで、コード全体から ID 値を検索する必要がなくなります。

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

レイアウト ファイルには、アクティビティ、フラグメント、リスト項目などのビジュアル デザインに関する XML 定義が含まれます。メイン アクティビティのレイアウト ファイルを変更して、下部に AdView が含まれるようにします。プログラムで Java コードを変更してアクティビティに要素を追加することもできますが、レイアウト ファイルを使用することで、外観と動作をより適切に分離することができます。

アプリで広告を表示するために必要なステップはあと 2 つだけです。まず、メイン アクティビティのレイアウトを変更して AdView を含める必要があります。エディタで BannerExample/app/src/main/res/layout/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"
    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">

    <TextView android:text="@string/hello_world" android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

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

次の 2 つの内容を XML に追加します。

  • 広告に使用する追加の名前空間:

    http://schemas.android.com/apk/res-auto
    
  • AdView 用の新しい要素

layout_widthlayout_height の指定が必要になります。両方とも wrap_content に設定できます。AdView タグでは、adSizeBANNER に設定し、adUnitId@string/banner_ad_unit_id に設定します。

AdView タグの最後のパラメータは、adUnitId という名前です。これは、広告のリクエスト時に AdView によって使用される広告ユニット ID です。今回は、前のステップで追加した文字列リソースへの参照を設定しました。AdView ではこの値が使用されます。

Google Mobile Ads SDK を初期化する

アプリの起動時に、MainActivity クラスの onCreate メソッドで MobileAds.initialize を呼び出して Google Mobile Ads SDK を初期化します。

MainActivity.java ファイルを開きます。このファイルは BannerExample/app/src/main/java/ フォルダにありますが、サブディレクトリの正確なパスは、上記のプロジェクトの作成に使用したドメインによって異なります。ファイルをエディタで開いたら、MainActivity クラス内の onCreate メソッドを探します。

MainActivity.java(抜粋)

package ...

import ...
import ...

public class MainActivity extends ActionBarActivity {

    ...

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

        MobileAds.initialize(getApplicationContext(), "ca-app-pub-3940256099942544~3347511713");
    }

    ...

}

アプリの起動時に Google Mobile Ads SDK を初期化すると、SDK がアプリレベルの設定をフェッチし、設定作業にかかる時間を最大限に短縮できるため、最初の広告リクエストの遅延を減らすことができます。初期化には Application コンテキストか Activity コンテキストと、アプリ ID が必要です。アプリ ID とは、モバイルアプリを AdMob コンソールで登録するときに付与される固有の ID です。

アプリ ID を見つけるには、AdMob アカウント ページの右上にある設定プルダウンの [アプリ管理] オプションをクリックします。アプリ ID は ca-app-pub-XXXXXXXXXXXXXXXX~NNNNNNNNNN という形式です。

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

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

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);

        MobileAds.initialize(getApplicationContext(), "ca-app-pub-3940256099942544~3347511713");

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

    ...

}

次の 2 つの変更を加えます。

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

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

テストでは上記の AdRequest 行を使用しないでください。テスト端末とテスト端末 ID の使用の詳細については、ターゲット設定ページをご覧ください。

変更を終えたら手順は終了です。これで、アプリのメイン アクティビティで AdView が完全に機能するようになりました。

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

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

これで、バナー広告は正常にアプリに組み込まれました。

GitHub 上で設定済みサンプルを確認する

BannerExample をダウンロードする

次のステップ

AdMob でこれ以上のことを行うには、AdMob アカウントに登録してください。

フルスクリーンのインタースティシャル広告については、インタースティシャル広告ガイドをご覧ください。

バナー実装を細かく調整するには、以下のガイドをご覧ください。

よくある質問

アプリを実行しても広告が表示されません。ログには「Not enough space to show ad」(広告を表示するための十分なスペースがありません)と記録されています。これはなぜですか?
画面の幅が 320 dp である端末でアプリをテストしている可能性が考えられます。アクティビティのデフォルトのパディング(16 dp)では、320x50 のテストバナーを表示するための十分なスペースがありません。activity_main.xmlRelativeLayout から android:paddingRight 属性と android:paddingLeft 属性を削除して、アプリを再コンパイルしてください。
ダウンロードしたコードに、onPause()onResume()onDestroy() というメソッドがあります。これらは何ですか?
AdView ライフサイクル メソッドです。これらのメソッドを使用すると、ユーザーが(広告をクリックして)アプリから別の画面に移動した場合、アプリに戻った場合、現在のアクティビティから移動した場合に、それに応じて WebView を一時停止、再開、破棄できます。
テスト広告を使用する必要はありますか?
はい。ご自分の実際の広告をクリックすることは、AdMob のポリシーに反します。開発およびテスト中は、テスト広告のみを使用してください。運用前に実際の広告を表示する必要がある場合は、広告をクリックしないようにしてください。実際の広告をクリックした場合、AdMob アカウントが停止されることがあります。詳細については、AdMob のポリシーを確認し、無効な操作をご覧ください。
テスト広告を取得するにはどうすればよいですか?
このガイドで使用している広告ユニットとサンプルは、テスト広告を返します。また、AdRequest.Builder.addTestDevice を使用して、テスト広告をリクエストすることもできます。
AdMob 広告ユニット ID を取得するにはどうすればよいですか?
AdMob 広告ユニット ID を作成する手順については、こちらで確認できます。AdMob 広告ユニット ID は ca-app-pub-XXXXXXXXXXXXXXXX/NNNNNNNNNN のような形式になります。

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