Androidアプリの作り方

広告の掲載<AdMob>

アプリに広告を掲載する手順。

広告の掲載<AdMob>
こちらのページからAdMobに申し込む。

広告の掲載<AdMob>
AdMobのトップページで「新しいアプリを収益化」をクリック。

広告の掲載<AdMob>
「アプリを検索」で自分のアプリを検索して「選択」をクリック。

広告の掲載<AdMob>
「アプリを追加」をクリック。

広告の掲載<AdMob>
広告フォーマットを選択し、広告ユニット名を入力して「保存」をクリック。

広告の掲載<AdMob>
「FIREBASEにリンク」をクリック。

広告の掲載<AdMob>
3番の「ここ」をクリックしてgoogle-services.jsonを任意の場所に保存する。

広告の掲載<AdMob>
「完了」をクリック。

広告の掲載<AdMob>
google-services.jsonを右クリックでコピーし、AndroidStudioで「プロジェクト」表示に切り替えappディレクトリにペーストします。

広告の掲載<AdMob>

広告の掲載<AdMob>
appレベルとProjectレベルにそれぞれあるbuild.gradleファイルを修正します。
appレベルのbuild.gradleに
compile 'com.google.firebase:firebase-ads:10.0.1'と
apply plugin: 'com.google.gms.google-services'を追加。
※Firebase機能で使用できるライブラリ一覧はこちら
dependencies {
   
   
    compile 'com.google.firebase:firebase-ads:10.0.1'
}
apply plugin: 'com.google.gms.google-services'

Projectレベルのbuild.gradleに
classpath 'com.google.gms:google-services:3.0.0'を追加。
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        
        classpath 'com.google.gms:google-services:3.0.0'
      
    }
}

広告の掲載<AdMob>
どちらも入力したら右上のSync Nowをクリック。

AndroidManifest.xmlにINTERNET とACCESS_NETWORK_STATEのパーミッションを登録する。
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="orust.co.jp.unitconverter">

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    
    <application
        android:allowBackup="true"

広告を表示する画面(activity_main.xmlなど)にAdViewというビューを設置する。
ads:adSize="SMART_BANNER"の部分でこちらを参考にバナーサイズを設定する。

<com.google.android.gms.ads.AdView
	android:id="@+id/adView"
	android:layout_width="wrap_content"
	android:layout_height="wrap_content"
	android:layout_alignParentBottom="true"
	android:layout_centerHorizontal="true"
	ads:adSize="SMART_BANNER"
	ads:adUnitId="@string/banner_ad_unit_id">
</com.google.android.gms.ads.AdView>

このままではエラーが出るので接頭辞の宣言を追加する。
xmlns:ads="http://schemas.android.com/apk/res-auto"

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/res-auto"


広告の掲載<AdMob>
strings.xmlに
<string name="banner_ad_unit_id">広告ユニットID</string>を追加する。
広告ユニットIDの部分は収益化のページにあるのでコピペする。

広告を表示するActivity(MainActivity.javaなど)に下記を追加する。
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.MobileAds;

private AdView mAdView;

MobileAds.initialize(getApplicationContext(), getResources().getString(R.string.banner_ad_unit_id));
mAdView = (AdView) findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);

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

public class MainActivity extends AppCompatActivity
        implements NavigationView.OnNavigationItemSelectedListener, View.OnClickListener {

    private AdView mAdView;

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

        MobileAds.initialize(getApplicationContext(), getResources().getString(R.string.banner_ad_unit_id));
        mAdView = (AdView) findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder().build();
        mAdView.loadAd(adRequest);