UnityでAdMobをGDPR対応させる(その1)

AdMob for GDPR Unityプログラミング

この記事では表題の通り、UnityのAdMobをGDPR対応させるためのコードについて説明します。初めに言っておきますが我流です。私的な考えです。分かりやすくするため、細かい話を抜きにして、表現も極端にしています。だから間違いも多いでしょう。でも、文句はなるべく言いっこなしってことでお願いします。雰囲気重視です。ボリュームが多くなるので、何回かに分けて執筆します。

欧州向けに誤った広告配信をすると罰則がある

Unityを使えばモバイルアプリを作成できます。アプリはGoogle PlayやApp Storeで公開でき、収益化できます。収益化には2通りあります。1つはアプリ自体やコンテンツを販売すること、もう1つはアプリに広告を付けてユーザー(=ゲームをプレイする人)に見てもらうことです。そして、広告を付けたアプリを欧州(正確にはEEAとUK)で配信する場合には、手順を守らなければ罰金という罰則規定、すなわちGDPRがあります。

ユーザー好みの広告配信には同意が必要

ユーザー好みの広告(いわゆるパーソナライズド広告)を表示すれば、広告はタップされやすくなります。EEA向けアプリでは、こう言う機能を有効にする前には、きっちりとユーザーの同意を得る必要があります。同意が得られない場合は、こう言う機能を無効にしないといけません。機能が無効の場合は、広告はタップされにくくなります。(機能が無効になるだけであって、子供向け広告が表示されるわけではありません。)

EEA以外は同意取得は不要

では、EEA以外はどうなのかというと、一部地域を除き同意を得る必要はありません。だから、アプリの配信先からEEAを除外すれば、同意を得る仕組みをアプリに組み込む必要はありません。また、EEA向けでも、「ユーザー好みの広告」を絶対配信しない仕組みになっているのあれば、同意を得る仕組みをアプリに組み込む必要はありません。ですから、アプリ配信の選択肢としては下表のようになります。下表の選択肢1のみがGDPR違反で、それ以外は遵守していると言えるでしょう。EEA配信を諦めるか、「ユーザー好みの広告」を諦めるか、どちらも諦めずに同意取得機能を組み込むかのいずれかの選択になります。そしてこの記事のシリーズでは選択肢2の「どちらも諦めずに同意取得機能を組み込む」方法について解説していきます。 (補足:ChatGPTやGeminiは「EEAを除外せずにGDPR対応しろ」と言っています。GDPR対応はした方がいいかも。GDPRは今後、世界に拡大していくんだろうと思います。)

選択肢EEA配信同意取得機能ユーザー好みの広告配信機能GDPR遵守状態
1ありなしあり違反
2ありありあり遵守
3ありなしなし遵守
4なしなしあり適用外
GDPR対応が必要な場合、不要な場合
追記

”「ユーザー好みの広告配信しなければGDPR違反でない”という表現は、一般論を誇張しすぎました。AdMobの場合は、それは正しくないです。EEA向けのアプリでAdMobを利用する場合は、必ずUMPを使用しましょう。2025年9月25日追記。

米国の州規制に関するメッセージについて

先ほどの「一部地域を除き同意を得る必要はありません」一部地域とは、米国のいくつかの州のことです。それらの州の地域居住者は、もちろんGDPRとは無関係です。ですが、それぞれの州固有のプライバシー関連法の適用を受けます。つまり、その人たちに対して私たちは、それぞれの法律に則したメッセージを出す必要があるということです。面倒くさいですね。GDPRだけでも面倒なのに嫌になりますね。でも、次項で述べるUMPというものを使えば、GDPRと同じような感覚で、その人たちに対してメッセージを表示できるようです。だから、米国だけにアプリをリリースするデベロッパーにとっても、GDPR対応は無駄にはならないと思います。

米国の州規制についてはウェブ上の対策情報が少ないため、現時点で私の調査が不十分です。ですから、本シリーズでは深くは触れません

同意取得の仕組みを組み込んでいく

では早速、GDPRの同意取得の仕組みを導入しましょう。GoogleMobileAdsパッケージはインポート済みとします。Googleの公式ページを見て理解できるのであれば、それに越したことはありません。理解できないのであれば、この記事のシリーズが参考になるでしょう。Google User Messaging Platform(UMP)SDK というやつを使いますが、これはGoogleMobileAdsパッケージに含まれていますので、別途パッケージをインポートする必要はありません。UMPを利用すれば、ユーザーがEEAであればGDPRメッセージ(=同意取得ポップアップ)が自動で表示され、EEAでなければ表示されないといったことが実現できます。アプリインストールから広告が表示されるまでの処理フローはAndroidの場合は概ね以下のようになります。

一方、iOSの場合のフローは概ね以下のようになります。フローの中のATTは、世界の全ユーザーが対象のApple独自の仕組みです。AndroidにはATTはありません。ATTはGDPRよりも強力なユーザーの意思表示と言えます(←私の理解)。EEA以外の地域ではATTメッセージのみが表示されます。EEAではGDPRメッセージの後にATTメッセージが表示されます。つまり、「GDPR同意を得えられても、ATTの同意を得られなければユーザー好みの広告は表示されない」というかなり厳しい仕様になっています。(iOSのフローが間違っていたので修正しました2024.12.1

では次回からはコードを書いていきましょう。

追記(子ども判定と場合分けについて)

とても面倒臭いことに、GDPRや米国などの法令対応は「子ども」と「子ども以外」とに、厳密にやるならば場合分けする必要があります。EUは国によってまちまちですが、16歳未満が概ね「子ども」とみなされるようです。米国では13歳未満が「子ども」とみなされるようです。そのため、厳密にやるならば、年齢ゲート(=ユーザーの年齢を自己申告してもらう仕組み)を自作するなどしてアプリに組み込むことが必要になるでしょう。

このシリーズの記事

コメント