ファミリーポリシーを遵守するためのAdMobコーディング

概要

Google Playでアプリをリリースする際に設定するアプリの対象年齢(ターゲットユーザー)。

今回はアプリの対象年齢に13歳未満を含める場合に必要となるAdMobのコーディングについて記事にしました。

AdMobに子供向け広告をリクエストする

GooglePlayで設定するアプリの対象年齢は以下のように分かれています。

No対象年齢ファミリー向けプログラム
15歳以下必須
26~8歳必須
39~12歳必須
413~15歳任意
516~17歳任意
618歳以上任意
ターゲットユーザー設定

ターゲットユーザーの設定としては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から配信されるカテゴリを制御する方法は以下の記事を参照ください。