[備忘録] XamarinでAdMob広告を表示する時のAndroid・iOS各設定
毎回忘れて調べ直したりしているため、きちっと備忘録として記載。
尚、以下はAndroid・iOSともにAdMob広告表示に必要なNuGetパッケージは導入済みの状態での話です。
1)Androidでの設定
Andoridアプリのサブプロジェクト(デフォルトでは名前が「(プロジェクト名).Android」)内の「Properties」→「AndroidManifest.xml」の<application>タグ内に以下を記載。
また、ACCESS_NETWORK_STATE・INTERNETに対してuses-permissionを設定する
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
<application ... >
...
<!-- ここから -->
<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="AdMobのアプリID" />
<activity android:name="com.google.android.gms.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" android:theme="@android:style/Theme.Translucent" />
<!-- ここまで -->
...
</application>
....
<!-- uses-permissionの設定 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
</manifest>
2)iOSでの設定
AdMob公式サイトに記載の方法(https://developers.google.com/admob/ios/quick-start)を、iOSアプリのサブプロジェクト(デフォルトは「(プロジェクト名).iOS」)内のinfo.plistに記載する。
※1:IDFAを利用した広告表示を行う場合は、App Tracking Transparency(ATT)を使ってユーザにIDFAへのアクセス許可を尋ねる実装を行うこと→https://developers.google.com/admob/ios/ios14#request
※2:info.plist内でのSKAdNetworkItemsの設定は上記の公式のものだとかなり長く、Visual Studioのプロパティリストエディタで行うのは手間がかかるため、別途XcodeやVisual Studio Codeにてinfo.plistを開いてコピー&ペーストで編集する方が早い
※3:AppDelegate.csでの初期化処理を忘れないこと。これが無いと他の設定が全て済んでいてもエラーになる
[Register("AppDelegate")]
public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
{
Google.MobileAds.MobileAds.SharedInstance.Init(); // <- 忘れないこと
global::Xamarin.Forms.Forms.Init();
LoadApplication(new App());
return base.FinishedLaunching(app, options);
}