[備忘録] 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);
}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です