AndroidにAdMob広告（メディエーション）を入れる手順


 （nendとi-mobileを導入する）

2013年8月5日作成

## AdMobSDKの組み込み
バージョン6.4.1の場合

* AdMobにてサイト登録する（パブリッシャーIDを得る）
* AdMobの最新SDKを入手（https://developers.google.com/mobile-ads-sdk/download?hl=ja)
* コンパイルのtargetがAPI level 12以下の場合は、プロジェクトのプロパティ→Android→プロジェクト・ビルド・ターゲットをAPI level 13以上にする 
* プロジェクトプロパティからJavaビルド・パス→Jar追加→GoogleAdMobAdsSdk-6.4.1.jarを追加する
* AndroidManifest.xmlにAdActivityを追加する

```xml:AndroidManifest.xml
 <activity android:name="com.google.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
```
* 以下のパーミッションを追加する

```xml:AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
```

* 表示したいレイアウトの一番上のレイアウト要素に以下のネームスペースを作成する

```xml:
<RelativeLayout hoge...
	xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
	hoge …>
…
</RelativeLayout>
```

* 以下のコードを表示したいところへ挿入することで、Adが挿入される

```xml:
<com.google.ads.AdView
	android:id="@+id/adView"
	android:layout_width="fill_parent"
	android:layout_height="wrap_content"
	ads:adUnitId="パブリッシャーID"
	ads:adSize="BANNER"
	ads:loadAdOnCreate="true" />
```

## 広告を下に表示する

![kobito.1375688493.139088.png](https://qiita-image-store.s3.amazonaws.com/0/21397/a2c022d7-2f76-dacb-c7c4-a9e26920833d.png "kobito.1375688493.139088.png")

こんな感じを目指します。

基本的には既に有料版を作っていて、それの無料版を作る場合は極力画像リソースやレイアウトの構成を変えたくないので、レイアウト構成を変えずに、下にAdを追加する方法のメモを書きます。

* ルートのレイアウト要素をRelativeLayoutにする
* 広告（com.google.ads.AdView）にandroid:layout_alignParentBottom="true"を追加する
* 広告の要素にIDをつける（ここでは「adView」）
* コンテンツ（広告以外の領域）にandroid:layout_above="@+id/adView"を追加する

まとめると以下になります。

```xml:layout.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
	xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
	android:orientation="vertical"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent"
	android:weightSum="1" 
	android:background="#00000000">

	<com.google.ads.AdView
		 android:id="@+id/adView"
		 android:layout_width="fill_parent"
		 android:layout_height="wrap_content"
		 android:layout_alignParentBottom="true"
		 ads:adUnitId="パブリッシャーID"
		 ads:adSize="BANNER"
		 ads:loadAdOnCreate="true"
	 />

	<LinearLayout android:id="@+id/linearLayout1"
		android:layout_width="fill_parent" 
		android:orientation="vertical" 
		android:layout_height="wrap_content" 
		android:gravity="center" 
		android:layout_above="@+id/adView">
        
		メインのコンテンツ

	</LinearLayout>
<RelativeLayout>
	
```

## AdMob上でメディエーションのセットアップをする
AdMob上でメディエーションの設定をする。

## プロジェクトにnendとi-mobileのメディエーションアダプターを導入する

各ページから広告のSDKとメディエーション用のアダプターをダウンロードする。
今回だったら以下のファイルが必要です。

* nendSDK-2.2.0.jar
* nendAdapter-1.0.0.jar
* i-mobileSDK.jar
* i-mobileSDKMediationAdapter.jar

これらをAdMobのSDKを導入した時と同じ手順でプロジェクトに追加してください。
最終的に読み込むライブラリは以下のようになります。

![kobito.1375772586.225417.png](https://qiita-image-store.s3.amazonaws.com/0/21397/4cef2eb5-72a0-1b5e-6967-b92dc8d73013.png "kobito.1375772586.225417.png")


## アプリ側でメディエーションを反映させる

ここが若干ハマリポイントです。
AdMobの広告を配信する場合はads:adUnitIdにパブリッシャーIDをセットしましたが、**メディエーションを使用する場合はメディエーションIDをセットします。**

```xml:
<com.google.ads.AdView
	android:id="@+id/adView"
	android:layout_width="fill_parent"
	android:layout_height="wrap_content"
	ads:adUnitId="メディエーションID"
	ads:adSize="BANNER"
	ads:loadAdOnCreate="true" />
```

以上が手順になります。

## まとめ
メディエーションを使って、広告収益を最大化しましょう！！