[Android][Android Studio]admobを導入する


Android Studio上で開発したAndroidアプリにadmobを導入する手順のメモをまとめておきます。

基本的には 公式ドキュメント に沿って進めていけばできますが、gradleの設定周りで躓いたりしました。

admobはGoogle Play serviceに統合されたそうなので、まずはSDKをインストールします。

  • 「Tools」→「Android」→「SDK Manager」→「Google Play services」にチェックを入れてインストール

  • build.gradle にgoogle play serviceを読み込むように記述

# build.gradle

dependencies {
    compile 'com.google.android.gms:play-services:4.1.32'
}

google play serviceのバージョンが見つからなくてはまっていたのですが、ターミナルでAndroid Studioのパッケージ内にあるSDKのバージョンを直接探したところ見つかりました。

ll /Applications/Android\ Studio.app/sdk/extras/google/m2repository/com/google/android/gms/play-services/4.1.32
  • AndroidManifest.xml にadmob設定を追加
<manifest>
    <application>
        # 追加(nameはcom.google.android.ads.AdActivityではなく、com.google.android.gms.ads.AdActivity)
        <meta-data android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version"/>

        # 追加
        <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>
  • admob用のviewを追加
# MainActivity

import com.google.android.gms.ads.*;

public class MainActivity extends Activity {
    private AdView adView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        # adView設定
        setContentView(layout.activity_main);
        adView = new AdView(this);
        adView.setAdUnitId(AD_UNIT_ID);
        adView.setAdSize(AdSize.SMART_BANNER);
        LinearLayout layout = (LinearLayout)findViewById(id.container);
        layout.addView(adView);
        AdRequest adRequest = new AdRequest.Builder().build();
        adView.loadAd(adRequest);
    }

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

これでアプリを起動すれば、admobが表示されます。

参考