アプリやアカウントの広告レーティングの上限を設定する|GoogleAdMob
広告レーティング対応まとめ(ファミリー向け)
(これで良いと思われる設定ですが、自己責任でよろしくお願いします)
===== GoogleAdMobの設定 =====
・GoogleAdMobにログイン
・左のブロックのコントロール
・広告コンテンツの評価 → 広告レーティングを管理
・T(一般ファミリー向け)に変更
お好みで、デリケートなカテゴリーや『カリフォルニア州消費者プライバシー法』、『EU ユーザーの同意』も設定
===== アプリ側での設定 =====
"src\app\tab1\tab1.page.ts"のコンストラクタ内"AdMob.initialize()"のパラメータを設定する。
具体的には、
---------------------------------------------------------------
constructor() {
AdMob.initialize({
requestTrackingAuthorization: true,
tagForChildDirectedTreatment: true,
tagForUnderAgeOfConsent: true,
maxAdContentRating:AdMob.initialize[MaxAdContentRating.General]
//testingDevices: ['2077ef9a63d2b398840261c8221a0c9b'],
//initializeForTesting: true,
});
}
---------------------------------------------------------------
アプリ制作からは外れますが、最初に作ったアプリがファミリー向けでしたので、表示される広告によってはまずい事になるかと思い調べてみました。
以下のキーワードで検索
GoogleAdMob アプリ 年齢制限
アプリやアカウントの広告レーティングの上限を設定する
https://support.google.com/admob/answer/7562142?hl=ja
これで見ると(若干デザインの変更があったのか細部が異なりましたが)、
・GoogleAdMobにログイン
・左のブロックのコントロール
・広告コンテンツの評価 → 広告レーティングを管理
・目標とする上限を選ぶ
ちなみにT(一般ファミリー向け)に変えると収益が下がると予想されます。と聞いてもいない情報も下さります。
ただし、
---------------------------------------------------------------
SDK を使って広告リクエストごとに設定された広告レーティングの上限は、
AdMob の管理画面で設定されたレーティングよりも優先されます。
---------------------------------------------------------------
だそうですのでSDKの設定もする必要がある模様。
Google Mobile Ads SDK を初期化する
https://developers.google.com/admob/android/quick-start?hl=ja#initialize_the_mobile_ads_sdk
によると、
---------------------------------------------------------------
MobileAds.initialize() を呼び出すと、Google Mobile Ads SDK かメディエーション パートナーの SDK によって広告が事前に読み込まれる場合があります。欧州経済領域(EEA)内のユーザーから同意を得る必要がある場合は、リクエスト固有のフラグ(tagForChildDirectedTreatment や tag_for_under_age_of_consent など)を設定するか、広告が読み込まれる前になんらかの対応策を取ったうえで、Google Mobile Ads SDK を初期化するようにしてください。
---------------------------------------------------------------
とあるので、調べてみます。
AdMob を使って Google Play のファミリー ポリシーを遵守する
https://support.google.com/admob/answer/6223431?hl=ja#code
にサンプルコードも出ているようですが・・・
---------------------------------------------------------------
注: アプリがファミリー向けプログラムのアプリ(主に子供向けのアプリ)である場合、またはユーザーがファミリー リンクで管理されている Google アカウントでログインしている場合は、すべての広告リクエストでコンテンツが自動的に子供向けとして取り扱われます。
---------------------------------------------------------------
これを信じるなら特に作業は無い事になりますが、さて?
あとGoogleAdMobのブロックのコントロールからデリケートなカテゴリーをブロックする事も効果がありそうです。
コードの追加は、色々見ていくと以下の部分で、色々設定できるようです、"@capacitor-community/admob"
"node_modules\@capacitor-community\admob\dist\esm\definitions.d.ts"
---------------------------------------------------------------
/**
* For purposes of the Children's Online Privacy Protection Act (COPPA),
* there is a setting called tagForChildDirectedTreatment.
*
* @see https://developers.google.com/admob/android/targeting#child-directed_setting
* @since 3.1.0
*/
tagForChildDirectedTreatment?: boolean;
/**
---------------------------------------------------------------
ですので"tagForChildDirectedTreatment"については"src\app\tab1\tab1.page.ts"のコンストラクタ内"AdMob.initialize()"のパラメータで
tagForChildDirectedTreatment:true;
とやれば良いようです。
設定できる広告レーティング関係のパラメータは
・tagForChildDirectedTreatment?: boolean;
・tagForUnderAgeOfConsent?: boolean;
・maxAdContentRating?: MaxAdContentRating;
の3種類で、上二つは"true"、最後のは、"node_modules\@capacitor-community\admob\dist\esm\definitions.d.ts"一番下で定義している中の"General"(家族を含む一般の視聴者に適したコンテンツのレーティング)となりそうです。
実装としては、以下のようになるんでしょうか?
---------------------------------------------------------------
constructor() {
AdMob.initialize({
requestTrackingAuthorization: true,
tagForChildDirectedTreatment: true,
tagForUnderAgeOfConsent: true,
maxAdContentRating:AdMob.initialize[MaxAdContentRating.General]
//testingDevices: ['2077ef9a63d2b398840261c8221a0c9b'],
//initializeForTesting: true,
});
}
---------------------------------------------------------------
なおMaxAdContentRatingについてはiOSのリファレンスですが、こちらを参考にしました。
https://developers.google.com/admob/ios/api/reference/Constants
日本語訳
https://developers-google-com.translate.goog/admob/ios/api/reference/Constants?_x_tr_sl=en&_x_tr_tl=ja&_x_tr_hl=ja&_x_tr_pto=sc
とりあえず、以上の変更を加えて実機でのテストは動いたようですので、レーティング対策についてはここまでにいたします。