Android StudioでAdMobを組み込んだメモ
先日のアプリを作るときに広告を組み込んでみようとやってみたら、Playストアでは8/1をもって古いAdMob SDKを使ったアプリの受付を終了しますと・・・
そこで新しいSDKを使ってAdMobを組み込んだときのメモを残しておきます。
参考:Admob からメール「最新版の SDK にアップグレードしてください」
基本的には公式のスタート ガイド – Google Mobile Ads SDK — Google Developersに沿って実装していくだけなんですけど・・・
レイアウトをxmlでやってるので、公式とはその点がちょっと異なるかも知れません。
環境:Android Studio (Beta) 0.8.2
1.Googleサービスのライブラリを組み込む
build.gradleを編集するのは多々あれど、GUIからの方法があまりない・・・?
メニューのFile->Project Structure…を選択
左のModulesから組み込みたいプロジェクトを選択して、Dependenciesタブの右上にある[+](Add)からLibrary dependencyを選択
Google Play Services (Wearableじゃないほう)を選択してOKで閉じていく
(見つからないときはAndroid SDK Mangerでインストールしていない可能性?)
するとbuild.gradleに追加されてプロジェクトのSyncが行われるはず
2.AndroidManifest.xmlへ追記
meta-data タグ
<?xml version="1.0" encoding="utf-8"?> <manifest ...> <application ...> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> <activity ...> </application> </manifest>
AdActivity を宣言 (configChanges長ぇ・・・)
<manifest ...> <application ...> <meta-data ...> <activity ...> <activity android:name="com.google.android.gms.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" /> </application> </manifest>
uses-permission でネットワーク権限を設定(すでに組み込んでた)
<manifest ...> <application ...> <meta-data ...> <activity ...> </application> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> </manifest>
3.AdViewをlayout.xmlへ追記
広告を組み込みたいレイアウトの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/res-auto" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <com.google.android.gms.ads.AdView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/adView" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" ads:adUnitId="AdMob広告ユニットID" ads:adSize="BANNER" /> </RelativeLayout>
親レイアウトにxmlns:ads=がないとads:xxx見つからない!って言われます
なんかプレビュー画面にRendering Problemsが出るけどライブラリが悪そうなので放置・・・
4.Activity.javaへ追記
広告の読み込み、停止と再開に結局コード書く必要があるっていう。。。
import com.google.android.gms.ads.*; public class BannerExample extends Activity { private AdView adView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout); // AdView をリソースとしてルックアップしてリクエストを読み込む adView = (AdView)this.findViewById(R.id.adView); AdRequest adRequest = new AdRequest.Builder() // テスト端末を登録しておく .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) .addTestDevice("テスト端末のID") .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(); } }
テスト端末のIDは指定せずに起動したときLogCatにこれ使えよ!って出てきます
以上、おつかれさまでした。
NendをAdMobのメディエーションとして設定するとき
AdMobについて調べてたときに、Nendいいよ!ってのを見かけたので、AdMobのメディエーション(他媒体の広告も表示させる)に追加しました。プロジェクトもSDKにあるライブラリを/libs/に入れるだけ、かんたん!
- nendSDK-x.x.x.jar
- nendAdapter-x.x.x.jar
[...] Android StudioでAdMobを組み込んだメモ [...]
[...] 参考:Android StudioでAdMobを組み込んだメモ nend設定ガイド [...]