一番かんたんなJava入門

これからJavaを始めようという人の為の超入門サイトです。丁寧、簡単にこだわった解説なので初心者にぴったりです

Home » 忘備録 » AndroidアプリにAdMobを実装する方法

AndroidアプリにAdMobを実装する方法

time 2014/04/03

 この記事の情報は古いです。最新の情報はこちら→Androidアプリ用広告AdMobの実装方法[2016年8月版]

sponsored link

AdMobの実装方法がややこしいぞ

 AdMobってAdSenseとの絡みもあってか、ここ数年ころころ変わってますよね。
 正直、何がどうなってるのかわけ分りませんが、先日(2014年4月)、やっとの思いで新しいアプリにAdMobを実装することができたので、防備録として記しておきます。

 Google Mobile Ads SDK — Google Developersに、一通りやり方が書いてあります。
 けど、これ読んでパッと出来る人居るのか?!っていうぐらい難解です。え?そんなことない??まあいい、自分用の防備録じゃい。

AdMobを実装する為にやること

 まず全体の流れを確認。

  1. AdMobのアカウントを作る
  2. Google Play Servicesを使えるようにする
  3. AndroidManifest.xmlをいじる
  4. レイアウトxmlに広告表示枠を作っておく
  5. AdMobにアプリを登録する
  6. Activityに広告を表示させるコードを書く

1.AdMobのアカウントを作る

 これはもちろん、アカウントを持っていない人は作りましょうって話です。持ってる人は次行きましょう。
 持ってない人は、AdMob を活用してモバイルで宣伝 – アプリのためのモバイル広告 – グーグル広告で、アカウントを作って下さい。

2.Google Play Servicesを使えるようにする

 前まではjarファイルを読み込んでとかってやってましたが、最新のやり方ではjarファイルは要りません。その代わり、Google Play Servicesライブラリをworkspace内にインポートして参照する必要があります。

Google Play Servicesをインストール

 Google Play ServicesをAndroid SDKマネージャーを使ってインストールします。

 eclipseのウィンドウAndroid SDKマネージャーをクリック。admob0

 下の方のExtrasの中にGoogle Play Servicesというのがあると思うのでそれにチェックを入れて右下のインストールボタンを押してインストールします(もちろん既にインストールしてある人は次行きましょう)。admob01

Google Play Servicesプロジェクトをインポート

 今度はworkspace内にGoogle Play Servicesプロジェクトをインポートします。

 eclipseのファイルインポートをクリックします。admob1

 Androidフォルダの中のExisting Android Code Into Workspaceを選択した状態で次へをクリック。admob2

 参照をクリックして、先ほどインストールしたGoogle Play Servicesライブラリを指定するのですが、admob3
Android SDKをどこにインストールしているか覚えてますか??Android SDKのディレクトリから以下のディレクトリを辿っていきます。
\android-sdk\extras\google\google_play_services\libproject
最終的に、libprojectというディレクトリを選択した状態でOKをクリック。admob5

 google-play-services_libというプロジェクトを選択できるはずですので、それにチェックを入れて完了をクリック。admob4

 プロジェクトをインポートできたら、eclipseのパッケージ・エクスプローラーの中に、google-play-services_libというプロジェクトが表示されます。admob21

Google Play Servicesを参照する

 今度は、広告を表示しようとしているアプリのプロジェクトから、google-play-services_libを参照させます。

 プロジェクトを右クリックしてプロパティをクリック。admob22

 Androidをクリックして、追加ボタンをクリック。admob23

 プロジェクトの選択という欄にgoogle-play-services_libがあると思うので、それを選択して右下のOKをクリック。admob24

 ライブラリーにgoogle-play-services_libが追加されているのを確認して、OKをクリック。admob25

 これで、アプリからgoogle-play-services_libを使える状態になりました。

3.AndroidManifest.xmlをいじる

meta-data タグを追加する

 AndroidManifest.xmlの<application>と</application>の中に、以下のようにmeta-dataタグを追加します。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.company"
          android:versionCode="1" android:versionName="1.0">
  <application android:icon="@drawable/icon" android:label="@string/app_name"
               android:debuggable="true">
    <meta-data android:name="com.google.android.gms.version"
               android:value="@integer/google_play_services_version"/>
    <activity android:label="@string/app_name" android:name="BannerExample">
      <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
      </intent-filter>
    </activity>
  </application>
</manifest>

com.google.android.gms.ads.AdActivity を追加する

 AndroidManifest.xml内で、com.google.android.gms.ads.AdActivityを宣言します。
 AndroidManifest.xmlには、アプリで使うActivity(画面)の数だけ<activity>~</activity>が書いてある(宣言している)はずですので、その一番下にでも以下のように追加しておけばいいです。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.company"
          android:versionCode="1" android:versionName="1.0">
  <application android:icon="@drawable/icon" android:label="@string/app_name"
               android:debuggable="true">
    <meta-data android:name="com.google.android.gms.version"
               android:value="@integer/google_play_services_version"/>
    <activity android:label="@string/app_name" android:name="BannerExample">
      <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
      </intent-filter>
    </activity>
    <activity android:name="com.google.android.gms.ads.AdActivity"
              android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
  </application>
</manifest>

パーミッションを追加する

 広告を取得するために必要なパーミッションをAndroidManifest.xmlで宣言しておきます。

 宣言する必要があるのは、以下の2つです。
●android.permission.INTERNET
●android.permission.ACCESS_NETWORK_STATE

 以下のように、追記すればOKです。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.company"
          android:versionCode="1" android:versionName="1.0">
  <application android:icon="@drawable/icon" android:label="@string/app_name"
               android:debuggable="true">
    <meta-data android:name="com.google.android.gms.version"
               android:value="@integer/google_play_services_version"/>
    <activity android:label="@string/app_name" android:name="BannerExample">
      <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
      </intent-filter>
    </activity>
    <activity android:name="com.google.android.gms.ads.AdActivity"
              android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
  </application>
  <uses-permission android:name="android.permission.INTERNET"/>
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
</manifest>

4.レイアウトxmlに広告表示枠を作っておく

 レイアウトxmlで、広告を表示する為の空っぽのスペースを確保しておきます。
 idはlayout_adにしています。

<LinearLayout
        android:id="@+id/layout_ad"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_alignParentBottom="true"
        android:background="#999"
        android:orientation="vertical" >

</LinearLayout>

 xmlファイル内でAdViewを宣言して追加する事もできますが、ここではjavaファイル内でAdViewを作成するようにしています。xmlファイル内で書いておくのはただの空っぽのスペースです。
もし、xmlファイルでAdViewを書いてしまうやり方でやりたい人は、バナー 1 – Google Mobile Ads SDK — Google Developersを参考にしてください。

5.AdMobにアプリを登録する

 アプリ内に広告を実際に表示するには、アプリをAdMobで登録して広告ユニットIDというのを取得する必要があります。

 +新しいアプリを収益化をクリックします。admob10

admob12アプリを手動で追加をクリック
②アプリ名を記入
③プラットフォームを選択(ここではAndroidを選択)
アプリを追加をクリック。

admob13バナーをクリック
広告ユニット名を適当に書く
保存をクリック。

 すると出ました。広告ユニットIDです。admob14 これを広告を呼び出す際に使いますのでコピペするなりしてキープしておいて下さい。

6.Activity.javaに広告を表示させるコードを書く

 ここまで出来たら、後はそれぞれ広告を表示したいActivityのjavaファイルに広告を読み込むコードを書くだけです。

package sample;

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

public class MainActivity extends Activity {

   LinearLayout layout_ad;//広告表示用スペース
   AdView adView;

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

      adView = new AdView(this);
      adView.setAdUnitId("広告ユニットID"); // 注1
      adView.setAdSize(AdSize.BANNER);
		
      layout_ad = (LinearLayout) findViewById(R.id.layout_ad);
      layout_ad.addView(adView);
		
      AdRequest adRequest = new AdRequest.Builder().build();
      adView.loadAd(adRequest);
   }

   @Override
   public void onPause() {
      adView.pause();
      super.onPause();
   }

   @Override
   public void onResume() {
      super.onResume();
      adView.resume();
   }

   @Override
   public void onDestroy() {
      adView.destroy();
      super.onDestroy();
   }
}

注1)広告ユニットIDは、””で囲って文字列として引数に入れればOKです。

 以上です。
 分かりにくいところないかな?

今だけ→転職できなければ全額返金の「エンジニア転職保証コース」
絶対エンジニアになる!→テックエキスパート

フリーランスエンジニアの収入例を見てみる→レバテックフリーランス

全くの初心者がWordPressでブログを始める方法

全くの初心者がWordPressでブログを始める方法

sponsored link

Androidアプリを作ろう

コメント

  • わかり易すぎて涙がでました!
    ありがとうございました。

    by tok €2014/05/10 15:28

  • Googleの説明だけじゃ訳分らんでしょ?www
    しかもころころ変わりますからね。
    僕はかなり苦労しながらなんとか出来たので、頑張ってこの記事を書きました。お役に立ててよかったです。

    ガンガン稼いじゃってくださーい。

    by Nobuo@管理人 €2014/05/11 00:21

  • AdMobに登録後、Google Mobile Ads SDKを途中までマニュアル(adsとGoogle Play service)を読んで導入していたのですが、両者の違いがだんだん分からなくなってこのサイトに来ました。

    分かりやすくて、参考にさせていただきました。
    ありがとうございます。

    by Good! €2014/05/30 20:37

  • そうでしょ。
    アレ、ややこしすぎますよね。お役に立てて何よりです。

    by nobuo@管理人 €2014/05/30 22:30

  • […] 参考 […]

    by AdMob広告を表示する | skelaboメモ €2014/07/11 17:21

  • […] このサイトを参考にした。 http://nobuo-create.net/admob/ […]

    by Google Play 開発者サービスのライブラリ読み込み | JANEのスペース €2014/07/20 23:56

  • ようやくわかりやすいサイトを発掘できた・・・!!!
    けど、Unfortunlyなんとかなんとかで起動できない…。

    (´;ω;`)

    by mimimi €2014/08/25 21:24

  • マジで最高です。
    こういう記事書いてくれる人は本当にありがたい。

    by Delnikov €2014/12/02 19:39

  • そういうコメント書いてくれるのも本当にありがたいです。^^
    ありがとうございます。

    by Nobuo@管理人 €2014/12/02 23:15

  • 一時的に広告を消したい時はpause等で大丈夫なのでしょうか?

    by rmr €2015/02/16 08:16

down

コメントする



一番かんたんなJava入門

Androidアプリの作り方

忘備録

私の作ったAndroidアプリ

おすすめプログラミングスクール

プログラミングスクール検索

受講スタイル

習得したいスキル

習得したい言語・フレームワーク

オプション

料金

 この本は全く何も分からない初心者の方にお勧めです。プログラミングをするには覚えなければならない事が無茶苦茶いっぱいありますが、この本は教えてくれる順番、その構成が素晴らしいです。RPGのゲームを作るというストーリーにのっとってちょっとずつ難しいことを教えてもらえます。
 無機質で膨大なデータが載っているような本は読む気にならないという方は、こういうストーリー仕立ての本でチャレンジしてみてはいかがでしょうか?(注:RPGを作る為の本ではありません。)

 ある程度、Javaを読み書きできるようになったら、オブジェクト指向について学ぶべきです。本書は、抽象的で分かったような分からんようなオブジェクト指向という考え方について、非常に分かりやすい例を出して説明してくれています。オブジェクト指向とは何なのか?という本質を掴むのにこれほど適した本はないと思います。
 オブジェクト志向の理念を理解できれば、より効率のいいコードをより楽に書けるようになるはずです。Java上級者を目指すなら必読の一冊![詳細]

管理人

Nobuo_CREATE

Nobuo_CREATE

WordPressテーマPrinciple、マテリアルを作ったり、Androidアプリを作ったり、Java入門サイトを作ったり、本を書いたりしています。大阪の北野田駅近くのマイスタイルという学習塾を経営しています。どうぞよろしく。 [詳細]



sponsored link

オススメ書籍

 この本は全く何も分からない初心者の方にお勧めです。プログラミングをするには覚えなければならない事が無茶苦茶いっぱいありますが、この本は教えてくれる順番、その構成が素晴らしいです。RPGのゲームを作るというストーリーにのっとってちょっとずつ難しいことを教えてもらえます。
 無機質で膨大なデータが載っているような本は読む気にならないという方は、こういうストーリー仕立ての本でチャレンジしてみてはいかがでしょうか?(注:RPGを作る為の本ではありません。)

 ある程度、Javaを読み書きできるようになったら、オブジェクト指向について学ぶべきです。本書は、抽象的で分かったような分からんようなオブジェクト指向という考え方について、非常に分かりやすい例を出して説明してくれています。オブジェクト指向とは何なのか?という本質を掴むのにこれほど適した本はないと思います。
 オブジェクト志向の理念を理解できれば、より効率のいいコードをより楽に書けるようになるはずです。Java上級者を目指すなら必読の一冊![詳細]

只今、急拡大中

JavaからのRuby on Rails入門

JavaからのRuby on Rails入門