AdMob広告の設置

AdMobはAndroidやiPhoneなどのスマートフォン端末向けの広告サービスです。

ここではAndroidでアプリ内に広告を設置する方法を紹介します。

もしAdMobのSDKを導入していない場合はAdMob広告のSDKの導入からプロジェクトにSDKを追加してください、

広告ユニットの作成

まずAdMobにログインします。

もし登録していないならGoogleアカウントがあればすぐに利用できるので登録してください。

ログインしたら「新しいアプリを収益化」という項目をクリックして新しくアプリを登録します。

その後、広告フォーマットや表示形式を指定して広告ユニットを作成します。

作成した広告ユニットを見ると、広告ユニットID( "ca-app-pub-xxxxxxxxxxxxxxxx-xxxxxxxxxx" のような形式)という項目があると思います。

広告ユニットIDはアプリ内で広告を表示するのに必要です。

広告ビューの設置

広告をユニットを登録したら、Activityに広告ビュー(AdView)を設置します。

次がアクティビティのレイアウトです。

<?xml version="1.0"encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"> 
    
    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:gravity="center"
        android:text="Hello!!"
        android:textSize="30sp"/>
        
</LinearLayout>

レイアウトの親要素のLinearLayoutに"container"というIDを設定しています。

これは動的にAdViewを追加するためです。

次にActivity側の実装は次のようになります。

public class MainActivity extends Activity
{
    String AD_UNIT_ID = "ここを広告ユニットIDに置き換え";
        ///広告ユニットID
    
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        LinearLayout container = (LinearLayout) findViewById(R.id.container);
        
        AdView adView = new AdView(this);
        adView.setAdUnitId(AD_UNIT_ID);
        adView.setAdSize(AdSize.BANNER); 
        
        AdRequest adRequest = new AdRequest.Builder()
                .addTestDevice(AdRequest.DEVICE_ID_EMULATOR).build();
        adView.loadAd(adRequest);
        
        container.addView(adView);
            ///広告ビューを追加
    }
}

AdViewには必ずsetAdUnitIdで広告ユニットIDを設定する必要があります。

アプリを起動すると次の画像のようにアプリ広告が表示されるはずです。

広告が表示されたアプリ

広告は実機でテストする必要はなく、エミュレータでもしっかり表示されます。

以上がAdMob広告の設置方法です。お疲れ様でした!

関連項目
プライバシーポリシー