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 を初めてご使用になる場合は、Android Studio 向けの初めてのアプリの作成チュートリアルをご覧になってから、このガイドを始めることをおすすめします。

Firebase と Mobile Ads SDK を統合する

Firebase と AdMob が連携する仕組みや、既存の AdMob パブリッシャーに対するその影響ついて詳しくは、Firebase と AdMob の使用をご覧ください。

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

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

アプリレベルの 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 ステートメントは末尾に配置します。

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

  2. Google レポジトリのインストールを求めるメッセージが表示された場合は、インストールに同意し、自動的にダウンロードされるのを待ちます。Google レポジトリには、Gradle によって組み込まれるコードが含まれます。

  3. build.gradle ファイルを変更してすべて同期したら、正しくコンパイルできることを確認するために、プロジェクトを再ビルドします([Run] メニューの [Run app])。

外観に変化はありませんが、Firebase と Mobile Ads SDK を含めることは、アプリに広告を掲載する第一歩になります。

広告ユニット 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 コードを変更してアクティビティに要素を追加することもできますが、レイアウト ファイルを使用することで、外観と動作をより適切に分離することができます。

アプリで広告を表示するためには、メイン アクティビティのレイアウトを変更して AdView を含める必要があります。

  1. BannerExample/app/src/main/res/layout/activity_main.xml ファイルを開きます。

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:tools="http://schemas.android.com/tools"
            xmlns:ads="http://schemas.android.com/apk/res-auto"
            android:layout_height="match_parent"
            android:layout_width="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. 広告に使用する名前空間を追加します。

    http://schemas.android.com/apk/res-auto
    
  3. AdView 用の新しい要素を追加します。

  4. layout_widthlayout_heightwrap_content に設定します。

  5. AdView タグでは、adSizeBANNER に設定し、adUnitId@string/banner_ad_unit_id に設定します。

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

Google Mobile Ads SDK を初期化する

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

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.xml の RelativeLayout から android:paddingRight 属性と android:paddingLeft 属性を削除して、アプリを再コンパイルしてください。
ダウンロードしたコードに、onPause()onResume()onDestroy() というメソッドがあります。これらは何ですか?
AdView ライフサイクル メソッドです。これらのメソッドを使用すると、ユーザーが(広告をクリックして)アプリから別の画面に移動した場合、アプリに戻った場合、現在のアクティビティから移動した場合に、それに応じて WebView を一時停止、再開、破棄できます。
テスト広告を使用する必要はありますか?
はい。ご自分の実際の広告をクリックすることは、AdMob のポリシーに反します。開発中とテスト中は、テスト広告のみを使用してください。運用開始前に実際の広告を表示する必要がある場合は、広告をクリックしないようにしてください。実際の広告をクリックした場合、AdMob アカウントが停止されることがあります。詳細については、AdMob のポリシーを確認し、無効な操作をご覧ください。
テスト広告を取得するにはどうすればよいですか?
このガイドで使用している広告ユニットとサンプルは、テスト広告を返します。 また、AdRequest.Builder.addTestDevice() を使用してテスト広告をリクエストすることもできます。
AdMob 広告ユニット ID を取得するには、どうすればよいですか?
広告ユニットを作成するための手順をご覧ください。 AdMob 広告ユニット ID は ca-app-pub-XXXXXXXXXXXXXXXX/NNNNNNNNNN のような形式になります。

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