概要
Google Playでアプリをリリースする際に設定するアプリの対象年齢(ターゲットユーザー)。
今回はアプリの対象年齢に13歳未満を含める場合に必要となるAdMobのコーディングについて記事にしました。
AdMobに子供向け広告をリクエストする
GooglePlayで設定するアプリの対象年齢は以下のように分かれています。
No | 対象年齢 | ファミリー向けプログラム |
1 | 5歳以下 | 必須 |
2 | 6~8歳 | 必須 |
3 | 9~12歳 | 必須 |
4 | 13~15歳 | 任意 |
5 | 16~17歳 | 任意 |
6 | 18歳以上 | 任意 |
ターゲットユーザーの設定としては13歳以上か、13歳未満かが大きな分岐点となります。
なぜなら13歳未満をターゲットに含める場合は
ファミリーポリシーを遵守するために子供向けの広告を表示することが求められるからです。
では、子供向けの広告を表示するにはどうすればよいのか?
Admobのヘルプを調べると下記のコードが示されていました。
Bundle extras = new Bundle();
extras.putString("max_ad_content_rating", "G");
AdRequest request = new AdRequest.Builder()
.addNetworkExtrasBundle(AdMobAdapter.class, extras)
.tagForChildDirectedTreatment(true) .build();
ただし、これを実際にコーディングしようとしても
tagForChildDirectedTreatmentメソッドが見つかりません。
どうしたものかとネット検索してみた結果、タグ指定はイニシャル処理にあわせて実行するのがよさそうだという結論に至りました。
通常のAdMobイニシャル処理
MobileAds.initialize(this)
子供向けのAdMobイニシャル処理
val requestConfiguration = MobileAds.getRequestConfiguration().toBuilder()
.setTagForChildDirectedTreatment(TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE)
.setMaxAdContentRating(MAX_AD_CONTENT_RATING_G)
.build()
MobileAds.setRequestConfiguration(requestConfiguration)
MobileAds.initialize(this)
子供向けに実装する場合は、イニシャル処理の前に子供向けタグとレーティングGを設定します。
また、AdMob表示のための広告リクエストでもレーティングGを設定しておきます。
通常のバナー広告リクエストと表示処理
val adView : AdView = findViewById(R.id.adView)
val adRequest = AdRequest.Builder().build()
adView.loadAd(adRequest)
子供向けのバナー広告リクエストと表示処理
val adView : AdView = findViewById(R.id.adView)
val extras = Bundle()
extras.putString("max_ad_content_rating", "G")
val adRequest = AdRequest.Builder().addNetworkExtrasBundle(AdMobAdapter::class.java, extras).build()
adView.loadAd(adRequest)
通常のリクエストにレーティング設定を追加すればOKです。
Admobから配信されるカテゴリを制御する方法は以下の記事を参照ください。